Problem/Motivation
Currently in the 'exclude' assignment plugin we (optionally) exclude extension-provided configuration.
However, the install profile can legitimately override configuration originally provided by another extension.
Background
Module and theme install methods throw a PreExistingConfigException
if the extension provides a configuration item with the same name as one that's already present in the active configuration storage.
However, as explained in the code comments in ModuleInstaller::install()
, an exception is made for install profiles:
// Install profiles can not have config clashes. Configuration that
// has the same name as a module's configuration will be used instead.
See also ExtensionInstallStorage::getAllFolders():
// The install profile can override module default configuration. We do
// this by replacing the config file path from the module/theme with the
// install profile version if there are any duplicates.
This approach was introduced in #2140511: Configuration file name collisions silently ignored for default configuration.
Proposed resolution
Already completed: add a property extension_provided
to items in the config collection that we test before packaging an item.
Remaining tasks
On the feature edit form, make an exception for profiles. When editing them, allow adding configuration marked extension_provided
.
Comments
Comment #1
nedjoComment #2
nedjoComment #3
nedjoComment #4
nedjoMerged in summary from duplicate issue #2600238: Allow export of extension-provided configuration to profile.
Comment #9
nedjoComment #10
nedjoI believe this was fixed and just not marked so.