• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

bleedingdeacons / lifelines / 35540027840
95%

Build:
DEFAULT BRANCH: main
Ran 20 Sep 2026 09:56PM UTC
Jobs 1
Files 7
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

20 Sep 2026 09:53PM UTC coverage: 94.562%. Remained the same
35540027840

push

github

web-flow
feat!: move to PHP 8.4/8.5 and PHPUnit 13, tested to WP 7.1.1 (#57)

Pilot for the suite-wide PHP 8.5 / WordPress 7.1.1 upgrade. LifeLines goes
first because it is standalone — no Unity dependency, no sibling checkouts in
CI — so a wrong workflow change here breaks nothing else. Same reason it
piloted the CI release flow.

## Changes

- `Requires PHP` 8.1 → **8.4**, header and `readme.txt`. WordPress 7.1
  recommends 8.4/8.5, and PHPUnit 13 requires >= 8.4.
- PHPUnit `^10.5` → `^13.0`, and every docblock annotation converted to an
  attribute — PHPUnit 12 removed doc-comment metadata outright. 24 `@test`,
  8 `@covers`, 3 `@dataProvider`, converted with Rector.
- `bleedingdeacons/wp-mocks` `^2.0` → `^3.0`.
- CI runs a **matrix of 8.4 and 8.5** rather than a single 8.1.
- PHPStan analyses a `min: 80400 / max: 80500` range rather than one pin.
- `readme.txt` `Tested up to:` 6.9 → **7.1.1**.

## Why the matrix gates some steps to 8.4

The build archive, both badge assertions and the Coveralls upload are pinned
to `matrix.php == '8.4'`. They are identical on both legs, and running them on
each has the two legs writing the same paths at the same time — duplicate
Coveralls submissions and two processes racing the badge files. `release` keys
on `needs: ci`, which correctly waits for both legs.

## Verification

Full local gate sequence green on PHP 8.5.7: `composer validate`,
`composer audit --locked`, `php -l` across every file, PHPStan level 8,
78 tests, PHPCS, `composer build:production`.

**Coverage is identical before and after the conversion** — 282/300 lines,
6/7 classes, 29/31 methods, 78 tests. That is the check that the `@covers`
mapping was faithful: a mis-mapped one moves per-class attribution without
failing a test.

The committed PHPStan baseline is unchanged; regenerating it against the new
version range produced byte-identical messages and counts.

BREAKING CHANGE: requires PHP 8.4 or later.

313 of 331 relevant lines covered (94.56%)

3.09 hits per line

Jobs
ID Job ID Ran Files Coverage
1 35540027840.1 20 Sep 2026 09:56PM UTC 7
94.56
GitHub Action Run
Source Files on build 35540027840
  • Tree
  • List 7
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #35540027840
  • 78938574 on github
  • Prev Build on main (#33975371991)
  • Next Build on main (#35543114635)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc