PHP 8.3 compatibility (bump lcobucci/jwt to ^5)

Created on 15 July 2024, 12 months ago

After updating PHP to 8.3 and running the composer installer, I got the following:

  Problem 1
    - lcobucci/clock is locked to version 3.0.0 and an update of this package was not requested.
    - lcobucci/clock 3.0.0 requires php ~8.1.0 || ~8.2.0 -> your php version (8.3.7) does not satisfy that requirement.
  Problem 2
    - lcobucci/clock 3.0.0 requires php ~8.1.0 || ~8.2.0 -> your php version (8.3.7) does not satisfy that requirement.
    - lcobucci/jwt 4.3.0 requires lcobucci/clock ^2.0 || ^3.0 -> satisfiable by lcobucci/clock[3.0.0].
    - lcobucci/jwt is locked to version 4.3.0 and an update of this package was not requested.

So the lcobucci/jwt library needs to be updated to ^5 (https://github.com/lcobucci/jwt/releases)

🐛 Bug report
Status

Active

Version

1.0

Component

Code

Created by

🇺🇦Ukraine marchuk.vitaliy Rivne, UA

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Merge Requests

Comments & Activities

  • Issue created by @marchuk.vitaliy
  • Pipeline finished with Failed
    12 months ago
    Total: 289s
    #224445
  • Status changed to Needs work 12 months ago
  • 🇺🇦Ukraine marchuk.vitaliy Rivne, UA

    Updated to lcobucci/jwt:5.3.0 and tested locally (composer require 'lcobucci/jwt:5.3.0 as 4.3.0') and it works great. The lcobucci/clock library has been replaced by psr/clock.
    Opened MR with the fixes.
    There seems to be a problem running the tests:

    Problem 1
        - lcobucci/jwt[5.0.0, ..., 5.4.x-dev] require ext-sodium * -> it is missing from your system. Install or enable PHP's sodium extension.
        - Root composer.json requires lcobucci/jwt ^5 -> satisfiable by lcobucci/jwt[5.0.0, ..., 5.4.x-dev].
    To enable extensions, verify that they are enabled in your .ini files:
        - /usr/local/etc/php/php-cli.ini
    

    So that should be fixed as well.

  • First commit to issue fork.
  • Pipeline finished with Failed
    11 months ago
    Total: 44s
    #260858
  • Pipeline finished with Failed
    11 months ago
    Total: 38s
    #260860
  • Pipeline finished with Failed
    11 months ago
    Total: 45s
    #260863
  • Pipeline finished with Success
    11 months ago
    Total: 218s
    #261799
  • Pipeline finished with Success
    11 months ago
    Total: 213s
    #261890
  • Pipeline finished with Failed
    11 months ago
    Total: 242s
    #261903
  • Pipeline finished with Failed
    11 months ago
    Total: 162s
    #261907
  • Pipeline finished with Failed
    11 months ago
    Total: 173s
    #261918
  • Pipeline finished with Success
    11 months ago
    Total: 697s
    #261925
  • 🇺🇸United States rhovland Oregon

    I'm very confused as this seems to suggest sodium is built into php now https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=911135
    But running php -m sodium is not listed there. It is in Ubuntu PHP installations though.
    Additionally it cannot be installed via PECL because it was abandoned since PHP 8.1
    And it is not in the list of "provided but not enabled" PHP modules

    I added a composer command to ignore the lack of that module in .gitlab-ci.yml

    Tests seem to pass despite the module being missing?

  • Pipeline finished with Failed
    11 months ago
    Total: 234s
    #263071
  • Pipeline finished with Success
    11 months ago
    Total: 349s
    #263078
  • Pipeline finished with Failed
    11 months ago
    Total: 303s
    #263083
  • Pipeline finished with Success
    10 months ago
    Total: 506s
    #269817
  • Pipeline finished with Success
    10 months ago
    Total: 378s
    #269850
  • 🇺🇸United States rhovland Oregon

    Ok finally everything is good to go.

    The only test failures are project level that have issues to address them. Everything is green otherwise
    📌 Fix eslint errors Active
    📌 AcceptJsPaymentMethodTest fails due to invalid permission RTBC

  • Status changed to Needs review 10 months ago
  • 🇺🇸United States rhovland Oregon
  • 🇺🇸United States rhovland Oregon

    Also note that apparently PHP 8.3 is required to run Drupal 11 so this module isn't actually Drupal 11 compatible until this is addressed.

  • 🇺🇸United States rhovland Oregon

    Apparently lcobucci/clock was updated to support PHP 8.3 and 8.4 which made this module compatible with Drupal 11.

    I have double checked this on a fresh Drupal 11 project.

    Still would be a good idea to upgrade to a newer version eventually.

  • 🇮🇱Israel jsacksick

    So this is no longer urgent right?
    I see that tests are passing in 📌 Fix the test failures Active .

Production build 0.71.5 2024