Stable blockers + should haves
Beta blockers
#3534109: Permanently maintain a sandbox directory in package_manager
#3540215: Remove the ability to configure the path to Composer
Stable blockers
Not package_manager specific, but probably blocking it being used successfully on shared hosting.
#3067979: Exclude test files from release packages
#3331078: Add php-tuf/composer-stager to core dependencies — for experimental Automatic Updates & Project Browser modules
#3525345: Move some Package Manager validation into the pre-require and status check event listeners
#3511972: Allow Composer and rsync location to be configured via the UI
#3408901: [policy, no patch] Decide if and when automatic updates should rely only on packagist data to determine installability of modules
#3358504: Require PHP-TUF's Composer integration plugin
#3352210: Security review of secure signing components for package manager
Governance: #3474816: Governance for projects on Github
#3474292: Package Manager should disallow cweagans/composer-patches by default
To be categorized as beta/stable blockers or post stable clean-up:
#3502653: Require re-authentication for certain admin actions
#3463662: When it is installed, Package Manager should try to detect the paths of Composer and rsync
Usability
- #3321972: Make readiness check failure messages clear, consistent, and actionable - Needs summary update to actually define the problem and see if it is really a blocker
- #3346644: If an error occurs during an attended process, delete the stage on behalf of the user
Not yet categorized
- #3336867: Identify & vet commonly used composer plugins in the Drupal ecosystem
- #3338651: Drupal core's coding standards forbid translated exceptions, but does that anyway — f.e. FileValidationException
- #3345649: Update every ComposerValidator-dependent validator to have explicit test coverage that that dependency works
- #3342790: Validate PHP version to be used by the Composer process calls
- #3354011: Support scanning Composer Stager library for translatable strings
- #3335918: [Policy, no patch] Projects depending on composer plugins will have to update the additional_trusted_composer_plugins setting in package_manager.settings
Core stable blockers for Package Manager
- #3358504: Require PHP-TUF's Composer integration plugin
- #3477553: [PP-1] Manually test TUF-enabled Composer projects
Policy Questions
Core Beta Experimental blockers for Package Manager
- #3474876: Rename classes that reference a "stage" to be clearer and use the term "sandbox" instead
- #3474292: Package Manager should disallow cweagans/composer-patches by default
Core Alpha Experimental blockers for Package Manager
These issues block #3346707: Add Alpha level Experimental Package Manager module.
Dependencies
-
#3483411: Increase composer-stager constraint to the current stable release
- ⚠️ core issue ⚠️#3331078: Add php-tuf/composer-stager to core dependencies — for experimental Automatic Updates & Project Browser modules
- ⚠️ governance issue ⚠️#3474816: Governance for projects on Github
- ⚠️ infrastructure issue ⚠️#3343490: Deploy rugged for TUF signing to production
- ⚠️ infrastructure issue ⚠️#3352216: Securely sign Drupal core packages, even though they are hosted on GitHub/packagist directly (or alternative solution for drupal/core to be TUF protected)
Security (gate)
- ⚠️ core issue ⚠️#3352210: Security review of secure signing components for package manager
- #3358504: Require PHP-TUF's Composer integration plugin
Policy Questions
- ⚠️ core issue ⚠️#3349368: [policy, no patch] How much of The Update Framework integration is needed for alpha-level review/commit of Package Manager?
- ⚠️ core issue ⚠️#3385644: [policy, no patch] Consider whether to keep Package Manager and Automatic Updates in a separate repo/package than core in order to facilitate releasing updates to the updater
- #3421925: [policy, no patch] Decide if a production level TUF is a requirement for beta-level commit of Package Manager
API
Currently none! 🎉
Miscellaneous issues
Currently none! 🎉
Usability revoew
While not a blocker the sooner this work begins the better it is to be successful. This needs an issue to start that process.
Core Alpha Experimental blockers for Automatic Updates
These issues, plus the ones above, block #3253158: Add Alpha level Experimental Update Manager module.
- #3377458: Remove work arounds for 10.0.x support
- #3392196: Exceptions in batch no longer are shown on the page when Javascript is disabled - Core bug in 11.x, our AU tests will not pass without it.
- #3397228: Possible random failure in build tests for cron updates
Core Merge request planning
This is section deals with issues that won't necessary results in changes to the core versions of the module but will make it easier to ensure that contrib version is easy to automatically convert to the versions in the core merge requests and that these merge requests will pass tests.
We are currently relying on Drupalci to test the contrib module. Although Core uses gitlab only now switching to gitlab in the contrib module would not necessarily make things easier for us because core and contrib modules are set up differently for gitlab testing. We can use drupalci until July. If we are not in core by June we can convert our tests to gitlab.
We are currently using our .gitlab-ci.yml to:
- convert the module to the core version, using them same
composer core-convertcommand we use to make the merge requests - Run the all tests besides the Build tests on the core converted version
Alnought .gitlab-ci.yml attempts to make sure we don't break the core onversion it is not exactly like test in in the core merge requests. For this reason we have a core issue #3411111: Automatic Updates Gitlab Conversion test issue that we can use to test out the conversion. We can use this avoid noise on the core merge request issues that will be reviewed especially when we are making changes to the converter itself or want to test out the conversion in the middle of contrib issue exactly how it will be in core.
Here are the remaining issue that need to be addressed
- #3411110: Test Automatic Updates and Package Manager as part of Drupal core 11.x on GitLab CI. we can't test in 11.x, our target core version, in DrupalCi.
- #3411240: Run core code quality checks on the core converted version of the module
- #3411241: Expand ConverterCommand documentation to make it easier to run.
Comments
Comment #2
tedbowComment #3
wim leersRemoved #314137: Userpoints no negative not working properly since that's an issue of another module. I think there was a typo there :P
Comment #4
wim leersComment #5
wim leersAdded #3314137: Make Automatic Updates Drupal 10-compatible and #3319045: Assert that all expected package manager events are fired during build tests..
Comment #6
wim leersAdding #3318587: Research alternatives to curl request on post apply event during cron updates.
Comment #7
wim leersOh it already was in there, it just had not yet been tagged…
Comment #8
wim leersComment #9
wim leersComment #10
tedbowComment #11
tedbowComment #12
tedbowComment #13
wim leersAdded #3311200: Cron updater should delete the existing stage if not available and the site is currently on an insecure version to the "security" gate.
Comment #14
tedbowComment #15
wim leersI think #3318964: automated_cron should not run cron when visiting update.php would be a beta or stable blocker, even though it's technically a bug in Drupal core, not in Automatic Updates. It represents too much risk when AU is installed for it to remain unsolved.
Comment #16
wim leersI think #3252299: Reliably support cweagans/composer-patches in Package Manager & Automatic Updates: validate stage should be an alpha blocker but could be convinced it should be a beta blocker. Stable blocker is too late/risky IMHO. See #3252299-16: Reliably support cweagans/composer-patches in Package Manager & Automatic Updates: validate stage.
Comment #17
wim leers#3321905: Add colinodell/psr-test-logger to core's dev dependencies added.
We'll need similar issues for
php-tuf/composer-stagersymfony/configsymfony/finder… unless we can get release managers to pre-approve these. The latter 2 should be trivial, since it's a pre-existing upstream vendor.
Either way, we need to do this before the actual core merge request can get merged, because dependencies need to be individually vetted first anyway. There's no reason we need to wait to do this.
Furthermore, this has consequences for the alpha experimental state AFAICT: just excluding the module from packaged releases is insufficient; it'd still include these dependencies. We need to surface that to release managers ASAP.
Comment #18
wim leersAdding #3321933: Remove dependency on symfony/finder (addresses part of #17).
Comment #19
wim leersAdded #3322917: Create a test (or tests) to prove Package Manager works with submodules as implemented by packages.drupal.org to .
Comment #20
wim leersAdding #3323461 to because #3323461-5: Hosting environment (e.g. cPanel) may add additional files (including symlinks) to the project, which breaks AU.
Comment #21
wim leersAdding #3311229 to because of #3311229-5: Validate compliance with composer minimum stability during PreRequireEvent.
Comment #22
wim leersAdded #3321972: Make readiness check failure messages clear, consistent, and actionable to post-alpha, under .
Comment #23
wim leersDiscovered one more alpha blocker unfortunately: #3316368: Remove our runtime dependency on composer/composer: remove ComposerUtility.
Comment #24
wim leersAdded #3325522: Automatic Updates & Package Manager should use DependencySerializationTrait when needed to .
Comment #25
tedbowComment #26
wim leersAdded #3267646 to per #3267646-7: Refine multisite detection: many aliases for a single site is fine!.
Comment #27
tedbowJust so it is tagged
Comment #28
wim leersAdded #3329002: \Drupal\Tests\package_manager\Kernel\TestStageTrait::dispatch() should stop using a deprecated PHP language feature to .
Comment #29
wim leersReplaced with the actual issue I just created: #3331078: Add php-tuf/composer-stager to core dependencies — for experimental Automatic Updates & Project Browser modules.
Comment #30
wim leersAdded new section for #3331355: Refactor exception architecture.
Comment #31
tedbowComment #32
tedbowComment #33
wim leersGot this issue in sync with the actual reality for the currently 180
core-mvp-tagged issues.Added the following from the 3rd and 4th page of issues (80 issues total) tagged
core-mvp(which means I still have to check the 100 most recently updated issues with those tags!)After that: splitting in done vs remaining and in
automatic_updatesvspackage_manager.I untagged two issues.
Comment #34
wim leersAs promised, the 2nd page, good for another 50 issues …
Untagged: #3308843: Automatic Updates Extensions' forms should check for the failure marker, #3303900: Remove PreApply check in PackagesInstalledWithComposerValidator, #3307168: \Drupal\Tests\automatic_updates_extensions\Kernel\AutomaticUpdatesExtensionsKernelTestBase::setReleaseMetadataForProjects is a duplicate of \Drupal\Tests\automatic_updates\Kernel\AutomaticUpdatesKernelTestBase::setReleaseMetadata
Added:
Comment #35
wim leersAs promised, the 1st page, good for the last 50 out of 180 issues!
Untagged: none.
Added:
Untagging this issue
core-mvpthough, because it's not an actionable issue with work associated with it 😅Comment #36
wim leersAt the bottom of #33 I wrote:
The latter is nearly impossible because the
Package Managercomponent is not being used consistently to signal that an issue affects thepackage_managerbase module too, and not just theautomatic_updatesmodule. So … for now, not doing that, and here's hoping that the d.o PHP-TUF infrastructure will be ready in time for Automatic Updates to go into core before Project Browser. If that doesn't happen, we'll need to split this roadmap up, but that will require re-checking every single of these issues… 😳Will now do the "done vs remaining"…
Comment #37
wim leersDone vs remaining split: done!
Comment #38
wim leersSpotted one mistake in #37.
Tweaked the anchors to avoid duplicates. e.g.
#securityand#completed-security.Comment #39
tedbowupdating because #3317815: Remove all fixtures except for one: `fake_site` is no longer a meta
Comment #40
wim leers#3327391: Improve FixtureManipulator DX: validate package name + ensure StageFixtureManipulator is committed + ensure `package_manager_bypass_composer_stager` is not set to FALSE landed.
Comment #41
tedbowMove #3316668: ComposerSettingsValidator should run `composer config` to determine if HTTPS is enabled to "Reliability" to make it the same as #3316368: Remove our runtime dependency on composer/composer: remove ComposerUtility which it is a child issue of.
Currently our way to determine HTTPS setting for Composer does use a valid Composer API so I don't think the current method is a problem as far as security is concerned. It is just won't work if we want remove the dependency on
composer/composerComment #42
wim leers#3320782: xdebug being enabled causes tests to fail without clear indication that it is the problem landed. 🥳
Comment #43
wim leers#3330140: Update StatusCheckTrait::runStatusCheck() to reorder/avoid dispatching CollectIgnoredPathsEvent earlier than StatusCheckEvent landed and unblocked #3315834: GitExcluder should not ignore .git directories that belong to packages installed by Composer.
Comment #44
wim leers#3299094: Prevent staging areas that nested in the active Composer project directory landed.
Comment #45
wim leersAdded #3334906: Improve UX for trusting additional composer plugins to post-MVP.
Comment #46
tedbowCompleted #3328234: Improve test DX *and* confidence: stop using VFS
Comment #47
wim leersAdded #3334054: Add error handling for \Drupal\package_manager\Stage::getIgnoredPaths() to .
Comment #48
wim leers#3323706: Split up UpdaterFormTest to speed up test runs: from 13.5 to 10.5 minutes landed!
(And moved #319679: Taxonomy question + #3320792: Make build tests fail 1) more explicitly, 2) earlier when possible (failing StatusCheckEvent subscribers) + #317815: cannot change php or .htaccess file, cannot find code mentioned from the bucket to the bucket.)
Comment #49
wim leers#3331471: Add documentation for SymlinkValidatorTest landed (and moved it from the bucket to the bucket).
Added #3335766: Harden LockFileValidator, add stopPropagation() at failures (discovered by @omkar.podey) to .
Comment #50
wim leersAdded #3335802: Add addDotGitFolder functionality to \Drupal\fixture_manipulator\FixtureManipulator to , which is the new blocker for #3315834: GitExcluder should not ignore .git directories that belong to packages installed by Composer that @tedbow identified.
Comment #51
wim leers#3325522: Automatic Updates & Package Manager should use DependencySerializationTrait when needed is now obsolete thanks to other issues having landed ⇒ #3320824: Fix PHP Warning: serialize() in tests on PHP 8 is unblocked.
Comment #52
wim leersAdded #3335908: The 'fake_site' fixture cannot be using with `composer show` because the packages are not installed to .
Comment #53
wim leersLanded:
Comment #54
tedbowmerged #3335802: Add addDotGitFolder functionality to \Drupal\fixture_manipulator\FixtureManipulator
Comment #55
wim leersAdded #3336243: Update Package Manager event documentation in package_manager.api.php to .
Comment #56
wim leers#3315834: GitExcluder should not ignore .git directories that belong to packages installed by Composer landed 🥳
Comment #57
wim leersAdded #3336867: Identify & vet commonly used composer plugins in the Drupal ecosystem to post-MVP.
Comment #58
wim leers#3328742: phpcs stopped working since the switch to testing on Drupal 10.0.x by default landed 🎆
Comment #59
wim leersLanded:
Comment #60
wim leersImproving consistency of the buckets that are done 🥳
Comment #61
wim leersNew MVP issue: #3338666: Add functional test that proves there is reasonable UX whenever a stage event subscriber has an exception.
New post-MVP issues:
Comment #62
wim leers#3317815: Remove all fixtures except for one: `fake_site` landed and triggered a new post-MVP issue: #3338392: Document that StageFixtureManipulator should not be used in build tests.
Comment #63
wim leersAdded #3338346: Do not allow drupal/core-composer-scaffold to be used by packages other than core.
Comment #64
wim leers#3325654: Improve the user experience of having your staged update deleted before it was applied landed, which means we have no further known MVP UX improvement issues on the roadmap! 🎉
Comment #65
wim leersAdded #3339016: "Composer not found" does provide link to help page.
Comment #66
wim leers#3331168: Limit trusted Composer plugins to a known list, allow user to add more and #3335908: The 'fake_site' fixture cannot be using with `composer show` because the packages are not installed landed!
Comment #67
wim leersAdded many MVP issues created in the past 10 days that were still missing from the roadmap:
Comment #68
wim leersAdded #3340022: Tighten ComposerPluginsValidator: support only specified version constraint.
Comment #69
wim leers#3311229: Validate compliance with composer minimum stability during PreRequireEvent landed.
Comment #70
wim leers#3339657: Always show summary of validation result if exists landed.
Comment #71
wim leers#3335766: Harden LockFileValidator, add stopPropagation() at failures was closed.
Comment #72
wim leersLanded:
Comment #73
wim leers#3331310: Exclude unknown paths in project base: only allow vendor + web root + whatever drupal/core-composer-scaffold allows landed.
Comment #74
tedbowComment #75
wim leers#3252299: Reliably support cweagans/composer-patches in Package Manager & Automatic Updates: validate stage shipped 🚢
Comment #76
wim leersNew MVP issues created since #67 that I was not aware of previously:
Comment #77
wim leersAdded #3341224: Always catch \Throwable, not \Exception, and pass the old exception when re-throwing..
Comment #78
wim leers#3316368: Remove our runtime dependency on composer/composer: remove ComposerUtility was listed twice! 🙈
Comment #79
wim leersAdding #3341974: Finalize \Drupal\automatic_updates\Development\Converter script to update core MR.
Comment #80
wim leersAdding #3319030: Drupal Core Roadmap for Package Manager and Update Manager.
Comment #81
wim leers#3341708: Update requirements for 3.x and #3321474: Adopt PHP 8.1-only capabilities such as constructor property promotion + drop BC layers landed.
Comment #82
wim leersAdding
Comment #83
wim leers#3303167: Stage no longer needs the config factory happened in #3321474: Adopt PHP 8.1-only capabilities such as constructor property promotion + drop BC layers 👋
(Also: #80 was wrong 😅 — got it right and all up-to-date in #82, but still have to undo what I did in #80.)
29 remain (34 actually remain, but 5 of these are
automatic_updates-specific and hence postponed because we want to landpackage_managerfirst)Comment #84
wim leers#3320824: Fix PHP Warning: serialize() in tests on PHP 8 is finally fixed!
28 remain (33 actually remain, but 5 of these are
automatic_updates-specific and hence postponed because we want to landpackage_managerfirst)Comment #85
wim leersAdding
30 remain (35 actually remain, but 5 of these are
automatic_updates-specific and hence postponed because we want to landpackage_managerfirst)Comment #86
tedbowcompleted #3323003: Mark FailureMarker @internal and document ComposerUtility, PathLocator and ValidationResult
Comment #87
wim leers#3342364: Make StageEvent::$stage a public readonly property, and remove getStage() also landed.
Adding #3342726: UnknownPathExcluder doesn’t consider hidden files and #3342817: Decide which classes should be internal and/or final — delete ExcludedPathsTrait, make CollectPathsToExcludeEvent richer.
30 remain (35 actually remain, but 5 of these are
automatic_updates-specific and hence postponed because we want to landpackage_managerfirst)Comment #88
wim leersMoved one issue to the right place.
Comment #89
wim leers#3327229: Remove `@requires PHP >= 8.0` annotation from all tests and #3342726: UnknownPathExcluder doesn’t consider hidden files landed!
28 remain (33 actually remain, but 5 of these are
automatic_updates-specific and hence postponed because we want to landpackage_managerfirst)Comment #90
wim leersLanded:
Closed: #3340284: anonymous ProcessOutputCallbackInterface class ComposerInspector::getConfig() assumes __invoke does receive any data in error buffer.
26 remain (31 actually remain, but 5 of these are
automatic_updates-specific and hence postponed because we want to landpackage_managerfirst)Comment #91
wim leersNew: #3312960: Create an API for base requirement validators which run before other validators and stop event propagation if they fail, blocking #3342430: Hard failure after module install if composer is not found.
27 remain (32 actually remain, but 5 of these are
automatic_updates-specific and hence postponed because we want to landpackage_managerfirst)Comment #92
wim leersA lot has happened in the past 48 hours!
Landed:
New:
28 remain (33 actually remain, but 5 of these are
automatic_updates-specific and hence postponed because we want to landpackage_managerfirst)Comment #93
effulgentsia commentedI learned from @Wim Leers and @tedbow that some of the issues in the alpha blockers list are a consequence of trying to remove the dependency on composer/composer within tests. I just want to point out that the scope of #3316368: Remove our runtime dependency on composer/composer: remove ComposerUtility is to remove the runtime dependency on that. It's okay to leave composer/composer as a dev dependency, since it already is that for core anyway.
So if it helps to move some of the issues for refactoring tests to not use composer/composer to post-alpha, I'd be +1 to that, so long as we think that the tests are still sufficiently reliable without that refactoring.
Comment #94
wim leersLanded #3344039: Add a validate() method to ComposerInspector to ensure that Composer is usable.
Added #3344556: Make ComposerInspector::getVersion() private.
Comment #95
wim leersLanded: #3344556: Make ComposerInspector::getVersion() private
Added:
28 remain (33 actually remain, but 5 of these are
automatic_updates-specific and hence postponed because we want to landpackage_managerfirst)Comment #96
tim.plunkettComment #97
wim leers#3344127: Run `composer validate` after FixtureManipulator commits its changes landed.
Comment #98
tim.plunkett@tedbow, @Wim Leers, @lauriii, and I met and discussed the alpha vs beta classification of many of the issues.
The issues that were moved to a new Beta section are no less important to the codebase or the end user, but they could happen after an initial commit to a dev branch of core.
See https://www.drupal.org/about/core/policies/core-change-policies/experime... for more distinction on alpha vs beta.
Comment #100
wim leersThanks — #96 + #98 look great!
And thanks for fixing what I got wrong in #97! 🙈😄
Credited @lauriii because @tim.plunkett did not have the necessary permissions.
Comment #101
wim leersLanded: #3344595: ComposerInspector::validate() should run `composer validate`
package_manageralphablockers: 12 remainpackage_manager+automatic_updatesalpha + betablockers: 27 remain (32 actually remain, but 5 of these areautomatic_updates-specific and hence postponed because we want to landpackage_managerfirst)Comment #102
wim leers#3321933: Remove dependency on symfony/finder was blocked for months. It's now unblocked. That's why it's now also clear that we won't need an issue to add
symfony/finderas a new core dependency. But we will need that forsymfony/config. I already reported that on Dec 9.@longwave already responded favorably. I just posted a patch there, and am adding it to this issue.
I'm also making it more clear which issues are core issues already — of the 12 remaining (now 13), there are 3 core issues. Finally: this did not yet link to the issue where this module will be added to core: #3253158: Add Alpha level Experimental Update Manager module. Fixed that too.
package_manageralphablockers: 13 remain, 10 are under our control, 3 are issues to add core dependenciespackage_manager+automatic_updatesalpha + betablockers: 28 remain (33 actually remain, but 5 of these areautomatic_updates-specific and hence postponed because we want to landpackage_managerfirst)Comment #103
wim leers#3343889: Drop support for end-of-life versions of Composer landed while I was writing #102 🚀
package_manageralphablockers: 12 remain, 9 are under our control, 3 are issues to add core dependenciespackage_manager+automatic_updatesalpha + betablockers: 27 remain (32 actually remain, but 5 of these areautomatic_updates-specific and hence postponed because we want to landpackage_managerfirst)Comment #104
phenaproxima#3321933: Remove dependency on symfony/finder landed.
Comment #105
phenaproximaRemoving #3326246: Add symfony/config to core's dependencies for package_manager in favor of #3345039: Remove dependency on symfony/config, which sidesteps the problem completely and doesn't require core (or Package Manager!) to add additional dependencies.
Comment #106
phenaproxima#3345039: Remove dependency on symfony/config landed!
Comment #107
wim leersIndeed! 😊
package_manageralphablockers: 10 remain, 8 are under our control, 2 are issues to add core dependenciespackage_manager+automatic_updatesalpha + betablockers: 25 remain (30 actually remain, but 5 of these areautomatic_updates-specific and hence postponed because we want to landpackage_managerfirst)Comment #108
phenaproxima#3331355: Refactor exception architecture is done!
Comment #109
wim leersLanded:
New beta blockers:
New beta blockers which are blocking #3316368: Remove our runtime dependency on composer/composer: remove ComposerUtility (see #3316368-23: Remove our runtime dependency on composer/composer: remove ComposerUtility):
Comment #110
wim leersForgot to move #3343827: Update FixtureManipulator to work with InstalledPackagesList, real composer show command!
package_manageralphablockers: 9 remain, 8 are under our control, 3 are issues to add core dependenciespackage_manager+automatic_updatesalpha + betablockers: 39 remain (44 actually remain, but 5 of these areautomatic_updates-specific and hence postponed because we want to landpackage_managerfirst)#3316368: Remove our runtime dependency on composer/composer: remove ComposerUtility is listed as an alpha blocker, which would make the 15 new beta blockers at the bottom of #109 actually alpha blockers. But @tim.plunkett, @lauriii, @tedbow and I kept #3316368 as an alpha blocker — I think because proving that it can in fact be removed is an alpha blocker, but actually finishing it is not? We need to get clarity on this.
Comment #111
wim leersFrom #110:
→ @effulgentsia confirmed that they are alpha blockers. Moved them. Because they all block the bucket primarily, moved them all in there. That means we now have zero things left under ! 😊
Landed:
New & already landed: #3345881: Remove fake-site fixture for automatic_updates_extensions.
package_manageralphablockers: 22 remain, 20 are under our control, 2 are issues to add core dependenciespackage_manager+automatic_updatesalpha + betablockers: 36 remain (41 actually remain, but 5 of these areautomatic_updates-specific and hence postponed because we want to landpackage_managerfirst)Comment #112
wim leerscore-mvp: #3345633: Remove FixtureManipulator::modifyPackage() last usage.Comment #113
wim leersLanded:
⇒
package_manageralphablockers: 19 remain, 17 are under our control, 2 are issues to add core dependenciespackage_manager+automatic_updatesalpha + betablockers: 33 remain (38 actually remain, but 5 of these areautomatic_updates-specific and hence postponed because we want to landpackage_managerfirst)Comment #114
wim leersLanded:
⇒
package_manageralphablockers: 17 remain, 15 are under our control, 2 are issues to add core dependenciespackage_manager+automatic_updatesalpha + betablockers: 31 remain (36 actually remain, but 5 of these areautomatic_updates-specific and hence postponed because we want to landpackage_managerfirst)Comment #115
wim leersLanded:
⇒
package_manageralphablockers: 15 remain, 13 are under our control, 2 are issues to add core dependenciespackage_manager+automatic_updatesalpha + betablockers: 29 remain (34 actually remain, but 5 of these areautomatic_updates-specific and hence postponed because we want to landpackage_managerfirst)Comment #116
wim leersI see I failed to mention that my proposal to close #3342430 as outdated in #3342430-19: Hard failure after module install if composer is not found has been accepted at #3342430-27: Hard failure after module install if composer is not found — one less! 👍
⇒
package_manageralphablockers: 14 remain, 12 are under our control, 2 are issues to add core dependenciespackage_manager+automatic_updatesalpha + betablockers: 28 remain (33 actually remain, but 5 of these areautomatic_updates-specific and hence postponed because we want to landpackage_managerfirst)Comment #117
wim leers#3345761: UpdateReleaseValidator should use ComposerInspector instead of ComposerUtility landed.
⇒
package_manageralphablockers: 13 remain, 11 are under our control, 2 are issues to add core dependenciespackage_manager+automatic_updatesalpha + betablockers: 27 remain (32 actually remain, but 5 of these areautomatic_updates-specific and hence postponed because we want to landpackage_managerfirst)Comment #118
wim leers#3345760: \Drupal\automatic_updates_extensions\Form\UpdaterForm should use ComposerInspector instead of ComposerUtility landed.
⇒
package_manageralphablockers: 12 remain, 10 are under our control, 2 are issues to add core dependenciespackage_manager+automatic_updatesalpha + betablockers: 26 remain (31 actually remain, but 5 of these areautomatic_updates-specific and hence postponed because we want to landpackage_managerfirst)Comment #119
wim leers#3337760: ComposerPatchesValidator should use ComposerInspector instead of ComposerUtility landed.
⇒
package_manageralphablockers: 11 remain, 9 are under our control, 2 are issues to add core dependenciespackage_manager+automatic_updatesalpha + betablockers: 25 remain (30 actually remain, but 5 of these areautomatic_updates-specific and hence postponed because we want to landpackage_managerfirst)Comment #120
wim leers#3345762: GitExcluder should use ComposerInspector instead of ComposerUtility landed.
⇒
package_manageralphablockers: 10 remain, 8 are under our control, 2 are issues to add core dependenciespackage_manager+automatic_updatesalpha + betablockers: 24 remain (29 actually remain, but 5 of these areautomatic_updates-specific and hence postponed because we want to landpackage_managerfirst)Comment #121
wim leers@tedbow discovered a new alpha blocker: #3346628: FixtureManipulator should only use Composer commands, rather than manipulating JSON directly.
😬
Comment #122
phenaproxima#3346628: FixtureManipulator should only use Composer commands, rather than manipulating JSON directly is done!
Comment #123
wim leersAnd so is #3345763: UnknownPathExcluder should use ComposerInspector instead of ComposerUtility.
Also clarifying the the alpha roadmap is for #3346707: Add Alpha level Experimental Package Manager module since we first want to land Package Manager in
10.1to enable Project Browser to also land in10.1because Automatic updates is blocked on d.o infrastructure and will definitely not make10.1. #3253158: Add Alpha level Experimental Update Manager module is slated for10.2at this point.⇒
package_manageralphablockers: 9 remain, 7 are under our control, 2 are issues to add core dependenciespackage_manager+automatic_updatesalpha + betablockers: 22 remain (27 actually remain, but 5 of these areautomatic_updates-specific and hence postponed because we want to landpackage_managerfirst)Comment #124
wim leersLanded:
@phenaproxima opened a new blocker for #3316368: #3347031: Stage::validatePackageNames() should not use the Composer API.
⇒
package_manageralphablockers: 8 remain, 6 are under our control, 2 are issues to add core dependenciespackage_manager+automatic_updatesalpha + betablockers: 21 remain (26 actually remain, but 5 of these areautomatic_updates-specific and hence postponed because we want to landpackage_managerfirst)Comment #125
wim leersLanded:
⇒
package_manageralphablockers: 6 remain, 4 are under our control, 2 are issues to add core dependenciespackage_manager+automatic_updatesalpha + betablockers: 19 remain (24 actually remain, but 5 of these areautomatic_updates-specific and hence postponed because we want to landpackage_managerfirst)Comment #126
wim leers#3338789: Random failure: "PHP temp directory (/tmp) does not exist or is not writable to Composer." landed.
⇒
package_manageralphablockers: 5 remain, 3 are under our control, 2 are issues to add core dependenciespackage_manager+automatic_updatesalpha + betablockers: 19 remain (24 actually remain, but 5 of these areautomatic_updates-specific and hence postponed because we want to landpackage_managerfirst)Comment #127
phenaproxima#3318306: Define the Package Manager API (package_manager.api.php is outdated) is in; docs gate is cleared!
Comment #128
wim leers#3318306: Define the Package Manager API (package_manager.api.php is outdated) landed!
⇒
package_manageralphablockers: 4 remain, 1 is under our control, 1 is blocked on upstream (Composer Stager), 2 are issues to add core dependenciespackage_manager+automatic_updatesalpha + betablockers: 18 remain (23 actually remain, but 5 of these areautomatic_updates-specific and hence postponed because we want to landpackage_managerfirst)Comment #129
wim leers#3344583: ComposerInspector::validate() should throw ComposerNotReadyException instead of \Exception landed and was a beta blocker.
Comment #130
effulgentsia commentedThe issue summary had an Alpha blocker section for Package Manager, but was missing an Alpha blocker section for Automatic Updates. So I created that missing section and moved the two issues for Unattended Updates from the Beta blockers section to the Automatic Updates Alpha blockers section.
Comment #131
phenaproximaAdding #3347959: ComposerPluginsValidator uses Composer's internal Package class as an alpha blocker, which should have been fixed as part of removing our dependency on composer/composer, but slipped through the cracks.
Comment #132
tedbowfixed #3347959: ComposerPluginsValidator uses Composer's internal Package class
Comment #133
tedbowWe will need #3348162: Ensure all remaining @todos have a link to an open issue before we can get core merge
Comment #134
tedbowquickly fixed #3319768: Document why using dblog to query logged messages in build tests is justified
Comment #135
wim leersI think you meant #3348276: In CoreUpdateTest::testUi, confirm that the UI says no update is available after updating successfully? 😁
Comment #136
wim leers#3341974: Finalize \Drupal\automatic_updates\Development\Converter script to update core MR landed.
⇒
package_manageralphablockers: 3 remain: 1 is blocked on upstream (Composer Stager), 2 are issues to add core dependenciespackage_manager+automatic_updatesalpha + betablockers: 15 remain (20 actually remain, but 5 of these areautomatic_updates-specific and hence postponed because we want to landpackage_managerfirst)Comment #137
wim leersComment #138
phenaproxima#3321905: Add colinodell/psr-test-logger to core's dev dependencies is in.
That leaves two remaining alpha blockers, both of which are blocked on a new tag of Composer Stager. 😎
Comment #139
phenaproximaI just merged #3340022: Tighten ComposerPluginsValidator: support only specified version constraint. Nice to get that beta blocker in!
Comment #140
phenaproxima#3277034: Unhandled Composer Stager exceptions leave the update process in an indeterminate state and #3319507: Add symlink support to Composer Stager 2.0, require that version, and simplify UX & tests accordingly are in.
That means we are down to our last remaining alpha blocker...and it's something that requires review from core committers. 😎
Comment #141
tedbowAdded #3348159: Fix remaining @todos in ComposerPluginsValidatorTest for beta target
Comment #142
wim leers#3345646: InstalledPackage::$path for metapackages should be NULL landed.
⇒
package_manageralphablockers: 1 remains: an issues to add a core dependencypackage_manager+automatic_updatesalpha + betablockers: 10 remain (15 actually remain, but 5 of these areautomatic_updates-specific and hence postponed because we want to landpackage_managerfirst)Comment #143
tedbowadded
Comment #144
tedbowChanging #3316617: Add a validator to check that PHP-TUF's Composer integration is present and configured correctly to an alpha requirement as per #3349368: [policy, no patch] How much of The Update Framework integration is needed for alpha-level review/commit of Package Manager?
I put a comment on #3316617-29: Add a validator to check that PHP-TUF's Composer integration is present and configured correctly that we need to confirm our assumptions on that issue with core policy
Comment #145
phenaproxima#3338346: Do not allow drupal/core-composer-scaffold to be used by packages other than core is in!
Comment #146
phenaproximaRemoving a duplicate item from the roadmap.
Comment #147
phenaproximaWhoops, removed the wrong thing.
Comment #148
phenaproxima#3348129: Autowire everything everywhere all at once … in *Test.php files is done too.
Comment #149
phenaproxima#3348122: Autowire everything everywhere all at once … in *.services.yml files landed.
Comment #150
tedbowadded #3351247: Harden our HTTPS requirement
Comment #151
phenaproxima#3347267: ComposerMinimumStabilityValidator doesn't check dev packages is in.
Comment #152
hestenetComment #153
tedbow#3352198: Rip out the update path
Comment #154
phenaproxima#3352198: Rip out the update path is in.
Comment #155
phenaproxima#3337667: Allow JsonProcessOutputCallback and other Composer runner callbacks to gracefully handle deprecated command options is done! 🎉
Comment #156
phenaproxima#3348162: Ensure all remaining @todos have a link to an open issue is in too! Yeah!!!
Comment #157
phenaproximaThe monumental #3326486: Rename Stage to StageBase to clarify its relationship to its subclasses, and add "Stage" suffix to the Updater classes landed!
Comment #158
phenaproxima#3348159: Fix remaining @todos in ComposerPluginsValidatorTest is done.
Comment #159
phenaproximaRemoving #3338666: Add functional test that proves there is reasonable UX whenever a stage event subscriber has an exception and adding #3354099: Add functional test that proves there is reasonable UX whenever Composer Stager operations have a hard failure in its place.
Comment #160
phenaproximaHey, look at that: alpha-blocking security-related #3351247: Harden our HTTPS requirement is in! 🎉
Comment #161
wim leersNew alpha-blocking security-related issue: #3356804: Flag a warning during status check if the OpenSSL extension is not enabled — related to #3351247: Harden our HTTPS requirement that landed previously.
Comment #162
phenaproxima#3356804: Flag a warning during status check if the OpenSSL extension is not enabled is in.
Comment #163
tedbow#3357578: str_starts_with($path, '/') does not correctly detect absolute paths on Windows
Comment #164
tedbow#3357657: ComposerValidator's hook_help() integration is imprecise and incomplete
#3354701: Ensure exceptions thrown by event subscribers are logged
#3355628: Package Manager should keep an audit log of changes it applied to the active codebase
Comment #165
phenaproxima#3357578: str_starts_with($path, '/') does not correctly detect absolute paths on Windows and #3342817: Decide which classes should be internal and/or final — delete ExcludedPathsTrait, make CollectPathsToExcludeEvent richer are in!
Comment #166
phenaproxima#3316617: Add a validator to check that PHP-TUF's Composer integration is present and configured correctly is done too.
Comment #167
tedbowComment #168
tedbowComment #169
tedbowadded #3346644: If an error occurs during an attended process, delete the stage on behalf of the user
Comment #170
tedbowCompleted #3360763: Switch failure marker file from *.json to *.yml to prevent it from being readable from the web
Comment #171
wim leersThis roadmap has not been updated in almost a month.
#3284443: Enable unattended updates landed, and so did #3354099: Add functional test that proves there is reasonable UX whenever Composer Stager operations have a hard failure and #3357657: ComposerValidator's hook_help() integration is imprecise and incomplete. #3345222: Optimize Composer calls in FixtureManipulator was closed as was #3338667: Add build test to test cweagans/composer-patches end-to-end.
AFAICT missing:
AFAICT obsolete:
Comment #172
effulgentsia commentedMoved #3284443: Enable unattended updates to completed.
Comment #173
effulgentsia commentedAdded a nice green checkmark to the Core Alpha Experimental blockers for Automatic Updates section :)
Comment #174
effulgentsia commentedRemoved the green checkmark from the Security section of package manager alpha blockers, since there's an open issue in that section.
Comment #175
effulgentsia commentedAdded some more core and infrastructure issues to the package manager alpha blockers list.
Comment #176
effulgentsia commentedMoved the following to Completed:
Removed the following, but did not move to Completed, as they were closed without fixing.
Comment #177
effulgentsia commentedAdded:
For the two possibly obsolete issues mentioned in #171, I added notes by them that they might be obsoleted by #3357969: For web server dependent unattended updates run the entire life cycle in a separate process that will not be affected by hosting time limits, but I didn't remove them from the list in case #3357969: For web server dependent unattended updates run the entire life cycle in a separate process that will not be affected by hosting time limits doesn't work out for whatever reason (though I think it will work out).
Comment #178
effulgentsia commentedI think all points from #171 were resolved, so removing the assignment to @tedbow that that comment added. @tedbow: please feel free to reassign to yourself if there's something else you want to update here.
Comment #179
effulgentsia commentedComment #180
effulgentsia commentedAdded:
Issues tagged core-mvp that aren't in the issue summary. Either they should be added to the issue summary or their core-mvp tag should be removed:
Comment #181
effulgentsia commentedAdded #3364565: [policy, no patch] Make PHP's OpenSSL extension a requirement for installing and using Package Manager (and therefore, Automatic Updates and Project Browser) and #3351190: [policy, no patch] Should Package Manager require Composer HTTPS? as alpha-blocking policy questions in the core queue.
Comment #182
effulgentsia commentedAdded https://github.com/php-tuf/composer-stager/issues/68 to the testing section of the alpha blocker list. I think it's important for us to know the approximate time it takes to execute the full set of preconditions and make a decision on whether that's acceptable or needs optimization or refactoring. If full automation turns out to be too large a task, we can discuss alternate ideas for how to satisfy the alpha-blocking concern but let's see how that issue progresses first.
Comment #183
tedbowComment #184
phenaproxima#3368808: Override Composer Stager's TranslatableFactory to return Drupal's TranslatableMarkup is in; our final translatability blocker!
Comment #185
tedbow#3377458: Remove work arounds for 10.0.x support. This is should a small issue we can do at anytime but would make use not compatible with 10.0.x. Being compatible with 10.0.x makes us be able to do minor updates in the contrib module
Comment #186
effulgentsia commentedMoved these to Done:
Removed these, since they were closed as outdated:
Comment #187
effulgentsia commentedRemoved all of the alpha-blocking categories with no remaining issues in them, and replaced them with a "Miscellaneous" category, for easier scanning.
Comment #188
effulgentsia commentedMinor formatting tweaks.
Comment #189
effulgentsia commentedRemoving the "contrib-only" tag. Not sure what its intended meaning was earlier in this issue's history, but at this point, this issue is all about tracking what's needed to get Automatic Updates into core.
Comment #190
effulgentsia commentedRemoved #3318964: automated_cron should not run cron when visiting update.php as obsoleted by #3357969: For web server dependent unattended updates run the entire life cycle in a separate process that will not be affected by hosting time limits.
Comment #191
effulgentsia commentedReplaced #3351190: [policy, no patch] Should Package Manager require Composer HTTPS? with its child issue #3385409: [policy, no patch] Disallow using Package Manager (and therefore Automatic Updates and Project Browser) when Composer's disable-tls setting is true.
Comment #192
effulgentsia commentedAdded #3385644: [policy, no patch] Consider whether to keep Package Manager and Automatic Updates in a separate repo/package than core in order to facilitate releasing updates to the updater as another alpha-blocking policy question.
Comment #193
tedbowfixed #3319679: Assert known preconditions for test runs and fail early if unmet
Comment #194
tedbowadded #3352216: Securely sign Drupal core packages, even though they are hosted on GitHub/packagist directly
Comment #195
traviscarden commentedComment #196
tedbowComment #197
xjmComment #198
tedbowMade it clear we are blocked on #3394754: [policy, no patch] Use Update XML in Package manager to determine release support status for our path to core
Comment #199
tedbowAdding #3349368: [policy, no patch] How much of The Update Framework integration is needed for alpha-level review/commit of Package Manager? to our roadmap because this issue to our roadmap because even though I assume this has been decided the issue has not actually been closed, so it would be good to get clarity
Comment #200
tedbowComment #201
tedbowComment #202
tedbowCompleted #3341406: Document when PostApplyEvent should be used instead of hook_update_n() or post update
Comment #203
tedbowComment #204
tedbowFixed #3354701: Ensure exceptions thrown by event subscribers are logged, #3311472: Only show RC pre-releases of core in the form
Comment #205
tedbowRemoving #3337049: Assert no errors after creating the test project in ModuleUpdateTest. It is still open but now only affects
automatic_updates_extensionsComment #206
tedbowFixed #3364565: [policy, no patch] Make PHP's OpenSSL extension a requirement for installing and using Package Manager (and therefore, Automatic Updates and Project Browser) and added newly created #3400146: Require the OpenSSL extension
Comment #207
tedbowAdded #3404429: Add getType to StageBase to allow subclasses to be internal
Comment #208
lauriiiMoving completed issues to the completed section.
Comment #209
lauriiiComment #210
lauriiiComment #211
lauriiiComment #212
tedbowFinished #3322917: Create a test (or tests) to prove Package Manager works with submodules as implemented by packages.drupal.org
Comment #213
tedbowComment #214
tedbowComment #215
tedbowUpdating "Core Merge request planning"
Comment #216
gábor hojtsyIs this roadmap still current or is there a better one?
Comment #217
tedbow@Gábor Hojtsy it is not current but this is the only one. I need to update it
Comment #218
catchThis should be in the core queue, and it could really use an update.
I opened #3474292: Package Manager should disallow cweagans/composer-patches by default which should be either beta or stable blocking, added it to a new 'beta blockers' heading for now.
Comment #219
catchComment #220
catchIs #3392196: Exceptions in batch no longer are shown on the page when Javascript is disabled still blocking? It should have been fixed since #3396559: Only set content-length header in specific situations but no updates on there or here since.
Comment #221
catch@lauriii mentioned that it can be tricky to keep an issue summary up to date with a lot of issues to track and suggested a spreadsheet. I personally find d.o issues in spreadsheets hard to track because you can't immediately see the issue status (or maybe you can if you integrate the spreadsheet cells with d.o but that can be flaky).
To try to compromise I made 'package manager alpha blocker' and 'package manager beta blocker' tags, and then tagged the issues that are already in the issue summary or other ones I could think of. If the tags are inaccurate, please fix them and say why on the issue, just trying to collate things and get a better idea of what is actually left.
https://www.drupal.org/project/issues/search?issue_tags=package%20manage...
https://www.drupal.org/project/issues/search?issue_tags=package%20manage...
Comment #222
catchComment #223
quietone commentedAdded an item to the alpha stage to get a Usability review. It is not a block put it is a process that should start asap so we can avoid blockers later.
I also would like to know about the status of the other gates that are not mentioned in the issue summary, Accessibility, Documentation, Fronted and Performance.
If no one objects, can the long list of Completed be removed? I just find it distracting.
Comment #225
alexpottAfter discussion with @xjm, @catch, @longwave and @lauriii, we decided that in order to allow beta testing without the modules being hidden, we can use the dev/prod toggle as outlined in #1537198: Add a Production/Development toggle.
Comment #226
xjmThe list of completed issues in the IS makes this page very difficult to load and manage, so removing it from the IS. Sorry. :)
Comment #227
catchComment #228
catchComment #229
catchOpened #3483481: Hide and restrict package_manager (and update_manager) behind a dev/prod toggle so that they can be alpha stability in tagged releases.
I think that is blocking either beta, or 'alpha but in a tagged release' if I remember the Barcelona discussion correctly.
Added it to alpha blockers, which at the moment IMO means 'blocking package_manager being alpha in the 11.0.x branch'..
Comment #230
catchOpened #3485006: Figure out testing process for package_manager in core (from contrib), probably not a stable blocker as such but we need to know what happens and have some kind of mitigation if it's bad. This is especially going to be the case assuming Drupal CMS increases the usage of contrib automatic_updates from it's current c. 1,000 installs to a lot more than that.
Comment #231
quietone commentedComment #232
larowlanComment #233
catchI've moved package manager beta blockers to the top of the issue since that's the current focus.
All of the alpha blockers for package manager are done except for the finalization of the governance stuff, which needs tracking but not any actual changes to Drupal core or the tuf code.
Comment #234
catchComment #235
catch#3474876: Rename classes that reference a "stage" to be clearer and use the term "sandbox" instead is RTBC.
I left a proposal and also question on #3474292: Package Manager should disallow cweagans/composer-patches by default which could use review/help - the actual code changes in that issue should be very minimal.
Comment #236
catchMoving #3370270: [PP-1] Add php-tuf/composer-integration to core dependencies from the alpha to beta sections.
Comment #237
catchComment #238
catchComment #239
catch#3477553: [PP-1] Manually test TUF-enabled Composer projects is not a core issue as such, but it's blocking #3358504: Require PHP-TUF's Composer integration plugin, so adding it to the issue summary for visibility.
Comment #240
dwwWasn’t on the roadmap, directly, but #3483501: Rename update module back to Update Status so we can safely rename this issue to match the current naming plan. 😅
Comment #241
catchMoving alpha blockers down to the bottom and stable blockers to the top in an attempt to make the issue summary more scannable
Comment #242
catchDid some more moving around, leaving at needs issue summary update because this is just a start.
Comment #243
catchAdded #3463662: When it is installed, Package Manager should try to detect the paths of Composer and rsync to the 'to be categorized' list.
Comment #244
catchComment #245
quietone commented@catch, thanks for the issue summary updates! It really helps to see where this is at
Comment #246
quietone commentedAdding Governance issue to the stable blockers
Comment #247
phenaproximaMoved the PHP-TUF stuff and policy question about Packagist for package availability data to stable blockers.
Comment #248
catchAdding #3525345: Move some Package Manager validation into the pre-require and status check event listeners
Comment #249
quietone commentedAfter discussion with catch, the security review issue is moved to a stable blocker.
Comment #250
quietone commentedAdded #3335918: [Policy, no patch] Projects depending on composer plugins will have to update the additional_trusted_composer_plugins setting in package_manager.settings to the 'Not yet categorized'.
Comment #251
xjmAmending attribution.
Comment #256
catchMoving #3319030: Drupal Core Roadmap for Package Manager and Update Manager to a beta blocker, although it's about to go in, but people are struggling to test/use package_manager at all without it.
Also adding #3502653: Require re-authentication for certain admin actions as a beta blocker after discussion with the security team due to the above issue.
#3534109: Permanently maintain a sandbox directory in package_manager is similarly blocking further testing on shared hosting, so moving that to a beta blocker too, or if it's no good and we need to do something else, then we should rule it out before beta too.
I think the remaining stable and possibly-stable blocking issues could use a fresh round of triage given some recent changes.
Comment #257
phenaproxima11.2.0 sailed, so changing the tag here.
Comment #258
catchComment #259
quietone commentedComment #260
catchRemoving #3502653: Require re-authentication for certain admin actions as a beta blocker due to #3540215: Remove the ability to configure the path to Composer, but keeping it in 'to be categorised' because there's no 'nice to have' section here. It would be good if core user roles/permissions changes + project browser and automatic updates UIs were behind re-auth so that people can't escalate from XSS to installing devel_php module, but with no package_manager UI it's not fixable directly in that module.
Comment #261
catchAdding #3540215: Remove the ability to configure the path to Composer to beta blockers since it potentially requires a manual upgrade path for some sites as well as changes (removals from) config schema).
Comment #262
alexpottWe also need to do #3067979: Exclude test files from release packages to help with inode limit.
Comment #263
catchAdding #3067979: Exclude test files from release packages to stable blockers even though it's not a direct package_manager issue because it is one of the two issues that is probably preventing it being successfully used on shared hosting. That one is time-sensitive because the ideal time for it to land is in 12.0.0
Comment #264
catchComment #265
catchWe also need to track #3562054: Verify that update meets minimum stability as potentially beta/stable blocking because it may require API changes in package manager - fairly new issue but a very in your face fatal error in automatic updates.
Comment #267
gábor hojtsyRemove assignment as @tedbow has not been focused this for long. (Thanks for all his prior efforts!)
Comment #268
quietone commented