Needs review
Project:
Drupal.org security advisory coverage applications
Component:
module
Priority:
Normal
Category:
Task
Assigned:
Unassigned
Reporter:
Created:
8 Sep 2026 at 13:50 UTC
Updated:
15 Sep 2026 at 14:00 UTC
Jump to comment: Most recent
Comments
Comment #2
vishal.kadamComment #3
avpadernoThank you for applying!
Before giving links helpful to understand how the review process works, what to expect from a review, and what to do to avoid a review takes more time than needed, I would like to thank all the reviewers for the work they do.
These applications are volunters-driven, which also means it is not possible to predict when an application will be marked fixed and the applicant will get the permission to opt projects into security advisory policy. While we aim to make an application as quick as possible, it is also important for us that more people review the project used for an application. In this way, we make sure applications do not miss some important points that should be instead reported.
Applications are not meant to be complete debugging sessions that eliminate every existing bug, though. I apologize if sometimes applications seem to go into too-detailed reviews.
Please read Review process for security advisory coverage: What to expect for more details and Security advisory coverage application checklist to understand what reviewers look for. Tips for ensuring a smooth review gives some hints for a smoother review.
The important notes are the following.
Keep in mind that once the project is opted into security advisory coverage, only Security Team members may change coverage.
To the reviewers
Please read How to review security advisory coverage applications, Application workflow, What to cover in an application review, and Tools to use for reviews.
The important notes are the following.
For new reviewers, I would also suggest to first read In which way the issue queue for coverage applications is different from other project queues.
Comment #4
avpadernoGitLab CI jobs should be enabled. In that way, most of what is reported by reviewers would be fixed before starting reviews.
Comment #5
seyfettinkahveci commentedI fixed all gitlab ci issues. Thanks
Comment #6
vishal.kadamFILE: oorly.info.yml
package: 'Custom'Custom is not a package value used for projects hosted on drupal.org. That is not a mandatory value, and it can be omitted.
Comment #7
seyfettinkahveci commentedhi,
The package value has been removed from the oorly.info.yml file.
Kind regards
Comment #8
avpadernophpcs.xml.dist
Since the project is using a config file for PHP_CodeSniffer, that file should be tailored for the project. The project does not have any .inc, .profile, nor .theme file, so those extensions can be removed from
<arg name="extensions">. Furthermore, PHP_CodeSniffer no longer check for plain text files, so css, info, txt, md, and yml can be removed as well.<file>.</file>is not necessary for PHP_CodeSniffer to work. In fact, the default config file GitLab CI would use on git.drupalcode.org does not have that line.src/Form/OorlySettingsForm.php
The long description is not necessary. It seems a explanation an AI would produce.
Is the code produced with the assistance of an AI?
The translatable string is an example of comma-split sentence: A correct sentence uses either a period after the first sentence, or a semicolon.
There is no need to use a validator handler to check the submitted value with a regular expression: A textfield form element can use
#pattern. Since a space is not allowed by the regular expression, there is no need to strip the spaces before saving the value in the config file.src/Hook/OorlyHooks.php
That seems another explanation an AI would add.
That long description holds true for every hook class, so it does not need to be added. A comment is for what is specific for the used code, which would eventually remind the maintainers why the code needs to be written the way it is written.
For that code, I am going to just ask a question; no change is required. Is that comment really necessary?
tests/src/Kernel/OorlySettingsFormTest.php
That class is testing what Drupal core does. Tests for a project should test what that project does, not what Drupal core does.
Comment #9
seyfettinkahveci commentedphpcs.xml.dist
-Fixed. Removed ., and reduced the extensions to php,module,install,test. Since plain text files are no longer sniffed, the gitlab_templates_version.txt exclude-pattern was pointless too, so that is gone as well.
OorlySettingsForm.php
-Yes, the module was written with AI assistance; I reviewed and adapted the result, but clearly not closely enough on the comments. I have removed the long class description and kept only what the class is.
- The comma splice is fixed: "No site code entered; the script is not added."
OorlyHooks.php
- Removed. You are right that it describes how class based hooks work in general, not anything specific to this module, so it belongs in the documentation, not here. Same text was repeated in oorly.module; that one is shortened too.
- About the cache tag comment: the "why" is specific to this code — the tag is deliberately added before the enabled check, and someone could otherwise "clean up" by moving it below the early return. I kept it, but shortened it to that single reason. Happy to drop it entirely if you prefer.
- tests/src/Kernel/OorlySettingsFormTest.php
Removed. It was asserting that #config_target saves values, which is core's job. The remaining tests cover what the module itself does: the script URL/tag built from the site code, and the attachments and cache tags added by the page attachments hook.
Comment #10
avpadernoThe cache tag is added before the 'enabled' check seems pretty obvious. Nobody would rewrite the code to the following one.
Every line after a
returnwould not run.I would rather say Cache tags are added to invalidate the widget markup when the widget is turned back on.
That still does not hold true, since no tag is invalidated when the widget is disabled or enabled. The project should add a cache tag, which is then explicitly invalidated when the widget is turned off or on. (There is no need to use a custom cache tag, since Drupal core should have a cache tag that is invalidated when a configuration object is changed.)
As per Policy on the use of AI when contributing to Drupal, using an AI tool to generate code must be disclosed. In the case of a project, that must be done in the project page.
Comment #11
avpadernoA list of cache tags used by Drupal core is listed in Cache tags.
Comment #12
seyfettinkahveci commentedThank you for the review.
I changed the comment as suggested:
// Cache tags are added to invalidate the widget markup when the widget is
// turned off or on. Drupal core invalidates the configuration object's
// cache tag when the settings are saved.
About invalidation: the tag added is `config:oorly.settings`, which is returned by `$config->getCacheTags()`. It is the core cache tag listed on the Cache tags page for configuration objects. The settings form extends `ConfigFormBase`, so submitting it calls `Config::save()`, and core invalidates that tag there. Turning the widget off or on therefore already invalidates the cached pages, without a custom tag or explicit invalidation code.
As for the AI policy: the project page now says that parts of the module were written with the help of AI tools and reviewed by the maintainer. The same note has been added to the README.
The changes are in the 1.0.6 tag.