Skip to content

Raise minimum PHP to 8.2 and expand CI matrix (XWPENG-46) - #1978

Open
shadyvb wants to merge 2 commits into
ticket/XWPENG-45-wp-envfrom
ticket/XWPENG-46-php-minimum
Open

Raise minimum PHP to 8.2 and expand CI matrix (XWPENG-46)#1978
shadyvb wants to merge 2 commits into
ticket/XWPENG-45-wp-envfrom
ticket/XWPENG-46-php-minimum

Conversation

@shadyvb

@shadyvb shadyvb commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Breaking change (5.0.0): Minimum PHP is 8.2 (composer.json ^8.2, Requires PHP: 8.2, PHPCS testVersion 8.2-). Sites below 8.2 get a capability-gated admin_notices / network_admin_notices message; Stream does not bootstrap (no fatal, no shutdown echo into REST/AJAX/feeds/CLI).
  • CI: Lint/Test and E2E run on a PHP 8.2 / 8.3 / 8.4 matrix with per-version Composer cache keys, WP_ENV_PHP_VERSION, and composer check-platform-reqs after install. Deploy workflows use PHP 8.2.
  • Tests / hygiene: Multisite WP_TEST_ACTIVATED_PLUGINS applied via site_option_active_sitewide_plugins map (fixes Jetpack path noise); testcase silences post-bootstrap header/cookie warnings and Yoast indexable watchers on factory blogs; PHPCS/doc tweaks and Admin_Test stub fix; removed obsolete PHP 5.3.6 backtrace guard in Log. Host unit coverage in Fail_Php_Version_Unit_Test (hook registration + capability-gated notice output).

Stack context

Stacks on #1977 (ticket/XWPENG-45-wp-env) → part of GitHub stack #1976 (develop ← … ← this PR).

Test plan

  • composer check-platform-reqs on PHP 8.2+
  • composer test-unit
  • npm run lint
  • npm run test (wp-env, single-site + multisite)
  • npm run test-e2e (at least one matrix leg in CI)
  • Fail_Php_Version_Unit_Test (admin notice hooks + activate_plugins gate)

Branch protection migration (maintainers)

CI job display names changed from static Lint and Test / E2E to matrix names. Update required status checks on develop / master before or right after merge:

  1. Lint and Test (PHP 8.2)
  2. Lint and Test (PHP 8.3)
  3. Lint and Test (PHP 8.4)
  4. E2E (PHP 8.2)
  5. E2E (PHP 8.3)
  6. E2E (PHP 8.4)

Remove obsolete Lint and Test and E2E entries. Keeping only the old names blocks every PR; removing them without adding the six allows merges without CI.

Review artifacts

Local review notes under .ai/reviews/ (gitignored): Stage 4 applied admin-notice fix (S2-H1), version/changelog 5.0.0 (S2-H2), platform-reqs in CI (S2-M1), and documented branch-protection migration (S2-H3).

@shadyvb
shadyvb marked this pull request as draft September 1, 2026 15:16
@shadyvb shadyvb closed this Sep 1, 2026
@shadyvb
shadyvb force-pushed the ticket/XWPENG-46-php-minimum branch from 143e713 to 0067067 Compare September 1, 2026 15:16
@shadyvb shadyvb reopened this Sep 1, 2026
@shadyvb
shadyvb marked this pull request as ready for review September 1, 2026 15:22
…rced end-to-end (XWPENG-46).

Replace shutdown echo with capability-gated admin notices, bump release to 5.0.0, and quiet PHPUnit multisite noise from headers and Yoast indexables.
@shadyvb
shadyvb force-pushed the ticket/XWPENG-46-php-minimum branch from de6396e to 0956d64 Compare September 1, 2026 15:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant