Volodymyr Panivko created THRIFT-5956:
-----------------------------------------

             Summary: Bump minimum PHP version to 8.1
                 Key: THRIFT-5956
                 URL: https://issues.apache.org/jira/browse/THRIFT-5956
             Project: Thrift
          Issue Type: New Feature
          Components: PHP - Compiler, PHP - Library
    Affects Versions: 0.24.0
            Reporter: Volodymyr Panivko
            Assignee: Volodymyr Panivko


The PHP library currently declares `"php": "^7.1 || ^8.0"` in composer.json,
 keeping us on the floor of PHP 7.1 — a release that has been EOL since 2019.
 The CI matrix accordingly tests 10 PHP versions (7.1 → 8.5), and dev
 dependencies span PHPUnit 7/8/9 to bridge that range.

 PHP 7.x branches are all unsupported upstream:
   - 7.0  EOL 2019-01-10
   - 7.1  EOL 2019-12-01
   - 7.2  EOL 2020-11-30
   - 7.3  EOL 2021-12-06
   - 7.4  EOL 2022-11-28
   - 8.0  EOL 2023-11-26

 The PHP runtime library has solid test coverage now, so we can simplify
 maintenance by raising the minimum to PHP 8.1. Rationale for 8.1
 specifically (not 8.0):

   * Ubuntu LTS Docker images already used by Thrift CI map naturally
     to 8.1+ (jammy=8.1, noble=8.3); only focal still defaults to 7.4
     and will be moved to ppa:ondrej/php for 8.1.
   * 8.1 unlocks native enums, readonly properties, and `never` return
     type — useful for follow-up modernization of the C++ → PHP
     generator output.
   * 8.1 is the lowest version supported by PHPUnit 10/11, leaving a
     clear migration path.

 Scope of this ticket:
   * composer.json: require PHP ^8.1; collapse PHPUnit constraint to
     ^9.5; bump phpcs to ^3.10.
   * .github/workflows/build.yml: drop the 7.1/7.2/7.3/7.4/8.0 rows of
     the lib-php matrix.
   * build/docker/ubuntu-focal/Dockerfile: install PHP 8.1 from
     ppa:ondrej/php (focal default is 7.4).
   * build/docker/README.md: refresh the version table.
   * lib/php/phpunit.xml: bump schema URL to 9.5.
   * CHANGES.md: announce the breaking change.

 Out of scope (separate follow-up tickets):
   * Migrating to PHPUnit 10/11.
   * Modernizing the C++ → PHP generator output (typed properties,
     constructor promotion, native enums, declare(strict_types=1)).

 Users still on PHP 7.x or 8.0 will need to stay on the 0.23.x release
 series.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to