building on a common(s) base: sustainable distro based development

24
SUSTAINABLE DISTRO BASED DEVELOPMENT BUILDING ON A COMMON(S) BASE: BY STUART CLARK about.me/stuartc

Upload: stuart-clark

Post on 14-Jul-2015

76 views

Category:

Internet


3 download

TRANSCRIPT

SUSTAINABLE DISTRO BASED DEVELOPMENT

BUILDING ON A COMMON(S) BASE:

BY STUART CLARK about.me/stuartc

DISCLAIMERThe content of this talk is in no way limited to “Commons”; it just made

for a catchy title!

ABOUT . ME / STUART C

DISTROSAN INTRO TO

DISTROSAN INTRO TO

DRUPAL COMMONS OPENPUBLIC

COMMERCE KICKSTART

BUILDING ON DISTROS

BUILDING ON DISTROS

PROS

Pre-built functionalityUsable out of the box

Cost effective

BUILDING ON DISTROS

CONS

Design quirksSpecific vision

Difficult to customise

BUILDING ON DISTROS

CONS

Difficult to customise

WHAT’S THE PROBLEM?

WHAT’S THE PROBLEM?

FEATURES

WHAT’S THE PROBLEM?

FEATURES

Overrides will be nuked by upgradeCloned exportables won’t be upgraded

Can’t export already exported

WHAT’S THE PROBLEM?

‹❮LIVE DEMO›❯

WHAT’S THE SOLUTION?

WHAT’S THE SOLUTION?

FORK / IGNORE UPDATES(please don’t do this)

WHAT’S THE SOLUTION?

FEATURES OVERRIDE(plus time, effort and patience)

‹❮LIVE DEMO›❯

WHAT’S THE 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 - STANDARDhttp://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 COREhttp://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???

[email protected]

EMAIL

TWITTERNAME

QR CODE