The features module enables the capture and management of features in Drupal. A feature is a collection of Drupal entities which taken together satisfy a certain use-case.

Features provides a UI and API for taking different site building components from modules with exportables and bundling them together in a single feature module. A feature module is like any other Drupal module except that it contains additional information in its info file so that configuration can be checked, updated, or reverted programmatically.

Examples of features might be:

  • A blog
  • A pressroom
  • An image gallery

Drupal 8+

Most Drupal 8+ sites should not need Features. See Stop Using Features: A Guide To Drupal 8 Configuration Management or the Drupal GovCon session Advanced Configuration Management in Drupal 8. For environment-specific configuration, use the Config Split module. If you are building a Distribution you can still use Features to export specific configuration into your profile or modules.

The Drupal 8.x-3.x version of Features requires the Configuration Update Manager module.

The 7.x-2.x version

The 2.x branch greatly changes (and hopefully improves) the user interface of the Create/Recreate Features screen. In addition, it adds new functionality including:

  • Ability to write your feature export directly to the Drupal file system (like drush fu).
  • Ability to remove auto-detected items from your export.
  • Ability to work with conflicting features.

The 7.x-2.x version is very compatible with feature exports created from the 7.x-1.x version. However, User Permission features will need to be re-exported, and Field features will be split into Field_Base and Field_Instance exports the next time you export. See New Field Bases and Instances in Features for more info.

There are currently no plans to port this new interface or new functionality to Drupal 6.

Regression in 7.x-2.12

There was a regression in the 7.x-2.12 release. See #3183346: [regression] Overridden features are reverting upon update.
If updating from an earlier 7.x-2.x release, do not update to 7.x-2.12. Instead, update to 7.x-2.13 or a later release. See the release notes for 7.x-2.13.

The 7.x-1.x version

The 1.x branch is no longer supported and is seeking a maintainer here: https://www.drupal.org/node/2706631

Documentation

Drupal 8+

Drupal 7

Related Modules

Drupal 8

  • Configuration Development provides automated import and export of configuration between the active configuration storage and exported modules.
  • Config Menu Link, a drop-in replacement for core's Custom Menu Link module, enables export of menu links, including to Features.
  • Configuration Tools is a package of modules that help to manage Drupal 8 configuration files.
  • Configuration Update Manager provides a report that allows you to see the differences between the configuration items provided by the current versions of your installed modules, themes, and install profile, and the configuration on your site. From this report, you can also import new configuration provided by updates, and revert your site configuration to the provided values.
  • Configuration Synchronizer: Provides methods for safely importing site configuration from updated modules and themes.

Drupal 7

Other resources

Drupal 7

Notes for contributors

If you want to help in the issue queue:

  • Thoughtful comments, including code reviews, can be more valuable than patches! Likewise, a patch without sufficient explanations is not likely to be accepted.
  • Look for "pinned" issues in "needs review"!
  • These may not always be critical for functionality, but getting them done will unblock other issues.

Supporting organizations: 
8.x-3.x and Drupal 9/10 maintenance

Project information

Releases