Building
See also Drush#Make, Builds
To merge with bits of Aegir, BOA
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)
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.
Features and theme are stored using Git, --working-copy can be used to build a dev site then content can be migrated from live for testing. Dev platform is perfected, then rebuilt as live without --working-copy.
todo; use hosting_site_git and working-copy patch
See also Aegir#Managing workflow
older notes
To manage a web site project, create a pointer build file which will point towards a bespoke profile.
Add a builds/ directory to the Aegir instance root and git clone distro build files to (and from for backup, etc.) there.
Create platform and then site using the build file path.
Needs development; check where profile inheretance to make splitting out dev/ui modules for production sites.
To check; use Drush make generate to refresh make?
Drush Make
Drush Make is part of Drush as of Jan 2012.
.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 theory for happy profile development
- Using drush_make to optimize workflow - Basics of make/profile management from mig5's first article
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)
Articles
Profiler
Enables the use of .info like syntax for profiles.
Aegir workflow
It's not best practice to try and store build .make and .profile/.info in the same repo. This would require one to set the profile download in the make file the be the same repo, thus causing Drush to download all .make projects twice.
Instead, a stub build .make file that points to said repo will download all properly. technique copied from mig5.
My profiles
See my Github
- Base dev - old
to check;
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.
Extras
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
D6
- http://drupal.org/project/modes - one-at-a-time meta features.
- http://drupal.org/project/faccess - per feature user permissions
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.