You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- PHP 8.0–8.4 for unit tests; targeted integration coverage for WordPress 6.2, 6.7, and 7.0-beta4; single-site + multisite + PCOV coverage
114
114
115
115
---
116
116
@@ -121,17 +121,18 @@ challenges and priorities for WP Sudo.
121
121
122
122
Current project state (as of March 8, 2026):
123
123
- Current test and size counts are centralized in [`docs/current-metrics.md`](docs/current-metrics.md).
124
-
- CI pipeline: unit tests on PHP 8.1–8.4; integration tests on PHP 8.1 and 8.3; WordPress 6.7 + latest + trunk; single-site + multisite + PCOV coverage job
124
+
- CI pipeline: unit tests on PHP 8.0–8.4; integration tests on PHP 8.0/8.1/8.3; WordPress 6.2, 6.7, and 7.0-beta4; single-site + multisite; MySQL 8.0 plus one MariaDB lane; PCOV coverage job
125
125
- WordPress 7.0 Beta 2 tested (February 27, 2026); GA is April 9, 2026
126
126
127
127
---
128
128
129
129
## 1. Integration Tests — Scope and Value
130
130
131
131
> **Status: Complete.** The integration test suite shipped in v2.4.0 (55 tests) and
132
-
> expanded in v2.4.1 (73 tests). CI runs against PHP 8.1–8.4, WordPress latest +
133
-
> trunk, single-site + multisite. The analysis below is preserved for context on
134
-
> what drove the test design.
132
+
> expanded in v2.4.1 (73 tests). CI now runs targeted compatibility lanes across
133
+
> PHP 8.0/8.1/8.3 and WordPress 6.2, 6.7, and 7.0-beta4 with single-site +
134
+
> multisite coverage. The analysis below is preserved for context on what drove
135
+
> the test design.
135
136
136
137
### What unit tests cover well (no integration gap)
137
138
- Request matching across all 7 surfaces (98 GateTest methods)
@@ -402,10 +403,10 @@ Local by Flywheel sites. Gaps remain in CI and broader hosting diversity.
402
403
403
404
| Dimension | Current coverage | Gap |
404
405
|-----------|-----------------|-----|
405
-
|**Web server**|nginx (Studio, Local multisite-subdirectory) + Apache (Local single-site, Local multisite-subdomain) |Apache in CI (mod_php, FastCGI, FPM variants)|
406
-
|**PHP version**| 8.0–8.4 (CI matrix), 8.2 (Local dev) |✅ Covered — PHP 8.0 added to CI v2.9.2|
407
-
|**Database**| MySQL 8.0 (Local CI), SQLite (Studio) | MariaDB 10.x, MySQL 5.7 (legacy hosts)|
408
-
|**WordPress version**| 6.7 + latest + trunk (CI), 6.9.1–7.0-beta2 (dev sites)| 6.2–6.6 still untested; 6.7+ now covered in CI|
406
+
|**Web server**|Apache + MariaDB (`wp-env` Playwright CI), nginx + SQLite (Studio local), nginx/Apache + MySQL (Local manual) |nginx in automated CI; Apache variants beyond the default `wp-env` stack|
407
+
|**PHP version**| 8.0–8.4 (unit CI), 8.0/8.1/8.3 (integration CI), 8.2 (Studio/wp-env local) |8.2 and 8.4 are still missing from integration CI|
408
+
|**Database**| MySQL 8.0 (integration CI), MariaDB LTS (`wp-env` CI + one integration lane), SQLite (Studio local) |automated SQLite CI, MariaDB matrix breadth, MySQL 5.7 legacy hosts |
-**Database engine:** MariaDB and MySQL have subtle JSON and collation differences.
423
424
The upgrader migration chain and option serialization could behave differently.
424
-
-**Backward compat:** The plugin declares WordPress 6.2+ minimum. CI now tests
425
-
6.7, latest, and trunk. WP 6.2–6.6 remain untested — 6.7 is a reasonable floor
426
-
covering most active hosts.
425
+
-**Backward compat:** The plugin declares WordPress 6.2+ minimum. CI now includes
426
+
a dedicated 6.2 floor lane, plus 6.7 and 7.0-beta4. WP 6.3–6.6 remain untested.
427
427
428
428
### Recommended approach
429
429
430
-
**Phase A: Expand CI matrix** ✅ Done v2.9.2
430
+
**Phase A: Expand CI matrix** ✅ Done v2.9.2, extended in v2.14.x
431
431
432
-
CI matrix now covers PHP 8.0–8.4 (unit tests) and PHP 8.0/8.1/8.3 × WP 6.7/latest/trunk × single-site/multisite (18 integration runs). Further backward compat expansion (WP 6.2–6.6) can be added incrementally if 6.7 runs cleanly.
432
+
CI matrix now covers PHP 8.0–8.4 for unit tests, a 6.2 support-floor integration lane on PHP 8.0, stable/forward integration lanes on PHP 8.1 and 8.3 for WordPress 6.7 and 7.0-beta4, and one dedicated MariaDB lane. Further backward compat expansion (WP 6.3–6.6) can be added incrementally if the 6.2 floor lane stays green.
433
433
434
-
**Phase B: Apache + MariaDB CI job (medium effort)**
434
+
**Phase B: Apache + MariaDB CI job** ✅ Covered by Playwright `wp-env`
435
435
436
-
Add a separate CI job that runs on an Apache + MariaDB container instead of the
437
-
default nginx + MySQL. This catches `.htaccess`-dependent behavior and MariaDB
438
-
query differences.
436
+
The Playwright workflow already runs against the default `wp-env` Docker stack,
437
+
which is Apache + MariaDB. That lane is now named explicitly in CI so it is
438
+
visible as an intentional compatibility signal rather than an accidental default.
@@ -61,8 +61,8 @@ value across these known consumers:
61
61
62
62
Source: `.github/workflows/phpunit.yml`
63
63
64
-
- Unit test matrix: PHP 8.1, 8.2, 8.3, 8.4
65
-
- Integration matrix: PHP 8.1 and 8.3; WordPress 6.7 and 7.0-beta4; multisite true/false
64
+
- Unit test matrix: PHP 8.0, 8.1, 8.2, 8.3, 8.4
65
+
- Integration matrix: PHP 8.0, 8.1, 8.3; WordPress 6.2, 6.7, 7.0-beta4; MySQL 8.0 plus one MariaDB LTS lane; multisite true/false on the main MySQL lanes
0 commit comments