(Dont Fear) the Features Now with more cowbell. AND DRUPAL 8!! Aimee - - PowerPoint PPT Presentation

don t fear
SMART_READER_LITE
LIVE PREVIEW

(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


slide-1
SLIDE 1

answers@hook42.com

(Don’t Fear) the Features

Now with more cowbell. AND DRUPAL 8!!

Aimee Degnan / aimee@hook42.com

slide-2
SLIDE 2

answers@hook42.com

answers@hook42.com

Me

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

slide-3
SLIDE 3

answers@hook42.com

answers@hook42.com

Hook 42

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?

slide-4
SLIDE 4

answers@hook42.com

answers@hook42.com

Drupal has a nice feature, you can create a feature using Features.

Remember when…

slide-5
SLIDE 5

answers@hook42.com

Are you scared yet?

slide-6
SLIDE 6

answers@hook42.com

answers@hook42.com

Remember when…

Drupal has a nice [development and deployment] feature - you can create a feature [on your website] [using the] Features [module].

6

slide-7
SLIDE 7

answers@hook42.com

answers@hook42.com

What is the Features module?

It exports Drupal configurations in the database to code in the structure of a module.

slide-8
SLIDE 8

answers@hook42.com

answers@hook42.com

Intended Usage of Features

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

slide-9
SLIDE 9

answers@hook42.com

answers@hook42.com

Adapted Usage of D7 Features

Bundle database configurations to code for deployment in a multi-stage publication process for a single web site. example.com Dev à Test à Prod

slide-10
SLIDE 10

answers@hook42.com

answers@hook42.com

D7 Features has a bad reputation

Too much work Hard to use Messy Painful Evil Ugh

slide-11
SLIDE 11

answers@hook42.com

answers@hook42.com

Poorly made Features hurts everyone

Missing variables Circular & multiple dependencies Missing settings Non-exportable?! Un-tested?!?

slide-12
SLIDE 12

answers@hook42.com

answers@hook42.com

Goal: Fix Configuration Management in D8 core

The next-gen cowbell has arrived.

slide-13
SLIDE 13

answers@hook42.com answers@hook42.com

Isn’t it cute? Less menacing?

slide-14
SLIDE 14

answers@hook42.com

answers@hook42.com

But wait…

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?

  • Yes. Absolutely.
slide-15
SLIDE 15

answers@hook42.com

answers@hook42.com

Improvements Drupal 8 Features

Management Interface (single roll-up page) Clearer terminology aligned to core

revert->import update->export generate -> write

  • verridden -> changed

Namespace management

Can bundle Features together Bundle prefix management for module export Automatic packaging / architecting features Automatic namespace management Can configure what is “automatic”

slide-16
SLIDE 16

answers@hook42.com

answers@hook42.com

FEATURES VS. CONFIG MANAGEMENT

FOCUS: KNOW WHAT EACH SYSTEM IS REALLY GOOD FOR

slide-17
SLIDE 17

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.

Picking & Choosing Changes

slide-18
SLIDE 18

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.

Sharing

slide-19
SLIDE 19

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.

Confidence in Exports

slide-20
SLIDE 20

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.

Confidence in Imports

slide-21
SLIDE 21

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)

Command line differences

slide-22
SLIDE 22

answers@hook42.com

answers@hook42.com

Watch out for…

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

slide-23
SLIDE 23

answers@hook42.com

answers@hook42.com

Takeaways

  • 1. A Feature is an bundled export of custom configurations and

custom YAML code.

  • 2. A Feature is great for sharing.
  • 3. Features, you did well in D7. You are better in D8.
  • 4. Drupal 8 is time for Configuration Management.
  • 5. I’m going to try work without Features in D8.
  • 6. D7 Features best practices help parallel development in D8.
  • 7. I love you, Features. Sort of. ;)
slide-24
SLIDE 24

answers@hook42.com

answers@hook42.com

Reference Links

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/