Skip to content

[CRM-14077] Lift PHP cap to <8.4 and add 8.3 to CI#16

Merged
MichaelEsteves merged 3 commits into
mainfrom
chore/CRM-14077-php83-cap-lift
Jul 3, 2026
Merged

[CRM-14077] Lift PHP cap to <8.4 and add 8.3 to CI#16
MichaelEsteves merged 3 commits into
mainfrom
chore/CRM-14077-php83-cap-lift

Conversation

@MichaelEsteves

@MichaelEsteves MichaelEsteves commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Feature overview/Issue description

Part of the wings-api PHP 7.4 → 8.3 upgrade (CRM-14074, deps slice CRM-14077 group 5): this package's <8.3 PHP cap is one of the last composer-level blockers for running wings-api on 8.3.

Summary of changes

  • composer.json: PHP constraint >=7.4 <8.3>=7.4 <8.4
  • CI: PHP 8.3 added to the test matrix (where a matrix exists)

Per the epic's design (D6): constraint-lift + 8.3 CI only — code changes happen only if this package's own 8.3 CI fails.

Blockers

  • After merge, please tag a release — wings-api consumes all group-5 lifts in one lock-bump PR once every tag exists.

🤖 Generated with Claude Code

MichaelEsteves and others added 2 commits July 3, 2026 11:02
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@greptile-apps

greptile-apps Bot commented Jul 3, 2026

Copy link
Copy Markdown

Greptile Summary

This PR lifts the PHP version constraint from <8.3 to <8.4 and adds PHP 8.3 to the CI test matrix, unblocking the wings-api PHP 8.3 upgrade. The CI matrix and the composer constraint are internally consistent — every version the package now claims to support is tested.

  • composer.json: constraint widened to >=7.4 <8.4, adding PHP 8.3 support.
  • .github/workflows/pr_test.yml: "8.3" added to the PHP matrix; all supported versions (7.4, 8.08.3) are now exercised across prefer-lowest and prefer-stable composer variants.
  • Note: the PR title and description reference <8.5, but the actual change is <8.4 — the code is consistent, the description appears to contain a typo.

Confidence Score: 5/5

Safe to merge — the constraint and CI matrix are fully aligned, and every declared PHP version is tested.

Both changed files are config-only: the composer constraint and the CI matrix move in lockstep (7.4–8.3 covered end-to-end). No source code was touched, so there is no regression risk from the code itself. The only discrepancy is between the PR title/description (which say <8.5) and the actual constraint (<8.4), which appears to be a description typo rather than a code defect.

No files require special attention.

Important Files Changed

Filename Overview
composer.json PHP constraint widened from <8.3 to <8.4, unblocking 8.3 usage. PR description/title claim <8.5 but the code correctly mirrors the CI matrix (only 8.3 added).
.github/workflows/pr_test.yml PHP 8.3 added to the CI test matrix; all versions now covered by the updated <8.4 constraint are tested (7.4, 8.0, 8.1, 8.2, 8.3).

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[PHP Version] --> B{Constraint\n>=7.4 <8.4}
    B -->|Supported| C[7.4 ✅]
    B -->|Supported| D[8.0 ✅]
    B -->|Supported| E[8.1 ✅]
    B -->|Supported| F[8.2 ✅]
    B -->|NEW - Supported| G[8.3 ✅]
    B -->|Excluded| H[8.4+ ❌]

    C --> CI[CI Matrix]
    D --> CI
    E --> CI
    F --> CI
    G --> CI
    H -.->|Not tested\nNot supported| CI
Loading
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
    A[PHP Version] --> B{Constraint\n>=7.4 <8.4}
    B -->|Supported| C[7.4 ✅]
    B -->|Supported| D[8.0 ✅]
    B -->|Supported| E[8.1 ✅]
    B -->|Supported| F[8.2 ✅]
    B -->|NEW - Supported| G[8.3 ✅]
    B -->|Excluded| H[8.4+ ❌]

    C --> CI[CI Matrix]
    D --> CI
    E --> CI
    F --> CI
    G --> CI
    H -.->|Not tested\nNot supported| CI
Loading

Reviews (2): Last reviewed commit: "fix: CRM-14077 narrow the lift to <8.4 —..." | Re-trigger Greptile

fail-fast: false
matrix:
php: ["7.4", "8.0", "8.1", "8.2"]
php: ["7.4", "8.0", "8.1", "8.2", "8.3"]

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 The composer constraint now allows PHP 8.4 (<8.5), but 8.4 is not included in the test matrix. PHP 8.4 has been released since November 2024 and ships several deprecation-to-error promotions and other behavioural changes that could silently break consumers. Without a 8.4 CI run, the package is effectively advertising support it hasn't verified.

Suggested change
php: ["7.4", "8.0", "8.1", "8.2", "8.3"]
php: ["7.4", "8.0", "8.1", "8.2", "8.3", "8.4"]
Prompt To Fix With AI
This is a comment left during a code review.
Path: .github/workflows/pr_test.yml
Line: 14

Comment:
The composer constraint now allows PHP 8.4 (`<8.5`), but 8.4 is not included in the test matrix. PHP 8.4 has been released since November 2024 and ships several deprecation-to-error promotions and other behavioural changes that could silently break consumers. Without a 8.4 CI run, the package is effectively advertising support it hasn't verified.

```suggestion
        php: ["7.4", "8.0", "8.1", "8.2", "8.3", "8.4"]
```

How can I resolve this? If you propose a fix, please make it concise.

…range

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@MichaelEsteves

Copy link
Copy Markdown
Contributor Author

The red 8.3 CI legs are expected and not a fault in this PR: composer resolution fails because the released rexlabs/utility-belt 4.0.0 still caps php <8.3. Once utility-belt-php#3 merges and tags, re-running this PR's CI should go green — please merge/tag that one first.

🤖 Generated with Claude Code

@MichaelEsteves MichaelEsteves merged commit 8ad3e60 into main Jul 3, 2026
19 of 21 checks passed
@MichaelEsteves MichaelEsteves changed the title [CRM-14077] Lift PHP cap to <8.5 and add 8.3 to CI [CRM-14077] Lift PHP cap to <8.4 and add 8.3 to CI Jul 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants