open-feature / open-feature/php-sdk-contrib

Drop PHP < 8.2 support (bump minimum to `^8.2`)

Open
#181 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
PHP
Stars
17
Forks
14
Avg merge
6d 16h
Merged PRs (30d)
6

Description

Split out from #180 (thanks @JamieSinn for the nudge).

PHP 8.1 reaches security EOL end of December 2025 and 8.0 is already fully EOL. We currently test on ['8.0', '8.1', '8.2'] and most packages declare "php": "^8", i.e. we still support two EOL runtimes.

Per our technical guidelines (Platform Support), we only need to support officially supported (non-EOL) platform versions, and that support should be documented explicitly in implementation tooling (for PHP, the require.php constraint in composer.json). Dropping 8.0/8.1 brings us in line with both.

Proposal: bump the minimum supported PHP to 8.2 across the monorepo.

Changes:

  • require.php^8.2 in each package's composer.json:
    • hooks/DDTrace, hooks/OpenTelemetry, hooks/Validators (^8 today)
    • providers/CloudBees, providers/Flagd, providers/GoFeatureFlag, providers/Split (^8 today)
    • providers/Flagsmith already ^8.1 <9.0 → align to ^8.2
  • CI matrix (.github/workflows/php-ci.yaml): drop 8.0/8.1, add current stable → e.g. ['8.2', '8.3', '8.4']
  • Sweep any README/docs stating a PHP floor (guidelines ask for explicit support docs)

Trade-off / caveat:

  • Both dropped versions are EOL, so per the guidelines' Removing Support for Platforms we're treating this as non-breaking (regular feat:, minor release; no !). Consumers still on 8.0/8.1 stay on the current released versions.

Update: #179 (in review) already lands part of this:

  • drops PHP 8.0 from the CI matrix (now ['8.1', '8.2'])
  • bumps providers/Flagd to php: ^8.1 (forced by the google/protobuf runtime dep)
  • completes the earlier addendum: testcontainers moved to require-dev, and the on-the-fly composer require removed from dev:test:e2e:setup

Once #179 merges, the remaining scope narrows to:

  • drop 8.1 from the matrix → ['8.2', '8.3', '8.4']
  • bump require.php to ^8.2 across all packages (Flagd is ^8.1, others still ^8)
  • testcontainers → require-dev / drop composer require in e2e setup (done in #179)

Order: land #179 first, then this is a small sweep.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Wait for #179 to land, then inspect the listed packages' composer.json files and .github/workflows/php-ci.yaml. Sweep README and documentation references to the PHP floor. Done means every package declares ^8.2, the CI matrix covers 8.2, 8.3, and 8.4, and no documented support floor contradicts those versions.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions, php
Domain
build-system, ci-cd, documentation
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
58/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.