Drush Make, a module of mine, has been making waves in the Drupal community since it was released. Its primary goal is to take a file defining a list of modules and themes, or in Drush Make lingo, projects, and create a fully operational Drupal site out of them. Now you can use these same Drush Make files in installation profiles and they will be properly packaged on drupal.org.

Installation Profiles traditionally have been a piece of PHP code that tells Drupal what to do when the site is installed. When one used to download that install profile, they would just get that file. If the install profile author wanted modules used besides code module (for example, a WYSIWYG), one would have to download it after they download the profile. However, Drush Make has changed this.

Drupal.org, using Drush Make as a backend, now allows modules and themes to come with profiles, all in the same file. This represents a major step in installation profiles, as now they are much more useful.

On Drupal.org, you are offered the option of downloading either just the profile, the profile along with its projects, or a full Drupal Core with the profile and its projects. Drupal.org also presents you with a list of projects that are included in the package. If any of the modules are out of date, it alerts you, so you can download new, up to date ones once you’ve downloaded the package.

Writing a makefile is pretty simple – all it needs to specify is a list of projects and their versions. Beyond that, it follows the standard .info file format used in other places, like module.info files.

A normal makefile would look like this:

core = 6.14
projects[cck] = 2.3
projects[views] = 2.7

This code code would be put in a file called {profilename}.make and checked into CVS along with the .profile file. For more documentation, please read How to package a profile on drupal.org.

If you already have a makefile, you can use a drush command to convert it to a drupal.org friendly format (drupal.org restricts the properties in the .make file for legal reasons): drush convert makefile myprofile.make myprofile-drupalorg.make

Overall, I think that Drush Make represents a major shift in install profiles. In the future, we can see lots more install profiles being created. Many (if not most) sites will start out their life as a .make file. And perhaps most importantly, people will share their makefiles with others and everyone will end up winning.

Thanks to Young Hahn and Suzanne Popkin for reading and contributing to this post.