Open Source Module Management

Those who may have not noticed, about two months ago, CaseySoftware had a major overhaul in terms of layout, functionality offered, and the underlying applications. This came about as a result of evaluation of quite a few different applications for handling our data, layout, and the required functionality. During this evaluation, there was one major thing which struck me about Open Source Software and module management: Some developers get it and some don't.

When you look at the different module installation/upgrade methods, this is abundantly clear. The processes range from “incredibly simple” to “rip-out-my-eyes painful. Let's detail some…

As a couple caveats here, my experience with each of these applciations ranges from a handful of deployments and customizations to numerous years of experience and even being a core developer on one. These aren't things that I just picked up during an afternoon…

First, on the painful end of the spectrum, we have applications like osCommerce and phpBB. Ignoring some of the security and configuration problems involved with either of these, the effort to install a module is monumental… if the concept really exists. For osCommerce, installing a payment or shipping module is simple. These are the exception. For all other modules – and anything in phpBB – the process is as follows: unpack module, open readme, cross fingers, copy and paste individual lines of code into the proper individual files of your deployment, uncross fingers to type, create database tables manually, cross fingers, upload new files, mutter under your breath since this module isn't compatible with that other, search for updates… and sometimes you get to repeat that process multiple times. I used to be a fan of phpBB years ago, but now I've eliminated all but two installs we use… and those are on the chopping block.

Next, we have applications like Drupal 4.6. The process for these are much simpler. You track down the compatible module, download, unpack, upload to the proper place, install tables, enable the module in your admin, and grant permissions to roles. Yes, it can still be an intimidating process, but notice that you didn't have to edit any code. A new module can be installed in minutes *and* if you end up finding something incompatible with your site, the permissions aspect allows you to test it with just one or two account types before you make it available to everyone. This alone makes the system much more usable and configurable. Not perfect but a huge step up.

Next, we have applications like Drupal 4.7 and dotProject which are even better. Both require you to download the module, unpack, upload, enable it, and grant permissions. That's really about it. The enabling process handles creating the relevant tables, database entries and no code editting is required. This is another huge step up. Installing – or uninstalling – a module can literally be done in just minutes.

Finally, I have to give credit where credit is due. The Mambo (site dead?) and Joomla model is simply great. To install a module for either of those systems, you download it, upload it through your admin, turn it on, and chose where it's placed on your site. Occassionally, you have to embed a line of code in your template but I've found it as the exception rather than the rule. This is by far the easiest and fastest process I've seen. Pretty nifty overall.

So here's the thing… is this alone enough to make the decision on which of these systems to use? I would tend to say that poor management is an indicator of systems you should avoid, but great module management isn't the only feature you should look for.

Are there aspects to any of these processes I've missed or have improved recently? I'm always up for learning more and hearing where I've missed out.