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.


Gábor Hojtsy’s picture

Title: Add tests for configuration file name collisions » Configuration file name collisions silently ignored
Priority: Normal » Critical
Issue tags: +beta target

Talked 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.

Gábor Hojtsy’s picture

Status: Active » Closed (duplicate)