Building

From Things and Stuff Wiki
Revision as of 06:06, 9 December 2013 by Milk (talk | contribs) (→‎Features)
Jump to navigation Jump to search


See also Drush, Builds

Workflow

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-generate filename.make
  generate make from a platform/site

Examples

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;

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;

Profiles

Install Profile in Drupal 7 is actually a few files: mysite.profile, mysite.info, mysite.install

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.

My profiles

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
or drush 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/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.

Feature Server

Feature Server (fserver)

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.

Tools