Skip to content

Updated core and dependencies.#133

Merged
AlexSkrypnyk merged 3 commits intodevelopfrom
feature/update-deps-feb26
Feb 5, 2026
Merged

Updated core and dependencies.#133
AlexSkrypnyk merged 3 commits intodevelopfrom
feature/update-deps-feb26

Conversation

@AlexSkrypnyk
Copy link
Member

@AlexSkrypnyk AlexSkrypnyk commented Feb 5, 2026

What changed

  • Drupal core was updated from 11.3.1 to 11.3.2, including corresponding core scaffolding and recommended dependency updates.
  • The underlying framework stack received broad Symfony patch-level updates across the 7.4.x series, improving stability and consistency.
  • Several contributed Drupal modules and developer tools received minor and patch updates to align with the updated core and framework.
  • Overall risk level is low, as changes are primarily patch and minor releases with no functional shifts.
  • No security vulnerability advisories found.

Key highlights

  • Drupal core moved to 11.3.2, keeping the site aligned with the latest maintenance release.
  • Symfony components were updated across multiple packages within the 7.4.x and 6.4.x lines.
  • HTTP and request handling layers received maintenance updates improving reliability and standards compliance.
  • Rendering and templating tooling saw incremental improvements through Twig-related updates.
  • Developer tooling and quality assurance packages were updated to newer patch and minor versions.

Testing focus

  • Verify that core site pages load correctly and no errors appear on initial page requests.
  • Confirm that forms can be submitted successfully and validation behaves as expected.
  • Test multilingual and translated content display for accuracy.
  • Check content rendering, layouts, and templates for visual regressions.
  • Validate that administrative pages and dashboards remain accessible and functional.
  • Ensure automated tests and development workflows continue to run without failures.

Overall impact

This update focuses on routine maintenance, keeping the platform current with the latest supported releases and improving long-term stability.

The overall risk level is low, as changes are limited to patch and minor updates with no expected behavioural changes for end users.

No functional regressions are expected for standard site features, provided routine regression testing is completed.

Changes

Summary by CodeRabbit

  • Chores

    • Updated project dependencies, including Drupal core (to 11.3.2), Drush, Symfony HTTP client, and several development tools (PHPStan, PHPUnit, Rector, composer-normalize, and others).
  • New Features

    • Added Gherkin code block language option to the rich text editor.
    • Added a media substitution configuration option for media/link integration.

@coderabbitai
Copy link

coderabbitai bot commented Feb 5, 2026

📝 Walkthrough

Walkthrough

Bumps multiple dependencies in composer.json, adds a Gherkin code-block language option to the CKEditor5 rich text editor, adds a media_substitution linkit setting to the rich text filter config, and adjusts a trait import in Behat FeatureContext.

Changes

Cohort / File(s) Summary
Dependency Updates
composer.json
Updated versions for Drupal core scaffold/recommended, drupal/diff, drush/drush, symfony/http-client, drevops/behat-steps, ergebnis/composer-normalize, phpstan/phpstan, phpunit/phpunit, rector/rector, and vincentlanglet/twig-cs-fixer. (require / require-dev changes; +11/-11 lines)
Editor Configuration
config/default/editor.editor.civictheme_rich_text.yml
Adds gherkin as a new CKEditor5 code block language option (placed after Diff). (+3/-0)
Filter Configuration
config/default/filter.format.civictheme_rich_text.yml
Adds media_substitution: metadata under linkit settings in the rich text filter config (new public config key). (+2/-1)
Tests / Behat
tests/behat/bootstrap/FeatureContext.php
Changed import namespace for MetatagTrait from DrevOps\BehatSteps\Drupal\MetatagTrait to DrevOps\BehatSteps\MetatagTrait (trait usage unchanged). (+1/-1)

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested labels

PR: Dependencies

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Updated core and dependencies.' directly aligns with the PR's primary objective of updating Drupal core (11.3.1 to 11.3.2) and numerous PHP/Drupal dependencies across multiple packages.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feature/update-deps-feb26

Comment @coderabbitai help to get the list of available commands and usage tips.

