Problem/Motivation
Module A has config a.yml. Module B also has config a.yml. If I install A before B, A's config will win. If I install B before A, B will win. The system silently ignores that the file cannot be copied because it already exists (when installing the module). This practically can easily happen if module A ships with a view, node type, etc. that is named the same as the one shipped with module B.
Although best practices would suggest the node type, view, etc. is named with a prefix of the module name, core does not do this either. Node type 'page' is not 'node_page' and the 'frontpage' view is not 'node_frontpage' either.
Proposed resolution
- Add tests for this scenario as it may easily happen.
- Throw a warning that some configuration was not installed with the module since it was already in the active store.
Remaining tasks
Do it.
User interface changes
A warning will be printed when a file already exists in the active store that would have been installed with the module.
API changes
Probably not much.
Comments
Comment #1
Gábor HojtsyTalked about this more with Alex Pott. He agreed (if I am recollecting right) that this should be critical but not a beta blocker. It needs to be fixed in Drupal 8 but not block beta. It should not require API changes. So adjusting accordingly. Also fix title to be more descriptive.
Comment #2
Gábor HojtsyClosing down as duplicate in favour of #2140511: Configuration file name collisions silently ignored for default configuration.