Needs work
Project:
Drupal core
Version:
main
Component:
system.module
Priority:
Normal
Category:
Task
Assigned:
Unassigned
Reporter:
Created:
6 Jul 2026 at 05:57 UTC
Updated:
2 Sep 2026 at 10:23 UTC
Jump to comment: Most recent, Most recent file
Comments
Comment #3
mstrelan commentedUsed an LLM to help here. Have reviewed and take responsibility for the changes.
It's very straightforward, only two things to call out:
system.modules_listis the only one with_title_contextsystem.site_maintenance_modehas a compound permission (administer site configuration+administer software updates)Comment #4
mstrelan commentedAdded two more:
system.theme_settingsandsystem.theme_settings_themeshare the same class, with service notation for the title callbacksystem.prepare_modules_entity_uninstallis the most complex but shouldn't be an issueComment #5
akshay kashyap commentedI tested this MR locally on a Drupal 11.3.x installation.
After rebuilding caches, I verified that all of the converted form routes continue to be discovered correctly through PHP #[Route] attributes.
I tested the standard configuration forms, including Cron, Logging, Development settings, File system, Image toolkit, Regional settings and Maintenance mode. I also verified the Extend page, Theme settings, theme-specific settings, Module Uninstall and the entity uninstall route.
I specifically checked the edge cases mentioned in the latest updates:
system.modules_liststill works correctly with_title_context.system.site_maintenance_modecontinues to respect the compound permission requirements.system.theme_settingsandsystem.theme_settings_themeload correctly, including the service-based title callback.system.prepare_modules_entity_uninstallstill honours the custom access check and dynamic title callback.I also confirmed that the corresponding route definitions have been removed from system.routing.yml and are now discovered through PHP attributes without changing the existing behaviour.
The only review comment I noticed is the suggestion to use self::class instead of the fully qualified class name for the callback references. That looks like a reasonable cleanup, but I don't see it affecting the functionality of the MR.
Other than that, I didn't encounter any regressions during testing.
RTBC from my side.
Comment #6
longwaveAdded a question about the title_context one. Perhaps also we should detect this in TitleResolver with an assertion.
@mstrelan also interested if you have any input into #3607968: Promote defaults._title to top level in route attributes
Comment #7
mstrelan commentedAddressed feedback in #6, and converted callbacks in
PrepareModulesEntityUninstallFormto useself::classComment #8
needs-review-queue-bot commentedThe Needs Review Queue Bot tested this issue. It no longer applies to Drupal core. Therefore, this issue status is now "Needs work".
This does not mean that the patch necessarily needs to be re-rolled or the MR rebased. Read the Issue Summary, the issue tags and the latest discussion here to determine what needs to be done.
Consult the Drupal Contributor Guide to find step-by-step guides for working with issues.