Updated: Comment #326
Problem/Motivation
With Drupal 7's vastly-improved install profile functionality, and the recently-improved drupal.org distribution packaging infrastructure, many new install profiles have been created, and they are awesome.
However, install profiles are not inheritable, so if you want to, say, take Drupal Commons, and base your site off of it, but add one or two extra modules in your own customized install profile, you have to clone the entire install profile and change it to your needs. Allowing install profiles to declare base profiles (just like themes can declare base themes) would drastically simplify customizations to existing distributions by:
- Inheriting configuration from a parent install profile (base-profile)
- Overriding specific configuration from the base-profile
- Inheriting customizations in the installer from the base-profile
- Having additional installer tasks and form items to customize their own "start-state"
- Removing dependencies from the base-profile to customize which modules and themes are enabled by default.
Additional motivations are detailed on Dries's blog post.
Proposed resolution
- Modify the module load system to take into account base install profiles.
- Modify the install profile system to run parent installer(s) in the correct order.
Remaining tasks
Create plan- Write useful issue summary (in progress)
- Add to existing documentation page
User interface changes
None.
API changes
Install profiles can define base profiles using the syntax base profile: BASE_PROFILE
inside their .info.yml files.
Or, override dependencies from the base profile using the syntax:
base profile:
name: BASE_PROFILE
excluded_dependencies:
- MODULE_NAME
excluded_themes:
- THEME_NAME
Related Issues
- For D7 patch tracking: #2067229: Allow install profiles to declare base profiles for Drupal 7
- For D8 info inheritance patch tracking: #2692403: Make info and configuration inheritable in profiles