Continuously verify Perform's documented PHP 7.4 support floor
Nobody has claimed this yet.
- Dominant language
- PHP
- Stars
- 5
- Forks
- 2
- PR merge metrics
- No merged PRs in 30d
Description
Problem
Perform publicly supports PHP 7.4, but the PHP lint and PHPUnit workflows only run PHP 8.1, 8.2, and 8.3. The source currently avoids obvious PHP 8-only syntax, but the supported minimum is not continuously proven. A future dependency or syntax change can therefore publish a parse/runtime regression for a documented supported environment without CI detecting it.
Evidence
readme.txt:5-8andREADME.md:20,64state PHP 7.4+ support..github/workflows/lint.yml:29defines a matrix of 8.1, 8.2, and 8.3 only..github/workflows/phpunit.ymllikewise tests only 8.1, 8.2, and 8.3.README.md:69correctly explains that Composer's 8.1 platform target is for local dependency resolution, not the plugin runtime minimum.
Scope
Make the publicly supported PHP floor continuously verifiable, or make an explicit owner-approved change to the published support contract.
Implementation plan
- Confirm the intended public minimum is PHP 7.4 and identify which checks can execute on that version with the current dependency graph.
- Add a PHP 7.4 compatibility lane that at minimum parses all shipped PHP and validates production Composer dependencies; add a compatible test lane where PHPUnit/tooling permits it.
- Keep the existing 8.1-8.3 test lanes and Composer 8.1 platform policy.
- If a required dependency cannot support PHP 7.4, prepare the exact options: compatible dependency/tooling adjustment, runtime shim, or an owner-gated public minimum-PHP change.
- Document the split between runtime support and development-tooling resolution in
TESTING.md/maintainer guidance and add a regression check that prevents accidental matrix removal.
Acceptance criteria
- Every supported PHP minimum has a reproducible CI validation path.
- The PHP 7.4 lane validates every shipped PHP file and production dependency installation without changing plugin runtime behavior.
- Existing 8.1-8.3 lint, PHPUnit, and static-analysis coverage remains intact.
- Any change to
Requires PHPis made only after explicit owner approval and synchronized across public metadata.
Validation
- Review CI logs for the new lowest-supported-PHP lane.
- Run the documented local equivalent where available.
- Validate a production package install and activation smoke in an isolated WordPress runtime using the declared floor.
Non-goals and risk
- Do not lower support below PHP 7.4 or change release/tag/publication state.
- Raising the public minimum PHP requirement is a backward-compatibility owner gate, not an implementation default.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with .github/workflows/lint.yml and .github/workflows/phpunit.yml to compare the existing PHP 8.1–8.3 matrices, then inspect the dependency constraints and TESTING.md guidance. Confirm which checks run on PHP 7.4, add the lowest-version validation without removing existing lanes, and verify CI logs, production installation, and the documented WordPress activation smoke path.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github-actions, php
- Domain
- ci-cd, devops, tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100