Update: See Distribution packaging now fully supported on Drupal.org for details of new functionality.
3281d Consulting is very pleased to announce that a new era on drupal.org has begun: Drupal distributions (also known as "installation profiles") can now be automatically packaged with Drupal core and all of their required dependencies. When you download the distribution, you just unpack it into a web root directory, visit install.php, and you're done. This should vastly lower the barriers to getting a new Drupal site up and running. Please read on if you've ever considered installing a Drupal distribution or if you maintain one on drupal.org.
Changes for end users
Mostly, the only change for end users is that installation profiles are actually useful now. If you're viewing the project page for an installation profile, and you scroll down to the "Downloads" section, you'll see a table that looks something like this:
In the "Recommended releases" table, find the entry for the version of Drupal you want to install (for example, 6.x). If you click the "Download" link, you'll immediately get a .tar.gz archive (.zip files are coming soon, stay tuned!) that includes Drupal core, the installation profile itself (which defines the modules and themes to enable and can configure your new site), and all of the required modules and themes that the distribution depends on. If you click on the version string or the Notes link, you'll see the full details for that release of the distribution:
The first table lists all the available files you could download. The top file, ending in "-core.tar.gz" is the one you would download directly from the project page. The one ending in "-no-core.tar.gz" includes the installation profile directory and all of its dependencies, but not a copy of Drupal core. This would be useful if you were setting up a multi-site installation and you just wanted different profiles in different site subdirectories, for example. The final option, just ".tar.gz" includes only the installation profile directory. This would only be useful if you were planning to build the whole site yourself with drush make, or if the installation profile wasn't updated to the new system and didn't provide a fully packaged distribution.
The second table lists all the components included in the distribution. This table is aware of all available releases on drupal.org, much like the Update status module included in Drupal core. If newer releases or security updates are available for any of the components of the distribution, the release notes will look more like this:
That's a warning to you that the distribution maintainer hasn't updated their releases. If you still go ahead with installing the distribution, you're going to have to manually update the components that are marked in red as "Not secure". If the latest release of a distribution is missing security updates, the table on the project page will instead look like this:
If you see something like that, think twice before installing, and be prepared to update some of the code to make sure your new site is secure.
Changes installation profile maintainers
If you maintain an installation profile on drupal.org and you want it packaged with core and all of its dependencies, you need to write a
drupal-org.make file that will be read by drush make. Detailed instructions are available at the How to package a profile on drupal.org handbook page. Please read that. Really. :)
If you find a problem with the new system or have a suggestion on how to make it better, please search for issues with the packaged install profiles tag and see if the issue has already been reported. If not, you can submit a new issue for the Project module -- just be sure to add the "packaged install profiles" tag.
The work was made possible by the generous sponsorship of Deproduction and Quiddities, and matching funds from the Drupal Association. For more background on the effort and information about the sponsors, see Install Profiles Packaging on Drupal.org - Funding obtained, feedback welcome.
Thanks go to Dmitri Gaskin (dmitrig01) for building and maintaining drush make, and to Adrian Rossouw (adrian) for co-maintaining it and helping debug various things during development. Thanks also to Earl Miles (merlinofchaos) for help with some of the more crazy Views integration for all these update status tables, and to Roy Scholten (yoroy) and Bojhan Somers (bojhan) of the usability team for help reviewing the UI on the project and release pages.