What is the Features module?
The Features module allows us to build custom features that don't involve programming by hand. We can organize the each part of our Insight page into one or more feature like a custom module. For instance, we could create a new feature like a "Super Event Calendar."
How does this work?
A Feature itself (with a capital "F") is constructed out of exportables created by existing modules that the Features module understands (either intrinsically or because those modules support the Features API). This sounds a lot more complicated than it is.
For example, imagine that you want to create a capability on the Drupal 6 server that involves a few custom Views, and perhaps some custom CCK fields. You can gather these customizations (let's call them "exportables" here) together and give that collection a name using the Features module. The Features module creates a set of custom code, which it can then export as a module. The code can then be managed through a SCM repository, allowing for change management.
To use Features in general:
- Download the Features module from http://drupal.org/project/features
- Enable the module on http://example-domain/admin/build/modules page.
- Manage the features on http://example-domain/admin/build/features page.
- Create a custom feature on http://example-domain/admin/build/features/create page.
To create a custom super feature, click Create feature at the top on the create feature page. Fill out the requirements (Name, Description, Version) as desired, then select settings in the Edit components section. When finished, select Download feature.
After this process, you can upload your custom feature on the server into the sites/all/modules directory.
To use a custom feature you've created, visit the Features page, select the checkbox for that selected custom feature, and select Save settings.
How Insight uses Features
Git branching and merging
- Clone our Features repository
git clone ssh://git.fedorahosted.org/git/fedora-insight-features.git
- Make a new branch for your work
git checkout -b my-new-feature
- Change the directory
- Make a new directory
- Copy your feature files
cp path/to/my/feature/* ./my_awesome_feature/
- Add the directory of feature
git add my_awesome_feature/
- Commit your changes
git commit -a -m "My awesome feature has been added"
- Push your changes
git push ssh://git.fedorahosted.org/git/fedora-insight-features.git/ devel