- Issue created by @phenaproxima
- π§πͺBelgium wim leers Ghent π§πͺπͺπΊ
See the last paragraph at #3357969-9: For unattended updates run each stage life cycle phase in a different request β β if I'm correct, that means this issue is a blocker for improved performance: on sites with many contributed/custom modules installed, this would ensure that NONE of the contrib/custom modules would need to be copied from
active
tostage
, thus cutting down significantly on the amount of time spent on file I/O as reported at #3304108-13: Determine if rsync is faster than the PHP file copier for Composer stager β and #3304108-16: Determine if rsync is faster than the PHP file copier for Composer stager β .Tagging because this can potentially make individual core updates faster and because this would help Drupal core remain fast even on sites with enormous codebases such as hundreds of installed contributed modules.
- π¬π§United Kingdom alexpott πͺπΊπ
This is now a core issue as package manager is in there now.
This is a major bug because it break automatic updates and you need a way to append stuff to .htaccess if you have custom rules in there because otherwise an automatic update will override your .htaccess changes.
Okay there is a work around. You can do
vendor/bin/drush cset package_manager.settings include_unknown_files_in_project_root 1
But this is still a major bug. We should support copying files that are used in scaffold without having to set anything additional. And as there is no settings form and the error message doesn't point you to this it would be extremely hard for someone to solve this if they can't just ping @catch.
- π¬π§United Kingdom alexpott πͺπΊπ
We need to make changes in \Drupal\package_manager\PathExcluder\UnknownPathExcluder::getScaffoldFiles() and it needs to account for scaffolding options like
"[web-root]/sites/default/default.settings.php": { "mode": "replace", "path": "assets/sites/default/default.settings.php", "overwrite": true }, "[web-root]/sites/default/settings.php": { "mode": "replace", "path": "assets/sites/default/settings.php", "overwrite": false }, "[web-root]/robots.txt": { "mode": "append", "prepend": "assets/robots-prequel.txt", "append": "assets/robots-append.txt" },
- π¬π§United Kingdom alexpott πͺπΊπ
And we also need to account for additional packages that can scaffold. The root composer and Drupal core are always permitted to scaffold.
Example: Permit scaffolding from the project `upstream/project` ``` "name": "my/project", ... "extra": { "drupal-scaffold": { "allowed-packages": [ "upstream/project" ], ... } } ```
- π¬π§United Kingdom alexpott πͺπΊπ
I've written some dumb code in the \Drupal\package_manager\PathExcluder\UnknownPathExcluder - but I think the plan to add a command to the scaffold plugin to produce a list of files is a good one. But this is a starter for 10, so to say.