Problem/Motivation

orchestra declares ^11.3 || ^12 since 1.0.0-alpha14, and the next-major lane is green. That green rests on 12 test classes skipping themselves through DependencyWithoutDrupal12Trait, which proves nothing about those classes on Drupal 12. Seven of them boot webform, and they hold 34 of the 57 test methods gated this way.

The lenient composer plugin gets a project past composer and the module installer. It cannot make its code run, so skipping was the only honest option available at the time. It leaves the seven classes that cover the webform interaction unexercised against a core version this module now claims to support.

Proposed resolution

Do for webform what #3618662: Test the Drupal 12 lane against patched dependencies instead of skipping eighteen classes did for pdv: patch it on the next-major lane only, through _COMPOSER_PATCHES_FILE scoped to the composer (next major) job, so the current lane keeps installing released dependencies untouched. Most of the setup is already here. orchestra opts into the lane, already lists webform in _LENIENT_ALLOW_LIST, and already carries the phpunit (next major) block that unsets SYMFONY_DEPRECATIONS_HELPER. What is missing is the patches file and that one job override.

Seven upstream changes are needed, each already filed with a merge request, so every entry points at the diff rather than carrying a copy of it:

pdv runs this exact set today: its phpunit (next major) job reports 436 passing with 0 errors and 0 skips against core 12.x-dev. Measured on orchestra's own lane, before and after: phpunit (next major) goes from 980 passing with 9 failures and 12 fully-skipped classes, to 989 passing with 0 failures, 0 errors and 0 skips across 227 classes.

Then the seven skipWithoutDrupal12('webform') calls come out, along with the webform entry in the trait. The trait itself stays: five classes still skip on views_bulk_operations, easy_email, simple_oauth and bpmn_io.

Each patch entry stops working when its upstream change lands in a release, because the patch then no longer applies and composer (next major) fails. COMPOSER_EXIT_ON_PATCH_FAILURE is what makes that moment loud: composer-patches otherwise writes "Could not apply patch! Skipping." and lets composer succeed, which would surface as a phpunit fatal and read as a new bug. When webform ships a release carrying these fixes, the follow-up is to drop the entries and raise the webform floor in composer.json, not to restore the skip.

Three of webform's own deprecation families also had to be ignored on the lane, because core's run-tests.sh adds --fail-on-deprecation and its Functional classes raise around 220 each: the native-return-type family, which was already ignored for the other contributed dependencies and only needed webform adding to the list, plus its annotation-based plugins and two smaller families. None of it is orchestra's to fix, and each line goes as webform converts.

Remaining tasks

The other four projects have no upstream fix to point at; every open merge request in all four queues was checked. views_bulk_operations (2 classes) breaks on ViewsBulkOperationsEventSubscriber::getSubscribedEvents() against the Symfony 8 interface, which looks like the smallest of the four and is the natural next one. easy_email (1 class) delivers an empty mail body, a symptom with no diagnosed cause yet. bpmn_io (1 class) never mounts its modeler, and ships no FunctionalJavascript tests at all, so nothing upstream has ever run it against core 12. simple_oauth (1 class) ends the test child process during site install, and is worth re-testing before anything is filed: pdv boots simple_oauth in three Kernel classes on a green Drupal 12 lane with no patch at all, though those classes install no site.

User interface changes

None.

API changes

None. CI configuration and test gating only.

AI-Generated: Yes (Claude Code was used to help draft this issue summary and to write the change on the merge request, including the webform fix filed as #3618889: Drupal 12 removes theme hook includes, so webform's preprocess functions never run and a webform renders empty. I reviewed the work. The counts above are read off the two next-major job logs.)

Issue fork orchestra-3618872

Command icon Show commands

Start within a Git clone of the project using the version control instructions.

Or, if you do not have SSH keys set up on git.drupalcode.org:

Comments

mably created an issue. See original summary.

mably’s picture

Status: Active » Needs review
mably’s picture

Issue summary: View changes

  • mably committed 6e9fc95b on 1.x
    task: #3618872 Test the Drupal 12 lane against a patched webform instead...
mably’s picture

Status: Needs review » Fixed

Now that this issue is closed, review the contribution record.

As a contributor, attribute any organization that helped you, or if you volunteered your own time.

Maintainers, credit people who helped resolve this issue.

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.