Updated contrib dependencies and applied the 'drupal/ai' security release. - #324
Conversation
…pstream conflict.
|
Warning Review limit reached
On-demand reviews are free for the next 14 days. After that, they cost $0.25 per reviewed file. Or wait 15 minutes for your next included review. View limit detailsLimit details: You’ve used the included review currently available. Your 95 included PR review attempts over the past 7 days set your current allowance at 1 review per hour. Review configuration: ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Team Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (1)
Comment |
| "drupal/menu_trail_by_path": "^2.2", | ||
| "drupal/metatag": "^2.2", | ||
| "drupal/moderated_content_bulk_publish": "^2.0", | ||
| "drupal/moderated_content_bulk_publish": "^2.0.53", |
There was a problem hiding this comment.
All five constraint changes in this file are mechanical: config.bump-after-update is enabled, so composer update tightened each direct dependency's floor to the version it just installed. None of them is a deliberate policy change, and no dependency was added or removed. composer validate --strict passes and composer normalize reports the file already normalized.
Routine, per line:
drupal/moderated_content_bulk_publish^2.0to^2.0.53(this line). Patch release; the constraint gains a floor it did not previously state.drush/drush^13.7.6to^13.7.7- fixes inconsistentselfversusstaticuse inAutowireTrait, Issue #6470 Fixes inconsistent use of self vs static in AutowireTrait drush-ops/drush#6476. Nothing inweb/modules/customsubclasses it.drevops/behat-steps^3.14.1to^3.14.2- expands fixture path resolution for file and image fields in subdirectories, [#760] Expanded fixture paths for file and image fields in subdirectories. behat-steps#764. No step definitions were renamed or removed, so the 41 feature files undertests/behat/featuresneed no migration;ahoy lintandahoy test-unitpass unchanged.phpstan/phpstan^2.2.10to^2.2.13- three patch releases.ahoy lint-bereports[OK] No errorsagainstphpstan.neon, so no new findings on this codebase.
The one that carries a real decision:
palantirnet/drupal-rector^1.1.2to^1.1.3. Its only functional change is adding"conflict": {"rector/rector": ">=2.6.2"}(fix: conflict with rector/rector >=2.6.2 (#420) palantirnet/drupal-rector#421), because rector 2.6.2 removedPHPUnitSetListwhile theDrupal8/Drupal9/Drupal10set lists still reference it (rector 2.6.2+ breaks Drupal*SetList because PHPUnitSetList was removed palantirnet/drupal-rector#420). Composer therefore resolvesrector/rectordown to 2.6.1 in the lock. That downgrade is not reachable-defect-driven here: this site is on core 11.4, andDrupalSetProvideronly loads the sets whose version core satisfies, so only the 11.x sets load and none of those referencedPHPUnitSetList. What it does change is where the ceiling lives - this project had been holding rector at 2.6.2 incomposer.lockalone, and that hold is now declared upstream by the constraint instead.Rector\Set\ValueObject\ComposerTriggeredSetandRector\Set\Contract\SetProviderInterfaceboth still exist in 2.6.1, sorector.phpresolves unchanged and[OK] Rector is done!locally.
Not visible in this file: the security fix in this PR is drupal/ai 1.4.7 to 1.4.8, which closes SA-CONTRIB-2026-119 (XSS, CVE-2026-84911) and SA-CONTRIB-2026-120 (access bypass, CVE-2026-84912). drupal/ai is transitive - it arrives through drupal/ai_image_alt_text, drupal/ai_provider_openai and drupal/gemini_provider - so it has no constraint line here and moves only in composer.lock. composer audit reported both advisories against the pre-update lock and reports none against this one.
|
Code coverage (threshold: 80%) Per-class coverage |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## develop #324 +/- ##
========================================
Coverage 86.56% 86.56%
========================================
Files 28 28
Lines 655 655
========================================
Hits 567 567
Misses 88 88 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Summary
drupal/aimoves from 1.4.7 to 1.4.8, which is a security release closing SA-CONTRIB-2026-119 (cross-site scripting, CVE-2026-84911) and SA-CONTRIB-2026-120 (access bypass, CVE-2026-84912). The module is a transitive dependency ofdrupal/ai_image_alt_text,drupal/ai_provider_openaianddrupal/gemini_provider, so it appears incomposer.lockonly and has no constraint line incomposer.json.Both advisories declare affected versions
<1.3.13 || >=1.4.0 <1.4.8, so the installed 1.4.7 was inside the affected range from the day the advisories were published on 2026-09-02.composer auditagainst the pre-update lock reported both; against the updated lock it reports none.After merge
composer auditis clean,drupal/corestays on 11.4.6 so there are no database updates and no configuration to import, and the remaining eight package moves are build and test tooling that never runs on the live site. This PR changes no application code, no configuration and no templates.Before / After
Checklist before requesting a review
[#123] Verb in past tense.#123added to descriptionChangedsectionChanged
drupal/ai1.4.7 to 1.4.8 (security). Closes SA-CONTRIB-2026-119 (cross-site scripting, CVE-2026-84911) and SA-CONTRIB-2026-120 (access bypass, CVE-2026-84912), both rated moderately critical and both reported on 2026-09-02. Lock-only change, sincedrupal/aireaches this site throughdrupal/ai_image_alt_text,drupal/ai_provider_openaianddrupal/gemini_provider.rector/rector2.6.2 to 2.6.1 (downgrade).palantirnet/drupal-rector1.1.3 adds"conflict": {"rector/rector": ">=2.6.2"}(palantirnet/drupal-rector#421), because rector 2.6.2 removedPHPUnitSetListand theDrupal8/Drupal9/Drupal10set lists reference it (palantirnet/drupal-rector#420). Composer therefore resolves the engine down to 2.6.1. This site runs core 11.4, soDrupalSetProvideronly loads the 11.x sets, and those never referencedPHPUnitSetList; the downgrade follows the dependency constraint rather than fixing a defect that was reachable here. It does replace the lock-only hold this project was carrying with an upstream-declared ceiling.Rector\Set\ValueObject\ComposerTriggeredSetandRector\Set\Contract\SetProviderInterfaceboth exist in 2.6.1, sorector.phpstill resolves.palantirnet/drupal-rector1.1.2 to 1.1.3. Carries the conflict declaration above; the project'spatches/3540378-rector-skip-webform-cards-tests.patchstill applies cleanly against it.drevops/behat-steps3.14.1 to 3.14.2. Expands fixture path resolution for file and image fields held in subdirectories (drevops/behat-steps#764). No step definitions were renamed or removed, so no.featuremigration is required.drush/drush13.7.6 to 13.7.7. Fixes inconsistentselfversusstaticuse inAutowireTrait(drush-ops/drush#6476).drupal/moderated_content_bulk_publish2.0.52 to 2.0.53. Routine patch release; constraint bumped from^2.0to^2.0.53bybump-after-update.Static analysis and logging.
phpstan/phpstan2.2.10 to 2.2.13,phpstan/phpdoc-parser2.3.3 to 2.3.5,monolog/monolog3.10.0 to 3.11.0.composer.jsonconstraint bumps.config.bump-after-updateis enabled, so the five direct-dependency constraints tightened to the newly installed versions.composer validate --strictpasses andcomposer normalizereports the file already normalized.No
config.audit.ignorereconciliation. The key is absent fromcomposer.json, so there were no suppressed advisories to prune.Reviewer notes
The one thing worth watching in CI is lint.
rector/rectormoved andphpstan/phpstangained three patch releases, so either may surface findings the previous combination did not. Nothing in this diff changes application code, so any such finding is a tooling-visibility change rather than a regression introduced here.Post-merge there is nothing to run by hand: no database updates, no configuration import, no cache rebuild beyond the normal deployment steps.
Screenshots
N/A