answers@hook42.com
(Don’t Fear) the Features
Now with more cowbell. AND DRUPAL 8!!
Aimee Degnan / aimee@hook42.com
(Dont Fear) the Features Now with more cowbell. AND DRUPAL 8!! Aimee - - PowerPoint PPT Presentation
(Dont Fear) the Features Now with more cowbell. AND DRUPAL 8!! Aimee Degnan / aimee@hook42.com answers@hook42.com Me Aimee Degnan, CEO 1996 Enterprise Web Tech & CMS 2006 PMP, Stanford Advanced PM 2008 Drupal 2010
answers@hook42.com
Now with more cowbell. AND DRUPAL 8!!
Aimee Degnan / aimee@hook42.com
answers@hook42.com
answers@hook42.com
1996 – Enterprise Web Tech & CMS 2006 – PMP, Stanford Advanced PM 2008 – Drupal 2010 – Agile: Scrum Master, Product Owner aimee@hook42.com @aimeeraed www.hook42.com @hook42inc
Aimee Degnan, CEO
answers@hook42.com
answers@hook42.com
A boutique software development firm. Cater to both luxury clients and humanitarian efforts. Specialize in complex projects. Contribute to the community. Focus areas: site rescue, migration / upgrades, multilingual, SEO, responsive design, digital strategy, business process improvements
Who are we?
answers@hook42.com
answers@hook42.com
Drupal has a nice feature, you can create a feature using Features.
answers@hook42.com
answers@hook42.com
answers@hook42.com
6
answers@hook42.com
answers@hook42.com
It exports Drupal configurations in the database to code in the structure of a module.
answers@hook42.com
answers@hook42.com
Bundle a reusable website feature for reuse on other sites.
Site1.com/blog Site2.com/blog Site3.com/blog
For example, a custom blog feature = content type + views + block + permissions Feature: h42_awesome_blog
answers@hook42.com
answers@hook42.com
Bundle database configurations to code for deployment in a multi-stage publication process for a single web site. example.com Dev à Test à Prod
answers@hook42.com
answers@hook42.com
Too much work Hard to use Messy Painful Evil Ugh
answers@hook42.com
answers@hook42.com
Missing variables Circular & multiple dependencies Missing settings Non-exportable?! Un-tested?!?
answers@hook42.com
answers@hook42.com
answers@hook42.com answers@hook42.com
answers@hook42.com
answers@hook42.com
Is there a D8 version of Features?
Yes
What does it do?
Exports configuration as module code.
Do I need it?
Depends on your use case.
Does Configuration Management replace the use of Features?
For configuration exports. Yes. Absolutely.
Are there usage considerations with Configuration Management?
answers@hook42.com
answers@hook42.com
Management Interface (single roll-up page) Clearer terminology aligned to core
revert->import update->export generate -> write
Namespace management
Can bundle Features together Bundle prefix management for module export Automatic packaging / architecting features Automatic namespace management Can configure what is “automatic”
answers@hook42.com
answers@hook42.com
FOCUS: KNOW WHAT EACH SYSTEM IS REALLY GOOD FOR
answers@hook42.com answers@hook42.com
Features
Nice interface Easy to see changes Creates modules Modules generate an “active config” footprint in the Config Management system
Configuration Management
Manual, needs dev skill. All or none model. Core UI is overwhelming. See Config partial export module for UI.
answers@hook42.com answers@hook42.com
Features
Nice interface. Namespace management. Module packaged for you.
Configuration Management
Manual creation of module from YAML exports. Needs more dev skill. It can be done.
answers@hook42.com answers@hook42.com
Features
D7 – low to medium. D8 – much better. Edge cases and less supported modules iffy.
Configuration Management
Core config management is great! Contrib is better off the start. Edge cases and less supported modules better than D7, but still may have issues.
answers@hook42.com answers@hook42.com
Features
D7 – based on architecture. D8 – much better. Zombie fields, deletion management. Dreaded Features Override.
Configuration Management
Core config management is great! Contrib is better off the start. Zombie fields. “Stuck” imports.
answers@hook42.com answers@hook42.com
Features
features-export fex/fu features-import fim/fr D7 (drush cc)
Configuration Management
cex (config-export) cim (config-import) cget (config-get) cset (config-set) config-merge D8 (drush cr)
answers@hook42.com
answers@hook42.com
The gotchas.
D7 Features: Incorrect module exports D7 Features: State based Variables in Strongarm D7 Features: Circular & Mul>ple Dependencies Timing dependency deployments Things that have an ID (role, terms, content) D7 Features: Files don’t get deleted Field Cleanup D7 Features: Module dependencies & patching Force, cc all == drush cim, drush cr Conflicts
answers@hook42.com
answers@hook42.com
custom YAML code.
answers@hook42.com
answers@hook42.com
Mike Potter: https://www.phase2technology.com/blog/best- practices-for-cmi-and-features-in-drupal-8/ https://chromatichq.com/blog/drupal-7-features-vs-drupal-8- configuration-management http://nuvole.org/blog/2013/sep/03/configuration- management-and-features-look-drupal-8 https://www.drupal.org/project/config_partial_export https://pantheon.io/blog/configuration-workflow-drupal-8-sites https://pantheon.io/docs/drupal-8-configuration-management/