A few years back, when Drupal 6 was gearing up for showtime, one of the major working points was making the install profile system easier to navigate for developers. A Drupal install profile, also known as a distribution, allows you to specify an initial setup for Drupal, including both core and contributed modules, and setting up configurations for them. Building these beasties in Drupal 5 was quite an arcane art - one which I never mastered - but Drupal 6 really simplified things; and once the packaging on drupal.org was updated to allow not only contributed modules but also patches and approved external libraries, then the possibilities really opened up.
I've been maintaining Drupal install profiles for several years, and I thought I'd just write down a few thoughts about the problems and possibilities of running your own distribution.
Difficulties of maintaining a distribution
- Features module, used in almost all distributions, is a whole learning curve unto itself; don't make the mistake of thinking that you can export your configuration and not have to deal with the code.
- It's impossible to develop for just one site; one must develop for many different configurations and use cases. This brings up a host of issues: Are you going to force all your sites to revert that view that you just updated? How will you enable your themes to look different across different sites?
Efficiency gains using an install profile
- Using a system like Aegir, you can run multiple websites on one distribution.
- Upgrades become a simple matter; you can just make up a new platform and transfer all your sites over at once. New features and bug fixes get pushed to all your sites simultaneously.
- Since all sites are on the same platform, there are many users helping to test and improve it.
Drupal install profiles are an extremely important development in the Drupal world. Given the tremendous productivity gains to be had by running your sites on distributions, it is a technology that no small Drupal shop can afford to ignore.