the past • Some reasoning about pros and cons • What we ended up doing • Some talk and examples (Fini on Deployotron) • Some more talk and more examples (Mads on Bandaid)
◦ patches • Branching is troublesome • Multiple failure points • What did I change? Re-make? • Less than perfect error handling • Large make files and recursive make files • Problems don’t fit on one slide
so that we ignore exceptions related to attempts to create roles that are already present on the site. There is an upstream issue with more details at https://drupal.org/node/1744274
-1744274-4.patch' home: 'https://drupal.org/node/1744274' reason: 'Ignores exception related to attempts to create roles that are already present on the site'
-1744274-4.patch' home: 'https://drupal.org/node/1744274' reason: 'Ignores exception related to attempts to create roles that are already present on the site' OMG - That’s YAML! sites/all/modules/secure_permissions.yml
change we had to make anyways back to the community. • They gives us access to others fixes right away without having to wait on releases. • But - we have to keep the process of using patches quick and easy or we just won’t bother
now we have to • Keep track of our patches • Be able to reapply after a module-upgrade • Remember why we applied the patch in the first place Drush-make have make-files, we have YAML
file next to the module • It contains ◦ The patch URL ◦ A “home” url (issue link) ◦ A description of why we need it • Yaml - because then we can script the modification of the file.
exception related to attempts to create roles that are already present on the site' - patch: 'http://drupal.org/files/secure_permissions-permissions-not-set-bug -1406892-d7-7.patch' home: 'https://drupal.org/node/1406892' reason: 'Fixes an issue where empty roles blocks other roles from getting permissions. Committed to dev so can be skipped when 1.6 is released.' … Great, but really - who wants to maintain yaml-files by hand?
that ◦ Applies patches ◦ Keeps the .yml updated ◦ Detects unauthorized changes ◦ Makes it as easy as possible to upgrade and re-patch modules ◦ And it does it all by using enough git internally to qualify as actual magic!
fully supported ◦ Core patching is a work-in-progress (patch+apply works) • We (reload) use bandaid. • A “large danish media-house” is currently converting from make to OMG and bandaid
modules and detect modifications” command • Full(er) core support • Support for custom content in the .yml files • We welcome issues and pull-requests against https://github.com/xendk/bandaid