Here at more onion we're hosting most of our client's sites ourselves. This means we are hosting lots of sites which share most of their modules (ie. our standard Drupal installation). Reproducible setups, fast builds, sharing-module code among many sites -- This is where our new build-tool called dbuild.py comes in.
It started out as yet another wrapper around
drush make and
drush site-install but became a fully fledged download-extract-patch-symlink tool in the end.
Differences to drush make:
- Different folder structure: All modules are extracted outside of the webroot and symlinked to all sites that should use them.
- Built-in and explicit support for multi-sites.
- Facilitate code-sharing among sites: There is only one copy per module and version.
- Fast rebuilds: if you change one project only this project needs to be rebuilt.
- The "make" files are all in JSON and there is one file per drupal tree + one file per site.
- No dynamic versioning: Only fixed versions of projects are supported (except branches of git repositories).
Pitch in on Github!
Perhaps we'll take a look at DSLM - Drupal Symlink Manager next to see if we can re-use it for managing our symlinks.