When uninstalling devel as part of the production check, the devel_generate module can still be enabled as it does not require devel.
If devel_generate is still enabled, this route
$this->routeName = 'devel.admin_settings';
in
Drupal\prod_check\Plugin\ProdCheck\Modules\DevelGenerate
is inaccessible once devel has been uninstalled and so when accessing the production check path
"/admin/reports/prod-check"
the following
"Symfony\Component\Routing\Exception\RouteNotFoundException devel.admin_settings does not exist" exception is thrown.
Issue fork prod_check-2921248
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 #2
AnybodyHappy to review patches, seems to be a bug indeed!
Comment #3
AnybodyOr has this already been fixed in latest versions?
Comment #4
Grevil CreditAttribution: Grevil as a volunteer and at DROWL.de commentedComment #5
Grevil CreditAttribution: Grevil as a volunteer and at DROWL.de commentedYep, this is still an issue!
Comment #6
Grevil CreditAttribution: Grevil as a volunteer and at DROWL.de commentedOk, I tracked down the issue.
Inside "/src/Plugin/ProdCheck/Modules", different dev modules are tracked, which should be disabled for production use. Inside each class, an "init" method will initiate the prod_check entry, for the specific module. Since "devel_generate" doesn't have its own static route, the devel route was instead provided, leading to this error, as devel was uninstalled.
I am fairly unsure about these links in general, since they usually point to some random form of the referenced module. In my opinion, they should instead:
@Anybody, any thoughts on this?
Comment #7
Grevil CreditAttribution: Grevil as a volunteer and at DROWL.de commentedHave a look at the MR, this approach would fix the problem for now.
Note, that I couldn't properly inject the service and my linter goes crazy with all the PHPCS issues inside this module, so it is hard to determine what the problem is.
Please review!
Comment #9
AnybodyRe #6: Sounds like strange and error-prune URL guessing with unclear benefit?
If yes,
is the only correct answer. Remove the link and just output the name.
Comment #10
Grevil CreditAttribution: Grevil as a volunteer and at DROWL.de commented@Anybody, well, it is not quite guessing. The route is simply hard coded inside the class, see this example:
Comment #11
AnybodyIf the benefit from this is low, it causes trouble and time to fix, remove what's not worth the time...
Comment #12
Grevil CreditAttribution: Grevil as a volunteer and at DROWL.de commented@Anybody, it won't cause trouble any more, with the patch applied. Let's commit this! It might not be perfect, but putting more time in this and refactoring the link logic isn't worth it and removing the link feature is also not good, as several classes will have an unused route parameter.
Comment #13
Anybody@Grevil: Then please add @todo's in all dirty parts.
Comment #14
AnybodyComment #15
AnybodyThank you @Grevil! This should be refactored in total. Not worth it now, thanks for the fix and the comments!
Comment #16
Grevil CreditAttribution: Grevil as a volunteer and at DROWL.de commentedGlad I could help.