SUSTAINABLE DISTRO 	

BASED DEVELOPMENT
BUILDING ON A
COMMON(S) BASE:
BY STUART CLARK
about.me/stuartc
DISCLAIMER
The content of this talk is in no way
limited to “Commons”; it just made
for a catchy title!
ABOUT . ME / STUART C
DISTROS
AN INTROTO
DISTROS
AN INTROTO
DRUPAL COMMONS OPENPUBLIC
COMMERCE KICKSTART
BUILDING ON DISTROS
BUILDING ON DISTROS
PROS
Pre-built functionality
Usable out of the box
Cost effective
BUILDING ON DISTROS
CONS
Design quirks
Specific vision
Difficult to customise
BUILDING ON DISTROS
CONS
Difficult to customise
WHAT’STHE PROBLEM?
WHAT’STHE PROBLEM?
FEATURES
WHAT’STHE PROBLEM?
FEATURES
Overrides will be nuked by upgrade
Cloned exportables won’t be upgraded
Can’t export already exported
WHAT’STHE PROBLEM?
‹❮LIVE DEMO›❯
WHAT’STHE SOLUTION?
WHAT’STHE SOLUTION?
FORK / IGNORE UPDATES
(please don’t do this)
WHAT’STHE SOLUTION?
FEATURES OVERRIDE
(plus time, effort and patience)
‹❮LIVE DEMO›❯
WHAT’STHE SOLUTION?
EXTRAS
EXTRAS
api = 2	

core = 7.x	

!
; Include the definition of how to build Drupal core directly, including patches.	

includes[] = http://drupalcode.org/project/commons.git/blob_plain/7.x-3.12:/drupal-org-core.make	

!
; Download the Commons install profile and recursively build all its dependencies.	

projects[commons][type] = profile	

projects[commons][version] = 3.12	

!
;Anything else goes here and will be downloaded to sites/all/*
MAKEFILE - STANDARD
http://pastebin.com/rDJkiDWH
EXTRAS
api = 2	

core = 7.x	

!
; Commons as core	

projects[commons][type] = core	

projects[commons][version] = 7.x-3.12	

!
;Anything else goes here and will be downloaded to sites/all/*
MAKEFILE - PROFILE AS CORE
http://pastebin.com/3pHxKLQJ
EXTRAS
https://www.youtube.com/watch?v=9Dlv1N-nCTE
EXTRAS
…	

!
; Custom code	

!
; Note:This isn't actually a library, but the 'destination'/'directory_name'	

; parameters trick allow all custom code to be kept in a profile-esque	

; structured repository for a sites/all configuration.	

!
libraries[EXAMPLE][download][type] = git	

libraries[EXAMPLE][download][url] = https://github.com/EXAMPLE/EXAMPLE.git	

libraries[EXAMPLE][destination] = ..	

libraries[EXAMPLE][directory_name] = all
MAKEFILE - MIXED CUSTOM REPO
QUESTIONS???
STUART@REALITYLOOP.COM
WEBSITE
EMAIL
TWITTERNAME
QR CODE

Building on a Common(s) base: Sustainable Distro based development