Issue #3614275: Bring the 4.0.0 CHANGELOG entry up to date

Brings the 4.0.0 CHANGELOG entry up to date. Fixes #3614275.

Why

The entry was written partway through the Drupal 12 work and never revisited. It was dated 2026-06-27 — when the branch was drafted, not when it shipped — and omitted six commits that landed afterwards, including a security-relevant configuration fix and the correction that made CI test the right version of Drupal.

What is now recorded that was not

  • #3614068 — the image component settings were never read. config/install shipped layout_builder_kit.settings with flat keys while the settings form and both image-bearing components read layout_builder_kit.image_component with nested keys, so a fresh install had no upload folder and no file-extension validation. Includes layout_builder_kit_update_10001() to migrate administrator-saved values.
  • #3531242 — the : void return type on submitConfigurationForm().
  • Private service properties widened to protected. DependencySerializationTrait::__sleep() calls get_object_vars() from the trait's own scope, so private properties on a subclass are invisible to it and get serialized raw.
  • The GitLab CI migration, and that CI had been silently building Drupal 11 for this Drupal-12-only branch until it was pinned on the composer job.
  • The functional test rename — it ended in Tests, which PHPUnit's *Test.php discovery never collects, so it had never run.

Structure

Reorganised into Drupal 12 compatibility, Fixes and Tests and CI rather than one flat list, since the entry now covers three distinct kinds of change. The "Note on HTML output differences when upgrading a site to Drupal 12" section is unchanged — it is still correct and is the most useful part of the entry for anyone planning an upgrade.

Housekeeping

insteadof, Nightwatch and updatedb added to .cspell.json; all three are introduced by the new text and the cspell job would otherwise fail. Verified: cspell passes on CHANGELOG.txt with the updated dictionary. Lines wrap at 79 characters and the heading underline matches, consistent with the rest of the file. No earlier entry is touched.

Before merging

The date is set to today and should be corrected to the real release date when 4.0.0 is tagged. Per the issue, do not close #3614275 until that happens — the entry describes a release that does not exist yet.

Merges here fast-forward, so Fixes #3614275 will not auto-close.

Merge request reports

Loading
Loading