Features Master

Categories

Component ID

2502741

Component name

Features Master

Component type

module

Maintenance status

Development status

Component security advisory coverage

covered

Downloads

1786

Component created

Component changed

Component body

This module allows for the exporting of all active modules and themes and permissions using features module. There should be only one "master" features module that keeps track of the enabled modules and themes.

How it works:

Features master compares the list of currently enabled modules or themes to the list of enabled modules/themes that were previously exported. If there is a difference, the feature will be shown as `overridden`.

As an example: If your my_custom_project is created and exports the 'all modules' component, the list of ALL your currently enabled modules will be exported. Later if you want to add a module (say views) to the list that was exported, you could enable views module and then reexport. Once you push your code to another server, you just need to revert the my_custom_project feature, and then views will be enabled. The same thing works in reverse. If you disable a module (say dashboard) and update the my_custom_project feature, then when my_custom_project is reverted either locally or elsewhere, the dashboard module will be disabled.

Also added in 7.x-1.0-rc1 was the ability to export themes.

Permissions

7.x-1.0-rc1 added the additional ability to export ALL permissions. It works very similarly to how features core exports permissions, but instead of selecting individual permissions to export per feature, features master allows you to select "ALL permissions". It also solves the problem of permissions for disabled modules by providing permissions on the disabled module's behalf. This is really handy when you have modules that may be disabled locally or in production(views_ui), but want to keep the permissions consistent and your features from being overridden when modules are enabled or disabled (changing the permissions)

Similar Modules:

Master module is an alternative that uses it's own drush commands and focuses on setting the list of modules in the settings file. This method focuses on reusing the features functionality of exporting, diffs, and overridden state.

Drupal 8 status

The D8 config import and export system handles enabled modules, themes, and permissions in a similar way to this module, so that functionality is already taken care of. However there isn't yet a solution for the following :

  • features_master_temporary_modules_alter() where you may want modules to be temporarily disabled and enabled per environment. We're currently looking into the best way to accomplish this.
  • Maintaining permissions on behalf of disabled modules is also not a solved problem.

Contributors:

Thanks to Dave Reid for the inspiration