[BREAKING] Add PHP 8.1+ support (drops PHP 7.4)#27
Conversation
- Update composer.json to support PHP versions 7.4 through 8.4 - Update CI workflow to test against PHP 7.4, 8.0, 8.1, 8.2, 8.3, 8.4 - Update composer.lock to reflect new PHP version constraints Co-Authored-By: Ben Sinclair <ben.sinclair@yourgiving.co>
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
|
Please address this error in all the Github actions tests. Error: This request has been automatically failed because it uses a deprecated version of |
- Update actions/checkout from v2 to v4 - Update actions/cache from v2 to v4 - Resolves CI failure due to deprecated action versions Co-Authored-By: Ben Sinclair <ben.sinclair@yourgiving.co>
Co-Authored-By: Ben Sinclair <ben.sinclair@yourgiving.co>
Co-Authored-By: Ben Sinclair <ben.sinclair@yourgiving.co>
|
I remove the explicit PHP version from composer.json (see 3ebbec9) and need you to update composer. |
Co-Authored-By: Ben Sinclair <ben.sinclair@yourgiving.co>
…ymfony/deprecation-contracts Co-Authored-By: Ben Sinclair <ben.sinclair@yourgiving.co>
There was a problem hiding this comment.
Pull Request Overview
This PR modernizes the PHP version support by dropping PHP 7.4 and adding support for PHP 8.1-8.4. The main driver was resolving a dependency conflict with phpspec/prophecy that prevented PHP 8.2+ usage.
- Upgraded minimum PHP requirement from 7.4 to 8.0 and added support through 8.4
- Resolved phpspec/prophecy dependency constraint blocking PHP 8.2+
- Updated CI matrix to test all supported PHP versions with MySQL and PostgreSQL
Reviewed Changes
Copilot reviewed 2 out of 3 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| composer.json | Updated PHP requirement to >=8.0, added explicit phpspec/prophecy ^1.22.0 and additional dev dependencies |
| .github/workflows/tests.yml | Expanded CI matrix to test PHP 8.0-8.4 and updated GitHub Actions to v4 |
Add PHP 8.1+ support
Summary
This PR upgrades the
tithely/exorepository to support PHP versions 8.0 through 8.4+ by:>=7.4 <8.5to>=8.0(open-ended, dropping PHP 7.4 support)actions/checkout@v2andactions/cache@v2to v4doctrine/instantiator ^1.5andsymfony/deprecation-contracts ^2.4to maintain PHP 8.0 compatibilityAll 20 CI checks now pass across the full PHP version matrix with both MySQL and PostgreSQL databases.
Review & Testing Checklist for Human
Recommended test plan: Set up test databases locally, create sample migrations, and verify they work correctly across PHP 8.0, 8.2, and 8.4 with both MySQL and PostgreSQL.
Diagram
%%{ init : { "theme" : "default" }}%% graph TD composer["composer.json<br/>PHP constraints & deps"]:::major-edit lock["composer.lock<br/>Dependency versions"]:::major-edit ci[".github/workflows/tests.yml<br/>CI matrix & actions"]:::major-edit deps["Dependencies<br/>(28 packages updated)"]:::context phpunit["PHPUnit 9.5.10 → 9.6.23"]:::context doctrine["doctrine/instantiator<br/>2.0.0 → 1.5.0"]:::context symfony["symfony/deprecation-contracts<br/>v3.6.0 → v2.5.4"]:::context composer --> deps composer --> doctrine composer --> symfony lock --> phpunit ci --> "PHP 8.0-8.4 testing" subgraph Legend L1["Major Edit"]:::major-edit L2["Minor Edit"]:::minor-edit L3["Context/No Edit"]:::context end classDef major-edit fill:#90EE90 classDef minor-edit fill:#87CEEB classDef context fill:#FFFFFFNotes
doctrine/instantiatorandsymfony/deprecation-contractswas necessary to prevent PHP 8.1+ dependencies from breaking PHP 8.0 compatibilitytests/db.ymlconfiguration, so CI validation is critical for database-dependent functionality