Problem/Motivation

All MRs against reCAPTCHA_v3 are now failing to pass GitLab CI pipelines with several issues:

  • Build stage fails for "composer (next major)"
  • Validate stage fails for "phpcs" and all three "phpstan" tests.

phpcs (Code Sniff)

FILE: src/ReCaptchaV3ActionInterface.php
------------------------------------------------------------------------------------------------------------------------
FOUND 1 ERROR AFFECTING 1 LINE
------------------------------------------------------------------------------------------------------------------------
 8 | ERROR | [x] Documentation comment contains forbidden comment "Provides an interface defining a recaptcha v3
   |       |     entity..". (SlevomatCodingStandard.Commenting.ForbiddenComments.CommentForbidden)
------------------------------------------------------------------------------------------------------------------------
PHPCBF CAN FIX THE 1 MARKED SNIFF VIOLATIONS AUTOMATICALLY
------------------------------------------------------------------------------------------------------------------------

PhpStan

 ------ ----------------------------------------------------------------- 
  Line   src/Form/ReCaptchaV3SettingsForm.php                             
 ------ ----------------------------------------------------------------- 
  183    Call to deprecated method clearCachedDefinitions() of interface  
         Drupal\Core\Asset\LibraryDiscoveryInterface:                     
         in drupal:11.1.0 and is removed from drupal:12.0.0. Use          
         LibraryDiscoveryCollector::clear() instead.                      
         🪪  method.deprecated                                            
 ------ ----------------------------------------------------------------- 
 [ERROR] Found 1 error    

Composer

