Features
Worked on
while working at
Since then I have been working on
at
Gokul N K
Drupal is a database heavy content management system.
This makes the staging workflow a painful process.
Enter Exportables(Part of Ctools)
Ctools is a group of nifty APIs and tools to improve the developer
experience and efficiency.
Earl Miles (Merlin of Chaos)
Did you know that Ctools stool for Chaos Tools
Sharing Databases?•Cumbersome process.•In Distributed teams it can be a nightmare.•Content and Settings are not separated.•Cannot do DB dumps on live sites.
BeforeMove the changes from database to
the code.
Code Settings and Content Resides in File System Database
After
Code & Settings Content Resides in File System Database
Advantage of saving settings in code
1. All settings in code. 2. Can be revisioned.3. Database changes can be
grouped. Hence easier to move selective changes to production.
4. Content and settings are separated.
Enter Features
Why features?
1. Development of website makes more contextual meaning, when it is discussed feature wise.
2. Easier to export feature by feature.
3. No need of any database changes on staging and prod.
For Features
Get comfortable with contexts and boxes.They will save your day.
Challenges in Features
1. Two people can’t work on same feature simultaneously.
2. Auto-detected dependencies can be wrong.
3. Once features are over-ridden then updates cannot be used.
4. Features that extend existing features.
Not all can problems can be fixed
1. Features Extra : http://drupal.org/project/features_extra
2. Features Plumber : http://drupal.org/project/features_plumber
3. Features Override : http://drupal.org/project/features_override
4. Ftools : http://drupal.org/project/ftools
Features Extra
Support for few popular modules, which features module doesn’t
support out of the box.
1. Blocks2. Node-queue3. Profile
Features Plumber
Remove wrongfully auto-detected dependencies.
Those who have worked with the features know the problem of
downloading a feature, copying it to the correct location, clearing cache.
All this only to find out that you have forgotten to add something else.REPEAT THE PROCESS AGAIN :P
Features Tools Auto create
Revert them All http://drupal.org/node/986932
S Safe Auto create
Features Override
View level overrides
Features Override
Advanced overrides. (Granular)
Configuration Module
Move the changes from database to the code.
Configuration Management Architecture
Will it solve the issue? May be most of them, but not all.
You are not an exception?
Thank you, Gokul