task: #3611267 Require Drupal ^11.4 || ^12 on the new 2.1.x branch
Summary
Per the branch-split plan agreed in #3597892 comment #9: a new 2.1.x branch was cut off the current 2.0.x HEAD (40b26098, which already includes the Drupal 11/12 Project Update Bot compatibility fixes from MR !10 (merged), the draft-revision fix from MR !11 (merged), and the fully-green gated CI from MR !12 (merged)). This MR narrows 2.1.x to require Drupal ^11.4 || ^12 only, so 2.1.x becomes the forward-looking development line while 2.0.x keeps supporting older core versions (see the companion MR targeting 2.0.x).
Changes
entityqueue_form_widget.info.yml:core_version_requirement: ^11.4 || ^12composer.json:"drupal/core": "^11.4 || ^12"tests/modules/entityqueue_form_widget_test/entityqueue_form_widget_test.info.yml:core_version_requirement: ^11.4 || ^12(the test module declares its own requirement, aligned to match).gitlab-ci.yml: pins thecomposerjob'sDRUPAL_COREto the released11.4.3. The gitlab_templatesdefault-refcurrently resolvesCORE_STABLEto11.3.12, below this branch's new^11.4 || ^12requirement, which made thephpunitjob fail withUnable to install modules: module 'entityqueue_form_widget' is incompatible with this version of Drupal core.PinningDRUPAL_COREon thecomposerjob (consumed byphpunitvianeeds/dotenv) fixes this without opting into the deprecated_TARGET_COREvariable.
OOP hook conversion (2.1.x only)
src/Hook/EntityqueueFormWidgetHooks.php now carries every hook implementation and helper as an OOP #[Hook] class (DI of current_user, entity_type.manager, database), and entityqueue_form_widget.module has been removed — per the maintainer's direction that 2.1.x drops the legacy procedural hooks file entirely. 2.0.x keeps the #[LegacyHook] .module pattern, since it still supports Drupal core versions where the file-less OOP-only hook style isn't required. phpstan.neon had its entityqueue_form_widget.module path entry removed to match. The submit callback uses a static bridge ([static::class, 'nodeFormSubmit']) that stays serializable in the form cache and delegates to the instantiated hook service's doNodeFormSubmit().
Drupal core 11.4 test fixes
Drupal core 11.4 changed the testing profile's optional node.body field storage from text_with_summary to text_long. The test module's own field.storage.node.body, the two field.field.node.*.body field instances, and the two core.entity_form_display.node.*.default form displays were still declaring/expecting text_with_summary, which is a storage/instance type mismatch — installing the test config on core 11.4 threw a fatal Property summary is unknown on node/add. Fixed by aligning the test module's body field config to text_long (matching what core 11.4's testing profile actually provides), including switching the form widget to text_textarea and dropping the now-invalid summary_rows setting.
Both FunctionalJavascript tests pass locally against a clean Drupal core 11.4.4 install (2 tests, 12 assertions), phpstan reports no errors, and phpcs is clean.
Issue
https://www.drupal.org/project/entityqueue_form_widget/issues/3611267
Parent plan: https://www.drupal.org/project/entityqueue_form_widget/issues/3597892#comment-16693254
AI disclosure
AI-Generated: Yes (Used Claude Code to create the 2.1.x branch, bump the core version requirement across the module info file, composer.json, and the test module's info file, convert the procedural hooks in entityqueue_form_widget.module into the OOP EntityqueueFormWidgetHooks class and remove the .module file, and fix the FunctionalJavascript tests against the Drupal core 11.4 testing profile's text_long node.body field.)
Checkpoints
- File an issue about this project
- Addition/Change/Update/Fix to this project
- Testing to ensure no regression
- Automated unit/functional testing coverage
- Developer Documentation support on feature change/addition
- User Guide Documentation support on feature change/addition
- UX/UI designer responsibilities
- Accessibility and Readability
- Reviewed by a human
- Code review by maintainers
- Full testing and approval
- Credit contributors
- Review with the product owner
- Update Release Notes
- Release