During installation a profile can override configuration provided by modules. However this is limited to install time. If a profile wants to provide a different default for a module that is installed after the profile installed it can't. This was a designed limitation of the ConfigInstaller. However, it is apparent that we have use cases for this. Not least with the testing profile in core which wants to disable translation download. To do this it has the file
core/profiles/testing/config/optional/locale.settings.yml. This currently does not work, which results in the test run downloading translations unnecessarily.
Another upside of this change is that we become more friendly to distributions as they can override configuration for modules they don't enable but want to provide a specific opinionated default config for in case the user does install that module.
Always check the profile module's optional and default configuration folders for overrides regardless of whether we're doing an installation.
User interface changes
Data model changes
Why this issue should be an RC target
- We assume in our testing profile it works like this
- I think given the testing ramifications - always downloading translations - it helps make the test infrastructure performant
- It empowers distributions
The patch includes a signature change for a protected method.