Building
Workflow
- Drupal deployments & workflows with version control, drush_make, and Aegir (mig5, Oct 28 2009)
- Using drush hosting-import to auto-create your platform node (and other entities) (mig5, Jan 11 2011) - Updated workflow on Aegir mailing list
- From Zero to Distribution using Features, Profiler, and Drush Make (dimitri, March 9, 2011)
- Drush Make theory for happy profile development
- Using drush_make to optimize workflow - Basics of make/profile management from mig5's first article
- Workflow and tools for developing with install profiles and Drush Make
Aegir web user has SSL public cert. with Git repo. Pulls Distro with it's Profile, Settings, Features and Themes.
See also Aegir#Managing workflow
.build
To manage a web site project, create a base .build make file that points towards the profile and .make git repo. This allows the profile to be version controlled, plus avoids self-referentially downloading everything twice. Technique copied from mig5.
core = 7.x api = 2 projects[drupal][type] = "core" ; Our distribution projects[distroname][type] = "profile" projects[distroname][download][type] = "git" projects[distroname][download][url] = "git@gitserver.com:distroname.git" projects[distroname][download][branch] = "dev"
Create platform using the build file path. Git --working-copy option (command-line or in Aegir) can used to build a dev site. Content can be then be migrated from live to testing. Once dev platform is updated, rebuild as live without --working-copy and migrate content back.
Site configuration is saved as Features. These and the profile themes are saved in Git also. (Optionally, keep theme in a separate repo.)
.make
.make files specify a recipe for modules, themes and libraries to be downloaded by Drush. Make files are used along with an install profile to make a distribution.
- Drush Make readme
- http://drupalcode.org/project/profiler.git/blob/refs/heads/7.x-2.x:/README.txt#l87
drush make-generate filename.make generate make from a platform/site
Examples
- http://drushmake.me/ - automatic generation demo
Projects
projects[drupal][version] = "7.16" projects[drupal][patch][] = "http://drupal.org/files/1356276-base-profile-d7-39-do-not-test.patch" projects[sasson][type] = theme projects[sasson][version] = 3.x-dev projects[sasson][download][type] = git projects[sasson][download][url] = http://git.drupal.org/project/sasson.git projects[virtualmerchant][type] = "module" projects[virtualmerchant][download][type] = "file" projects[virtualmerchant][download][url] = "https://drupal.org/files/uc_virtualmerchant.zip"
local files;
- Include a "directory" download method to "download" from local directories
- http://drupal.org/files/0001-Issue-1837808-by-fgm-Include-a-directory-download-me.patch
Libraries
.make files can specify external libraries to be downloaded using the Libraries API module.
; CKEditor libraries[ckeditor][download][type]= "get" libraries[ckeditor][download][url] = "[ckeditor zip url goes here]" libraries[ckeditor][directory_name] = "ckeditor" libraries[ckeditor][destination] = "libraries"
Sandbox
core = 7.x api = 2 ; Sandbox module projects[range_field][type] = module projects[range_field][download][type] = git projects[range_field][download][branch] = "7.x-1.x" projects[range_field][download][url] = http://git.drupal.org/sandbox/Taran2L/1848632.git projects[range_field][download][revision] = a1cc04da3c1dd957e6808b7e6a381c5970904863
Git
You can get things from git, specify branches, etc.
Also;
- http://drupal.org/node/1206340 - options array
Profiles
Install Profile in Drupal 7 is actually a few files: mysite.profile, mysite.info, mysite.install
- Developing installation profiles
- Install Profile Packaging
- Packaging a profile on drupal.org (make file -> install profile)
Optional;
Articles
Profiler
The Profiler library is installed with the .make and simplifies the Install Profile system by using a .info file to specify modules to be initialised, including site sections/etc. from the Features module, plus configuration settings via the Strongarm module. Provision initialises a site on that platform and installs the platform+site in Aegir.
Profiler Builder
- Profiler Builder is a module for automating the creation of installation profiles and distributions. It has support for the Profiler installation profile simplifier library but is able to run independent of it (1.0-RC4+). This module creates a downloadable tar package that gives you a well made installation profile and associated drush make file based on the site its installed on.
My profiles
- Base dev - old
Features
Features provides a UI and API for taking different site building components from modules with exportables and bundling them together in a single feature module. A feature module is like any other Drupal module except that it declares its components (e.g. views, contexts, CCK fields, etc.) in its .info file so that it can be checked, updated, or reverted programmatically.
Installation
You use Features like Modules. They can downloaded using Drush or be called by a distros .make and .info. Features can also be sourced from a Feature Server.
Install from a Feature Server:
drush dl feature --source=http://www.darrenmothersele.com/fserver
ordrush dl features_links --source=http://community.featureservers.org/fserver
Modules
- http://drupal.org/project/ftools - gives the ability to remove elements from a feature and put them back to the DB. also Adds a submit button in the recreate feature form named "auto create feature" which downloads the feature tarball, un-tars it and put the files in the right place in one click. required web server directory permissions.
- http://drupal.org/project/features_orphans - simply lists all Features-Exportable components that have not been exported to a feature.
- http://drupal.org/project/uuid_features - provides a mechanism for exporting content (nodes, taxonomy, fields) into a features module. What's that you say? You thought features was only for configuration? This module is meant to be used in the cases where certain pieces of content straddle the line between pure content and configuration.
- http://drupal.org/project/context_spaces_features - creates a condition for Context based on active Features in a given space
- https://drupal.org/project/features_all - Automatically add all components of one component type to a feature module (i.e. all variables, all permissions, etc.) It is generally a bad idea to use features in this way, but a situation many have needed.
Feature Server
- Distributed Feature Servers in Drupal, Dev. Seed, June 24 2009
- Recipe For a Feature Server, Dev. Seed, June 26 2009
Git
Features to Git allows trusted users to write features directly to disk, commit them to git and push them to a remote. This makes it possible for site builders to be able to manage features in git without having to get their hands dirty on the command line.
Kit
Kit is a specification, a set of guidelines that facilitates building compatible and interoperable Features.
Debut
Debut is a set of baseline Drupal 7 Features designed to work independently yet integrate seamlessly together. Building on the Kit feature specification.
- Debut Article: An article content type including media and block display.
- Debut Bio: A user bio profile that can be displayed alongside e.g. blog posts showing the author's real name and bio.
- Debut Blog: A Blog content type and recent blog post block display.
- Debut Comment: Commonly needed functionality for commenting including comment notification, CAPTCHAs, and login enhancements.
- Debut Event: An Event content type and calendar displays.
- Debut Forum: Forum functionality integrating Drupal core Forum module and Advanced Forum.
- Debut Highlighted: Highlight selected site content with slideshow.
- Debut Link: A link content type and associated displays for presenting links to other sites.
- Debut Media: media handling and display using the Media module.
- Debut Section: Nested landing pages for the main sections of a site (using Book module).
- Debut SEO: search engine optimizations including metatags.
- Debut Social: A social media feature integrating some of the most commonly needed social media functionality.
- Debut WYSIWYG: Input formats and accompanying editors, along with input formats per role.
Other
- Dashboard Views - A collection of preconfigured Views to add to the dashboard of your Open Atrium groups. Currently includes: Book pages (with "Add Book page" link), Member Listing (including admin vs. user status), Projects (Case Tracker or Case Tracker Plus), Shoutbox
- Ideation - A crowd-sourced suggestion box, which allows users to: suggest ideas, vote on and discuss already submitted ideas, surface most important/best ideas, as well as start discussions around ideas.