-
Notifications
You must be signed in to change notification settings - Fork 4
Description
Why "everything in code"?
If everything we do is either part of the original installation profile or is added as a feature, then we are complying with "everything in code".
The "Drupal development, staging and production problem" and the solution as "everything in code" was pointed out years ago by visionary prophets:
- Sacha Chua: Drupal staging and deployment tips: It’s all code (By the way, an awesome and fascinating person... and a very special blog)
- Adrian Rossouw: The Development -> Staging -> Production Workflow Problem in Drupal
- mig: Drupal deployments & workflows with version control, drush_make, and Aegir 28 October 2009
- James Walkah: Every Drupal Site is an Install Profile
- Japo Domingo: Creating a Drupal Site with Dummy Content for Your Development (Very interesting alternative features based workflow against demo snapshot baseline)
- Victor Kane: Installation Profiles as an everything in code Drupal process strategy
This is why we favor Zen over the Adaptive and especially over Omega base themes (see #20 Choose base theme), which store the results of their GUI based configuration in the database together with content.
This is why Backdrop CMS with serializable JSON file based configuration will definitely be a wonderful upgrade path for Drupal 7 site builders seeking to avoid Drupal 8 complexity and the associated learning curve.
- Referenced in Architecture Document as architectural decision
Installation profiles in Drupal 7
References
- Developing
- Drupal Installation Profiles (including video)
- Daily Dose of Drupal: Installation Profiles video
- Scott Hadfield: An overview of D7 install profiles
- Linux Journal article by Oliver Davies Speed Up Your Drupal Development Using Installations and Distributions
First cut solution
The standard Drupal install uses database writes to set configuration values.
Drupal Lean Process uses the Install Profile API for Drupal 6. For Drupal 7 we could take advantage of the module dependency to start the install off with the third party modules we want to include, doing the rest with features. So, clone the standard Drupal install, add third party modules and specify them in .info, then add more stuff with features, which should be added to the .info file as dependencies (they will have their own dependencies too).
Second cut
Resources:
- Profiler Library
- Profiler Builder - GUI for creating installation profiles
- Dmitri Gaskin: From Zero to Distribution using Features, Profiler, and Drush Make
I'm not keen on the idea of using drush make alone since I actually want the modules and any required patches under version control.
Profiler only downloaded a handful of times. Profiler Builder looks very promising. It's very active and growing in usage. What it does is take a functioning Drupal site and spit out an install profile for that site, which you can download as a tarball.