Features is a Drupal module that enables configuration from the database, like content types, views, and contexts, to be packaged into modules called "Features". Features consist of generated code that can be version controlled and deployed between environments. Features allow changes to be managed like code instead of only in the database. When a Feature is enabled, all its dependencies are installed as well. If the Feature is later changed, it becomes overridden and the developer must choose whether to revert or update the code.
2. About me
‣ Drupal developer since version 4.6
‣ Member of the Drupal Association -
you should be too!
‣ Working in Manchester at PRWD
3. Intro
‣ Features is a Drupal module created
by Development Seed
‣ It enables ‘Features’ to be created
which package CCK types, Views,
Contexts and more
‣ It moves configuration from the
database to code
4. What is a Feature?
‣ A Feature is a special kind of module
‣ Features consist of generated code
‣ Features are created via the admin UI
‣ Features have version numbers
5. How a Drupal installation changes
Version
Level Changes
control?
Core Rarely Yes
Contrib Regularly Yes
Custom code Frequently Maybe
Database Constantly No
Problem: how to manage change
in the database?
18. Changes
If any component of the feature is changed, the
Feature is ‘overridden’. In this case, I’ve
changed a View
19. Viewing a ‘diff’
I can now choose to revert the
changes or update the Feature code
20. Version control
‣ Because Features are code, they can
be managed like source code
‣ Updating a Feature is just like
updating a module
21. Deployment
‣ Features are great for ‘additive’
changes
‣ Not so great for ‘destructive’ changes
‣ Complex changes between Feature
versions are still tricky
22. Feature Servers
‣ Imagine running your own
drupal.org-style module repository
‣ Supports “Available Updates”
monitoring
‣ Powerful integration with drush and
drush make
23. What features doesn’t do
(yet)
‣ Taxonomy
‣ Node content and attachments
‣ Menus
‣ However, alternatives exist and more
modules are integrating with
Features
24. Pitfalls
‣ Many contrib modules as yet
unsupported
‣ Features isn’t magic - it’s just a
system for generating code
‣ Upgrades still need some manual
intervention
26. Thanks for listening
‣ Features is maintained by Development
Seed and is available at
http://drupal.org/project/features
‣ My site & blog are at
http://robknight.org.uk