Problem/Motivation
The installer has a circular dependency on system module, it shouldn't have.
Steps to reproduce
Proposed resolution
Remaining tasks
User interface changes
API changes
Data model changes
Release notes snippet
Issue fork drupal-3428372
Show commands
Start within a Git clone of the project using the version control instructions.
Or, if you do not have SSH keys set up on git.drupalcode.org:
Comments
Comment #3
catchAdded some hacks which at least show where the problems are:
1. SessionHandler should implement the lazy table creation pattern, then I think batch would work properly. We should do this as an interim step even if we eventually want a sandbox/databaseless mode - because we'll still need to switch to a real database and the real session handler needs to work without weird installer hacks at that point too.
2. 2005-era spaghetti calls to system_page_attachments() that's never been refactored properly #3428339: Remove calls to system_page_attachments()
3. The installer uses system_schema() tables to check if Drupal is already installed, that won't work if we have lazy creation. It'll need to check... something else.
4. Minimal install profile depends on system module but doesn't declare a dependency.
With this MR applied, I get the following behaviour - I can click through to profile selection, then after choosing minimal and submitting, I get redirected back to the installer (this is probably lack of working session storage). If I click through again, Drupal tries to install the minimal install profile but chokes on the lack of user module.
We can do #1, #2 and #3 as independent changes in their own issues, without completely reworking the installer, as long as we can find a suitable replacement for #3.
Not sure what #4 means but not sure how useful it is if we want to make install profiles into recipes, we might get there quicker than cleaning up the current installer.
Comment #4
phenaproximaHow about "does the
core.extensionconfig object exist?"Comment #5
catchYes
core.extensionconfig object could work!Comment #6
catchOpened #3428565: Implement lazy database creation for sessions.
Comment #7
catchI have a feeling this will be achievable, or at least attemptable, once #3428565: Implement lazy database creation for sessions and #3428339: Remove calls to system_page_attachments() land, so explicitly postponing on those issues.
Comment #8
wim leers#3428565: Implement lazy database creation for sessions is in :) (Congrats!)
Comment #10
catchFrom the list in #3.
Sessions table was done in #3428565: Implement lazy database creation for sessions
system_page_attachments() got factored out to systemPageAttachments() - it still attaches libraries from system module but there's not much in those now after two years, maybe we can drop it.
Comment #11
catchThis is probably happening in #3614153: Install system module alongside other modules in the installer now.
Comment #12
catchFinally!!!!!