Distribution packaging now fully supported on Drupal.org
Distributions provide one of the biggest opportunities for both the Drupal project and its ecosystem. Although there has been support for distribution packaging on Drupal.org since December 2009, there were many restrictions on what could be packaged for technical and legal reasons. By solving the underlying legal, technical, security, and usability problems, these restrictions have been lifted and fully-featured distributions are now enabled on Drupal.org! This move enables thousands of active developers to pursue distribution development with a consistent set of tools for managing version control, releases, issue tracking, collaboration, and documentation.
Funding for the project was generously provided by major distribution developers:
New features for distribution packaging
- External library support
- Feed parsers, alternate versions of jQuery, WYSIWYG editors, etc. can be included with distributions automatically. A packaging whitelist tracks GPL-compatible libraries that can be added to distributions.
- Patch support
- Patches can now be applied to core, contributed modules and themes, and even third-party libraries. Patches will appear on distribution release nodes, resolved to their parent issue.
- Support for development snapshots
- Both development releases and Git clones (either a specific revision or a branch/tag) can now be used in distributions, rather than just official project releases.
Complete technical implementation details can be found at the Distribution Packaging community initiative page.
Changes for distribution maintainers
If you maintain a distribution on Drupal.org (or would like to) be sure to read the following updated documentation:
- Packaging a distribution on Drupal.org
- Managing Drush make files for an installation profile
- Drupal.org distribution packaging requirements
- Full example drupal-org.make file
- Common Drush Make errors and their solutions
- Drupal.org Library Packaging Whitelist
Credits
This initiative was spear-headed, designed, managed, and primarily implemented by Derek Wright (dww) of 3281d Consulting. Chad Phillips (hunmonk) and Michael Prashun (mikey_p) also helped with the design and implementation.
The work was made possible by the generous sponsorship of Phase2 Technology, Acquia, Node One, Pantheon, and Lullabot.
Additional thanks to:
- Angela Byron (webchick) for spear-heading initial funding discussions, for performing extensive QA on changes, for authoring major chunks of the documentation, and for providing input throughout the process.
- Jeff Walpole (jwalpole) for wrangling funding from multiple sources to make this happen.
- Jonathan Hedstrom (jhedstrom) and Moshe Weitzman (moshe weitzman) for maintaining Drush make (which is now part of the core Drush project), the primary tool used by the Drupal.org distribution packaging system.
- Jeff Geerling (geerlingguy), Adam Moore (redndahead), Angela Byron (webchick), Alberto Paderno (kiamlaluno), and Greg Knaddison (greggles) for maintaining the library whitelist.
- Roy Scholten (yoroy) and Bojhan Somers (bojhan) of the usability team for help reviewing the UI changes.
- Ezra Barnett Gildesgame (ezra-g) and Frank Febbraro (febbraro) for feedback on the changes, testing, and reviewing documentation.
- Alex Barth (alex_b) for his initial help to identify the problems and flesh out the roadmap for solving them.