Problem/Motivation

This module's own code is ready for Drupal 12 — its test suite passes there, and
core_version_requirement already allows ^12. It still cannot
be installed on Drupal 12, because its dependencies cannot be.

This issue tracks that wait, so the next-major CI job going green is something we
notice rather than something we have to remember to check.

Current state of the dependency stack

Verified against Drupal 12.0-dev on 25 August 2026:

Project Latest branch Declares Blocks Drupal 12?
Paragraphs 1.x-dev ^10.3 || ^11 Yes
Embed 1.x-dev, 2.0.x-dev ^10.2 || ^11 Yes
Entity Embed 1.x-dev, 2.0.x-dev ^10.3 || ^11 Yes
Inline Entity Form 3.x-dev ^11.3 Yes
Entity Browser 2.x-dev ^10.3 || ^11 || ^12 No
Entity Reference Revisions 1.x-dev ^10.2 || ^11 || ^12 Yes — see below

Because Paragraphs, Embed, Entity Embed and Inline Entity Form do not declare
^12, Drupal refuses to install them and the module cannot be enabled at
all:

MissingDependencyException: Unable to install modules:
module 'paragraphs_inline_entity_form'. Its dependency module 'paragraphs'
is incompatible with this version of Drupal core.

Entity Reference Revisions is a separate and more serious case. It declares
Drupal 12 support, but it registers its Views data through a procedural
entity_reference_revisions.views.inc that Drupal 12 no longer loads, and
that file calls views_field_default_views_data(), which core has removed.
With the core constraints relaxed the way the next-major CI job does it, every page of
the site returns a 500:

InvalidArgumentException: Class "entity_reference_revisions_field_views_data"
does not exist.

Error: Call to undefined function views_field_default_views_data()
  in entity_reference_revisions.views.inc

Since Entity Reference Revisions is a hard dependency of Paragraphs, this affects
every Paragraphs site on Drupal 12, not just this module.

What has already been done here

  • The unused dependency on Entity
    API
    was removed in
    #3601907.
    It had the same procedural hook_views_data() problem, and nothing in
    this module used it.
  • core_version_requirement is ^10.3 || ^11 || ^12. The
    ^12 is deliberate: it is what makes the next-major CI jobs exist.
  • The next-major CI jobs run on every push and are allowed to fail, so the
    pipeline stays green while they report honestly.

Remaining tasks

  • Wait for Drupal 12 releases of Paragraphs, Embed, Entity Embed and Inline Entity
    Form, and for Entity Reference Revisions to convert its Views hooks.
  • When the composer (next major) job stops failing, run the full suite
    and a manual pass on Drupal 12 and report the result here.
  • Only then tag a release claiming Drupal 12 support.

How to reproduce the next-major environment locally

Use mglaman/composer-drupal-lenient, which is what drupal.org's own
next-major job uses to relax core_version_requirement for contrib. On the
Drupal 12 image you may also need
composer config policy.advisories.block false, because the
core-dev lock can otherwise fail on a Guzzle advisory before it gets as far
as the contrib constraints.

Comments

marcelovani created an issue. See original summary.

marcelovani’s picture

Status: Active » Postponed