Problem/Motivation
It is important that we people sync configuration is done against the same codebase in both the target and source instance. People have been surprised that you can't sync configuration from Beta-13 to RC-3. This issue will get worse with contrib under active development. We also need to ensure that extensions are installed using the same version of the extension so that any install hooks are the same and we need this to be able to solve #2428045: Comparing active storage to install storage is problematic, install storage may change anytime without storing a copy of the original config in config - this way we can store it in state.
Proposed resolution
When we run update.php write the current versions of the extensions to core.extension. When we install an extension write the installed version to core.extension. When we update or install a module store the schema version in core.extension. Use this information to ensure that when we import a full site configuration the codebase and database are in the same state.
Remaining tasks
Review all of the UI text
User interface changes
Additional configuration import validation messages
API changes
None
Data model changes
Additional versions
key added to core.extensions. The key holds a list of installed extensions. For each extension the version at install time is stored plus the version the last time update.php is run. For modules, the schema is also stored.