@AlexSkrypnyk AlexSkrypnyk changed the title Feature/update deps feb26 Updated core and dependencies. Feb 5, 2026
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@config/default/filter.format.civictheme_rich_text.yml`:
- Line 82: The <a> tag allowed attributes in
ckeditor5_sourceEditing.allowed_tags must include Linkit's metadata so links
with media_substitution: metadata keep their entity info; update the config
entry that defines allowed attributes for the <a> tag
(ckeditor5_sourceEditing.allowed_tags) to add data-entity-type,
data-entity-uuid, and data-entity-substitution (in addition to existing
hreflang, target, title) so Linkit can resolve entity links correctly.

weight: 0
settings:
title: true
media_substitution: metadata
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

# First, let's locate and examine the filter format config file
cat -n config/default/filter.format.civictheme_rich_text.yml | sed -n '70,90p'

Repository: drevops/website

Length of output: 612


🏁 Script executed:

# Now let's look at the editor config file for the allowed_tags setting
cat -n config/default/editor.editor.civictheme_rich_text.yml | grep -A 5 -B 5 "allowed_tags"

Repository: drevops/website

Length of output: 407


🏁 Script executed:

# Let's check the full structure around ckeditor5_sourceEditing in the editor config
cat -n config/default/editor.editor.civictheme_rich_text.yml | grep -A 10 -B 2 "ckeditor5_sourceEditing"

Repository: drevops/website

Length of output: 686


🏁 Script executed:

# Search for any Linkit-related configuration or documentation
find . -type f \( -name "*.yml" -o -name "*.yaml" -o -name "*.md" \) | xargs grep -l "Linkit\|media_substitution" | head -20

Repository: drevops/website

Length of output: 276


🏁 Script executed:

# Search for the <a> tag in the editor config file
grep -n "<a" config/default/editor.editor.civictheme_rich_text.yml

Repository: drevops/website

Length of output: 556


🏁 Script executed:

# Get full allowed_tags section
cat -n config/default/editor.editor.civictheme_rich_text.yml | sed -n '109,150p'

Repository: drevops/website

Length of output: 1997


🏁 Script executed:

# Let's check the Linkit profile configuration to understand media_substitution behavior
cat config/default/linkit.linkit_profile.civictheme.yml

Repository: drevops/website

Length of output: 1013


🌐 Web query:

Linkit Drupal media_substitution metadata data-entity-substitution

💡 Result:

In Drupal, Linkit stores “entity links” by adding attributes to the rendered <a> tag (or sometimes the embedded element), mainly:

  • data-entity-type="…" (e.g., node, media)
  • data-entity-uuid="…"
  • data-entity-substitution="…" (the substitution plugin ID that decides what URL gets output)

For media, data-entity-substitution is what people often mean by “media_substitution”: it controls whether the link resolves to the canonical media entity URL (often canonical) or the direct file URL (commonly media). Changing the matcher/substitution later typically won’t update existing links, because the chosen substitution is already stored in each link’s data-entity-substitution and is not re-evaluated at render time. [4]

If you’re seeing Linkit “metadata” disappear or stop working, common causes are:

  1. Your text format is stripping the attribute
    If filter_html (Allowed HTML) does not allow data-entity-substitution, it can be removed on save, breaking Linkit’s ability to re-resolve the entity link. [2]

  2. Linking a CKEditor Media item (drupal-media) is special
    When you wrap a <drupal-media …> element with a link in CKEditor, Linkit may not be able to preserve/attach the needed entity attributes the way you expect. There’s an open/long-running problem where linking around Media Library items can omit data-entity-* metadata, and in CKEditor 5 the longer-term direction is that link metadata may need to be stored on the media element itself (core work), not by “wrapping” it. [1]

If you tell me your Drupal version (9/10/11), editor (CKEditor 4 vs 5), and show the exact HTML before/after save, I can point to the precise fix (text format allowed-attributes vs a known Linkit/CKEditor media limitation).


🏁 Script executed:

# Let's search for any documentation or comments in the repo about media_substitution
grep -r "media_substitution" . --include="*.md" --include="*.txt" --include="*.yml"

Repository: drevops/website

Length of output: 149


🏁 Script executed:

# Check if there are any comments or README files that explain the Linkit setup
find . -type f \( -name "README*" -o -name "*.md" \) | xargs grep -l "Linkit\|media_substitution" 2>/dev/null || echo "No matches found"

Repository: drevops/website

Length of output: 75


Expand <a> tag allowed attributes to preserve Linkit's entity link metadata.

With media_substitution: metadata, Linkit adds data-entity-type, data-entity-uuid, and data-entity-substitution to links. The current ckeditor5_sourceEditing.allowed_tags allows only <a hreflang target title> and will strip these attributes when source editing is toggled, breaking Linkit's ability to resolve the links.

Suggested update in config/default/editor.editor.civictheme_rich_text.yml
-        - '<a hreflang target title>'
+        - '<a hreflang target title data-entity-type data-entity-uuid data-entity-substitution>'
🤖 Prompt for AI Agents
In `@config/default/filter.format.civictheme_rich_text.yml` at line 82, The <a>
tag allowed attributes in ckeditor5_sourceEditing.allowed_tags must include
Linkit's metadata so links with media_substitution: metadata keep their entity
info; update the config entry that defines allowed attributes for the <a> tag
(ckeditor5_sourceEditing.allowed_tags) to add data-entity-type,
data-entity-uuid, and data-entity-substitution (in addition to existing
hreflang, target, title) so Linkit can resolve entity links correctly.

```
Changelogs summary:

 - drupal/core-composer-scaffold updated from 11.3.1 to 11.3.2 patch
   See changes: drupal/core-composer-scaffold@11.3.1...11.3.2
   Release notes: https://github.com/drupal/core-composer-scaffold/releases/tag/11.3.2

 - ergebnis/composer-normalize updated from 2.48.2 to 2.49.0 minor
   See changes: ergebnis/composer-normalize@2.48.2...2.49.0
   Release notes: https://github.com/ergebnis/composer-normalize/releases/tag/2.49.0

 - symfony/string updated from v7.4.0 to v7.4.4 patch
   See changes: symfony/string@v7.4.0...v7.4.4
   Release notes: https://github.com/symfony/string/releases/tag/v7.4.4

 - symfony/console updated from v7.4.3 to v7.4.4 patch
   See changes: symfony/console@v7.4.3...v7.4.4
   Release notes: https://github.com/symfony/console/releases/tag/v7.4.4

 - symfony/finder updated from v7.4.3 to v7.4.5 patch
   See changes: symfony/finder@v7.4.3...v7.4.5
   Release notes: https://github.com/symfony/finder/releases/tag/v7.4.5

 - doctrine/event-manager updated from 2.0.1 to 2.1.1 minor
   See changes: doctrine/event-manager@2.0.1...2.1.1
   Release notes: https://github.com/doctrine/event-manager/releases/tag/2.1.1

 - symfony/translation updated from v7.4.3 to v7.4.4 patch
   See changes: symfony/translation@v7.4.3...v7.4.4
   Release notes: https://github.com/symfony/translation/releases/tag/v7.4.4

 - symfony/event-dispatcher updated from v7.4.0 to v7.4.4 patch
   See changes: symfony/event-dispatcher@v7.4.0...v7.4.4
   Release notes: https://github.com/symfony/event-dispatcher/releases/tag/v7.4.4

 - symfony/dependency-injection updated from v7.4.3 to v7.4.5 patch
   See changes: symfony/dependency-injection@v7.4.3...v7.4.5
   Release notes: https://github.com/symfony/dependency-injection/releases/tag/v7.4.5

 - symfony/config updated from v7.4.3 to v7.4.4 patch
   See changes: symfony/config@v7.4.3...v7.4.4
   Release notes: https://github.com/symfony/config/releases/tag/v7.4.4

 - symfony/http-client updated from v6.4.31 to v6.4.33 patch
   See changes: symfony/http-client@v6.4.31...v6.4.33
   Release notes: https://github.com/symfony/http-client/releases/tag/v6.4.33

 - symfony/process updated from v7.4.3 to v7.4.5 patch
   See changes: symfony/process@v7.4.3...v7.4.5
   Release notes: https://github.com/symfony/process/releases/tag/v7.4.5

 - symfony/validator updated from v7.4.3 to v7.4.5 patch
   See changes: symfony/validator@v7.4.3...v7.4.5
   Release notes: https://github.com/symfony/validator/releases/tag/v7.4.5

 - symfony/serializer updated from v7.4.3 to v7.4.5 patch
   See changes: symfony/serializer@v7.4.3...v7.4.5
   Release notes: https://github.com/symfony/serializer/releases/tag/v7.4.5

 - symfony/routing updated from v7.4.3 to v7.4.4 patch
   See changes: symfony/routing@v7.4.3...v7.4.4
   Release notes: https://github.com/symfony/routing/releases/tag/v7.4.4

 - symfony/http-foundation updated from v7.4.3 to v7.4.5 patch
   See changes: symfony/http-foundation@v7.4.3...v7.4.5
   Release notes: https://github.com/symfony/http-foundation/releases/tag/v7.4.5

 - symfony/psr-http-message-bridge updated from v7.4.0 to v7.4.4 patch
   See changes: symfony/psr-http-message-bridge@v7.4.0...v7.4.4
   Release notes: https://github.com/symfony/psr-http-message-bridge/releases/tag/v7.4.4

 - symfony/mime updated from v7.4.0 to v7.4.5 patch
   See changes: symfony/mime@v7.4.0...v7.4.5
   Release notes: https://github.com/symfony/mime/releases/tag/v7.4.5

 - symfony/mailer updated from v7.4.3 to v7.4.4 patch
   See changes: symfony/mailer@v7.4.3...v7.4.4
   Release notes: https://github.com/symfony/mailer/releases/tag/v7.4.4

 - symfony/var-dumper updated from v7.4.3 to v7.4.4 patch
   See changes: symfony/var-dumper@v7.4.3...v7.4.4
   Release notes: https://github.com/symfony/var-dumper/releases/tag/v7.4.4

 - symfony/error-handler updated from v7.4.0 to v7.4.4 patch
   See changes: symfony/error-handler@v7.4.0...v7.4.4
   Release notes: https://github.com/symfony/error-handler/releases/tag/v7.4.4

 - symfony/http-kernel updated from v7.4.3 to v7.4.5 patch
   See changes: symfony/http-kernel@v7.4.3...v7.4.5
   Release notes: https://github.com/symfony/http-kernel/releases/tag/v7.4.5

 - pear/pear-core-minimal updated from v1.10.17 to v1.10.18 patch
   See changes: pear/pear-core-minimal@v1.10.17...v1.10.18
   Release notes: https://github.com/pear/pear-core-minimal/releases/tag/v1.10.18

 - drupal/core updated from 11.3.1 to 11.3.2 patch
   See changes: drupal/core@11.3.1...11.3.2
   Release notes: https://github.com/drupal/core/releases/tag/11.3.2

 - symfony/dom-crawler updated from v7.4.1 to v7.4.4 patch
   See changes: symfony/dom-crawler@v7.4.1...v7.4.4
   Release notes: https://github.com/symfony/dom-crawler/releases/tag/v7.4.4

 - symfony/browser-kit updated from v7.4.3 to v7.4.4 patch
   See changes: symfony/browser-kit@v7.4.3...v7.4.4
   Release notes: https://github.com/symfony/browser-kit/releases/tag/v7.4.4

 - drevops/behat-steps updated from 3.4.0 to 3.5.0 minor
   See changes: drevops/behat-steps@3.4.0...3.5.0
   Release notes: https://github.com/drevops/behat-steps/releases/tag/3.5.0

 - drupal/key updated from 1.21.0 to 1.22.0 minor

 - drupal/ai updated from 1.2.4 to 1.2.8 patch

 - drupal/webform updated from 6.3.0-beta6 to 6.3.0-beta7 patch

 - drupal/token updated from 1.16.0 to 1.17.0 minor

 - phpstan/phpdoc-parser updated from 2.3.0 to 2.3.2 patch
   See changes: phpstan/phpdoc-parser@2.3.0...2.3.2
   Release notes: https://github.com/phpstan/phpdoc-parser/releases/tag/2.3.2

 - slevomat/coding-standard updated from 8.26.0 to 8.27.1 minor
   See changes: slevomat/coding-standard@8.26.0...8.27.1
   Release notes: https://github.com/slevomat/coding-standard/releases/tag/8.27.1

 - drupal/core-recommended updated from 11.3.1 to 11.3.2 patch
   See changes: drupal/core-recommended@11.3.1...11.3.2
   Release notes: https://github.com/drupal/core-recommended/releases/tag/11.3.2

 - drupal/diff updated from 1.9.0 to 1.10.0 minor

 - psy/psysh updated from v0.12.18 to v0.12.19 patch
   See changes: bobthecow/psysh@v0.12.18...v0.12.19
   Release notes: https://github.com/bobthecow/psysh/releases/tag/v0.12.19

 - laravel/prompts updated from v0.3.8 to v0.3.12 patch
   See changes: laravel/prompts@v0.3.8...v0.3.12
   Release notes: https://github.com/laravel/prompts/releases/tag/v0.3.12

 - drush/drush updated from 13.7.0 to 13.7.1 patch
   See changes: drush-ops/drush@13.7.0...13.7.1
   Release notes: https://github.com/drush-ops/drush/releases/tag/13.7.1

 - phpstan/phpstan updated from 2.1.33 to 2.1.38 patch

 - rector/rector updated from 2.3.0 to 2.3.5 patch
   See changes: rectorphp/rector@2.3.0...2.3.5
   Release notes: https://github.com/rectorphp/rector/releases/tag/2.3.5

 - webmozart/assert updated from 1.12.1 to 2.1.2 major
   See changes: webmozarts/assert@1.12.1...2.1.2
   Release notes: https://github.com/webmozarts/assert/releases/tag/2.1.2

 - sebastian/comparator updated from 6.3.2 to 6.3.3 patch
   See changes: sebastianbergmann/comparator@6.3.2...6.3.3
   Release notes: https://github.com/sebastianbergmann/comparator/releases/tag/6.3.3

 - phpunit/php-file-iterator updated from 5.1.0 to 5.1.1 patch
   See changes: sebastianbergmann/php-file-iterator@5.1.0...5.1.1
   Release notes: https://github.com/sebastianbergmann/php-file-iterator/releases/tag/5.1.1

 - phpunit/phpunit updated from 11.5.46 to 11.5.50 patch
   See changes: sebastianbergmann/phpunit@11.5.46...11.5.50
   Release notes: https://github.com/sebastianbergmann/phpunit/releases/tag/11.5.50

 - vincentlanglet/twig-cs-fixer updated from 3.11.0 to 3.13.0 minor
   See changes: VincentLanglet/Twig-CS-Fixer@3.11.0...3.13.0
   Release notes: https://github.com/VincentLanglet/Twig-CS-Fixer/releases/tag/3.13.0

No security vulnerability advisories found.
```
@AlexSkrypnyk AlexSkrypnyk force-pushed the feature/update-deps-feb26 branch from cae0a0f to 1440f02 Compare February 5, 2026 01:11
@github-actions
Copy link

github-actions bot commented Feb 5, 2026

Code Coverage Report:
  2026-02-05 12:16:49

 Summary:
  Classes:        (0/0)
  Methods:        (0/0)
  Lines:   93.18% (164/176)

@codecov-commenter
Copy link

codecov-commenter commented Feb 5, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 0.00%. Comparing base (7c36a55) to head (1440f02).
⚠️ Report is 3 commits behind head on develop.

Additional details and impacted files
@@           Coverage Diff           @@
##           develop    #133   +/-   ##
=======================================
  Coverage     0.00%   0.00%           
=======================================
  Files            1       1           
  Lines            8       8           
=======================================
  Misses           8       8           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@AlexSkrypnyk AlexSkrypnyk merged commit 80bbff7 into develop Feb 5, 2026
7 checks passed
@AlexSkrypnyk AlexSkrypnyk deleted the feature/update-deps-feb26 branch February 5, 2026 01:18
@coderabbitai coderabbitai bot mentioned this pull request Mar 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants