Right now ConfigInstaller implements getSourceStorage and it is not part of the inteferface ConfigInstallerInterface.
This method is called in ModuleInstaller:132
if ($sync_status) {
$source_storage = $config_installer->getSourceStorage();
}
The contrib Module config_selector decorates the ConfigInstaller but did not implement the method getSourceStorage. This crashes during a site install with config_installer
| Comment | File | Size | Author |
|---|---|---|---|
| #3 | getsourcestorage_in_interface-3001159.patch | 1.52 KB | christian.wiedemann |
Comments
Comment #2
christian.wiedemann commentedComment #3
christian.wiedemann commentedComment #4
christian.wiedemann commentedComment #5
alexpottYeah I'm not sure why #1808248: Add a separate module install/uninstall step to the config import process didn't add it to the interface. I think it's really because it is only in a very very specific and rare case that it is meant to be used. Ie. when installing a module via the ConfigImporter.
I wonder if the documentation needs to be updated to inform developers that the use case is very specialised. OTOH if you have a use-case that's not likely to stop you :)
Also this not being on the interface is causing bugs - see #3001168: Config Installer crashes with "Call to undefined method Drupal\config_selector\DecoratingConfigInstaller::getSourceStorage()" - so let's add it.
I think this is okay to go into 8.7.x under the 1-to-1 interface / class rule.
Comment #6
catchCommitted b0b4ef0 and pushed to 8.7.x. Thanks!
Comment #7
catchArghh just committed this, but it should have had a change record...
Comment #9
alexpottCreated https://www.drupal.org/node/3014010