Your requirements could not be resolved to an installable set of packages.
  Problem 1
    - Root composer.json requires drupal/captcha ^2.0 -> satisfiable by drupal/captcha[2.0.10, 2.x-dev].
    - Root composer.json requires drupal/core-recommended main-dev -> satisfiable by drupal/core-recommended[dev-main].
    - drupal/captcha[2.0.10, ..., 2.x-dev] require drupal/core ^9.5 || ^10 || ^11 -> satisfiable by drupal/core[9.5.x-dev, 10.0.x-dev, ..., 10.6.x-dev, 11.0.x-dev, ..., 11.x-dev].
    - drupal/core 10.0.x-dev requires symfony/yaml ^6.2 -> satisfiable by symfony/yaml[v6.2.0-BETA1, ..., 6.4.x-dev].
    - drupal/core 10.1.x-dev requires symfony/yaml ^6.3 -> satisfiable by symfony/yaml[v6.3.0-BETA1, ..., 6.4.x-dev].
    - drupal/core[10.2.x-dev, ..., 10.6.x-dev] require symfony/yaml ^6.4 -> satisfiable by symfony/yaml[v6.4.0-BETA1, ..., 6.4.x-dev].
    - drupal/core 11.0.x-dev requires symfony/yaml ^7.1 -> satisfiable by symfony/yaml[v7.1.0-BETA1, ..., 7.4.x-dev].
    - drupal/core[11.1.9, ..., 11.1.x-dev] require symfony/yaml ^7.2 -> satisfiable by symfony/yaml[v7.2.0-BETA1, ..., 7.4.x-dev].
    - drupal/core[11.2.8, ..., 11.2.x-dev] require symfony/yaml ^7.3 -> satisfiable by symfony/yaml[v7.3.0-BETA1, ..., 7.4.x-dev].
    - drupal/core 11.3.0-rc1 requires drupal/core-composer-scaffold 11.3.0-rc1 -> found drupal/core-composer-scaffold[11.3.0-rc1] but it conflicts with your root composer.json require (main-dev).
    - drupal/core 11.3.0-rc2 requires drupal/core-composer-scaffold 11.3.0-rc2 -> found drupal/core-composer-scaffold[11.3.0-rc2] but it conflicts with your root composer.json require (main-dev).
    - drupal/core 11.3.0-alpha1 requires drupal/core-composer-scaffold 11.3.0-alpha1 -> found drupal/core-composer-scaffold[11.3.0-alpha1] but it conflicts with your root composer.json require (main-dev).
    - drupal/core 11.3.0-beta1 requires drupal/core-composer-scaffold 11.3.0-beta1 -> found drupal/core-composer-scaffold[11.3.0-beta1] but it conflicts with your root composer.json require (main-dev).
    - drupal/core 11.3.0 requires drupal/core-composer-scaffold 11.3.0 -> found drupal/core-composer-scaffold[11.3.0] but it conflicts with your root composer.json require (main-dev).
    - drupal/core 11.3.1 requires drupal/core-composer-scaffold 11.3.1 -> found drupal/core-composer-scaffold[11.3.1] but it conflicts with your root composer.json require (main-dev).
    - drupal/core 11.3.2 requires drupal/core-composer-scaffold 11.3.2 -> found drupal/core-composer-scaffold[11.3.2] but it conflicts with your root composer.json require (main-dev).
    - drupal/core 11.3.3 requires drupal/core-composer-scaffold 11.3.3 -> found drupal/core-composer-scaffold[11.3.3] but it conflicts with your root composer.json require (main-dev).
    - drupal/core 11.3.4 requires drupal/core-composer-scaffold 11.3.4 -> found drupal/core-composer-scaffold[11.3.4] but it conflicts with your root composer.json require (main-dev).
    - drupal/core 11.3.5 requires drupal/core-composer-scaffold 11.3.5 -> found drupal/core-composer-scaffold[11.3.5] but it conflicts with your root composer.json require (main-dev).
    - drupal/core 11.3.x-dev requires drupal/core-composer-scaffold 11.3.x-dev -> found drupal/core-composer-scaffold[11.3.x-dev] but it conflicts with your root composer.json require (main-dev).
    - drupal/core 11.x-dev requires drupal/core-composer-scaffold 11.x-dev -> found drupal/core-composer-scaffold[11.x-dev] but it conflicts with your root composer.json require (main-dev).
    - drupal/core 9.5.x-dev requires longwave/laminas-diactoros ^2.14 -> satisfiable by longwave/laminas-diactoros[2.14.x-dev].
    - drupal/core-recommended dev-main requires symfony/yaml ~v8.0.6 -> satisfiable by symfony/yaml[v8.0.6, 8.0.x-dev].
    - longwave/laminas-diactoros 2.14.x-dev requires php ^7.3 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 -> your php version (8.5.4) does not satisfy that requirement.
    - You can only install one version of a package, so only one of these can be installed: symfony/yaml[v3.4.0-BETA1, ..., 3.4.x-dev, v4.0.0-BETA1, ..., 4.4.x-dev, v5.0.0-BETA1, ..., 5.4.x-dev, v6.0.0-BETA1, ..., 6.4.x-dev, v7.0.0-BETA1, ..., 7.4.x-dev, v8.0.0-BETA1, ..., 8.1.x-dev].

Steps to reproduce

Eg see failure on Pipeline Job #776876 for #3580636: reCAPTCHA v3 hide_badge branding text is outdated after Google's April 2, 2026 policy change.

Proposed resolution

Fix the above 3 CI failures so other issues in the queue can be properly tested and surface related failures, instead of unrelated failures.

Remaining tasks

  • Write MR.
  • Passing CI pipeline.

User interface changes

None

API changes

None

Data model changes

None

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

jwilson3 created an issue. See original summary.

jwilson3’s picture

I've fixed the CI failures. (Tests are all green now).

The third issue, related to composer next major, is being caused by the upstream drupal/captcha module not yet being marked Drupal 12 compatible. Drupal CI cannot validate recaptcha_v3's D12-compatibility until the upstream dependency is also D12-compatible.

I found a related upstream issue that would need to get committed first, before D12 could even be considered for captcha. #3576948: Fix Drupal 11 and PHPStan compatibility: replace deprecated classes and unsafe new static() usage

For that reason, I decided to temporarily disable "NEXT_MAJOR" in this module's .gitlab-ci.yml

jwilson3’s picture

Status: Active » Needs review
dench0’s picture

Status: Needs review » Reviewed & tested by the community

dench0’s picture

Status: Reviewed & tested by the community » 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.