Repository navigation
Reviewing PR stacks aimed at restoring automated testing capabilities and GitHub Actions workflows for wp/X.Y branches #84853
Copy link
Copy link
Open
Labels
[Type] TaskIssues or PRs that have been broken down into an individual action to takeIssues or PRs that have been broken down into an individual action to take
Description
Instructions
- Comment below to claim a given fix.
- If you’re able, edit the table below to add yourself as the reviewer for that fix.
- When you claim a given fix, you are pledging that you will explicitly submit a review with an approval or a request for change on every PR in that row. An approving review is required for every PR in a given stack, otherwise the stack cannot be merged.
- Claim one row at a time. You can always claim another after you complete the first.
Progress
| Count | Percentage | |
|---|---|---|
| Rows completed | 80 of 105 | 76.2% |
| Cells completed | 403 of 548 | 73.5% |
| Rows not started | 23 of 105 | 21.9% |
Last updated: 2026-10-23 20:06 UTC
Legend
- ✅ The PR contains an approving review that satisfies merge requirements, or when in the Fixes column, all PRs for that fix have approving reviews that satisfy merge requirements.
- ☑️ A PR has an approving review, but not one that satisfies the merge requirements. An additional approving review is required.
- ❕ Previously reviewed or commented on, but no approval given or new review requested.
| Fix | PRs | Reviewer | 7.1 | 7.0 | 6.9 | 6.8 | 6.7 | 6.6 | 6.5 | 6.4 | 6.3 | 6.2 | 6.1 | 6.0 | 5.9 | 5.8 | 5.7 | 5.6 | 5.5 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ✅ A. Remove obsolete and trunk-only workflows | 17 | @lucatume | ✅ 1 - 82787 | ✅ 1 - 82797 | ✅ 1 - 82864 | ✅ 1 - 82881 | ✅ 1 - 82896 | ✅ 1 - 82913 | ✅ 1 - 82988 | ✅ 1 - 83667 | ✅ 1 - 83695 | ✅ 1 - 84215 | ✅ 1 - 84240 | ✅ 1 - 84263 | ✅ 1 - 84395 | ✅ 1 - 84429 | ✅ 1 - 84762 | ✅ 1 - 84952 | ✅ 1 - 84990 |
| ✅ B. Add timeouts to CI jobs that have none | 17 | @adimoldovan | ✅ 2 - 84465 | ✅ 2 - 84467 | ✅ 2 - 84469 | ✅ 2 - 84471 | ✅ 2 - 84473 | ✅ 2 - 84475 | ✅ 2 - 84477 | ✅ 2 - 84479 | ✅ 2 - 84481 | ✅ 2 - 84483 | ✅ 2 - 84485 | ✅ 2 - 84487 | ✅ 2 - 84489 | ✅ 2 - 84491 | ✅ 2 - 84763 | ✅ 2 - 84953 | ✅ 2 - 84991 |
| ✅ C. Reference trunk's reusable workflow-lint job | 3 | @adimoldovan | ✅ 3 - 82788 | ✅ 3 - 82799 | ✅ 3 - 82866 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
| ✅ D. Disable npm caching in release workflows | 11 | @lucatume | ✅ 4 - 83400 | ✅ 4 - 83401 | ✅ 4 - 83402 | ✅ 3 - 83403 | ✅ 3 - 83404 | ✅ 3 - 83405 | ✅ 3 - 83406 | ✅ 3 - 83668 | ✅ 3 - 83696 | ✅ 3 - 84216 | ✅ 3 - 84241 | N/A | N/A | N/A | N/A | N/A | N/A |
| ✅ E. Update GitHub Actions to their latest versions | 17 | @ntsekouras | ✅ 5 - 82789 | ✅ 5 - 82800 | ✅ 5 - 82867 | ✅ 4 - 82883 | ✅ 4 - 82898 | ✅ 4 - 82915 | ✅ 4 - 82990 | ✅ 4 - 83669 | ✅ 4 - 83697 | ✅ 4 - 84217 | ✅ 4 - 84242 | ✅ 3 - 84265 | ✅ 3 - 84397 | ✅ 3 - 84431 | ✅ 3 - 84764 | ✅ 3 - 84954 | ✅ 3 - 84992 |
✅ F. Remove svn --version debug check |
4 | @adimoldovan | N/A | N/A | N/A | N/A | N/A | N/A | ✅ 5 - 83001 | ✅ 5 - 83670 | ✅ 5 - 83698 | ✅ 5 - 84218 | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
✅ G. Refine push branch filters |
17 | @lucatume | ✅ 6 - 82793 | ✅ 6 - 82806 | ✅ 6 - 82872 | ✅ 5 - 82892 | ✅ 5 - 82908 | ✅ 5 - 82924 | ✅ 6 - 82999 | ✅ 6 - 83671 | ✅ 6 - 83699 | ✅ 6 - 84219 | ✅ 5 - 84243 | ✅ 4 - 84266 | ✅ 4 - 84398 | ✅ 4 - 84432 | ✅ 4 - 84765 | ✅ 4 - 84955 | ✅ 4 - 84993 |
| ✅ H. Add concurrency configuration to workflows | 3 | @andrewserong | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ✅ 5 - 84766 | ✅ 5 - 84956 | ✅ 5 - 84994 |
| ✅ I. Remove the broken flaky-test issue reporting job | 9 | @andrewserong | N/A | ✅ 7 - 82803 | ✅ 7 - 83286 | ✅ 6 - 82889 | ✅ 6 - 82904 | ✅ 6 - 82921 | ✅ 7 - 82996 | ✅ 7 - 83673 | ✅ 7 - 83700 | ✅ 7 - 84220 | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
✅ J. Remove SimenB/github-actions-cpu-cores dependency |
5 | @andrewserong | N/A | ✅ 8 - 82804 | ✅ 8 - 82871 | ✅ 7 - 82890 | ✅ 7 - 82906 | ✅ 7 - 82922 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
| ✅ K. Remove the mobile-unit-js job | 16 | @tellthemachines | N/A | ✅ 9 - 82810 | ✅ 9 - 82875 | ✅ 8 - 83294 | ✅ 8 - 83295 | ✅ 8 - 83296 | ✅ 8 - 83297 | ✅ 8 - 83674 | ✅ 8 - 83701 | ✅ 8 - 84221 | ✅ 6 - 84244 | ✅ 5 - 84267 | ✅ 5 - 84399 | ✅ 5 - 84433 | ✅ 6 - 84767 | ✅ 6 - 84957 | ✅ 6 - 84995 |
| ✅ L. Pin WordPress 7.1 for performance testing | 1 | @ramonjd | ✅ 7 - 83152 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
| ✅ M. Test against a single Node.js version | 15 | @lucatume | ✅ 8 - 82790 | ✅ 10 - 82801 | ✅ 10 - 82868 | ✅ 9 - 82884 | ✅ 9 - 82899 | ✅ 9 - 82916 | ✅ 9 - 82991 | ✅ 9 - 83676 | ✅ 9 - 83703 | ✅ 9 - 84222 | ✅ 7 - 84245 | ✅ 6 - 84268 | ✅ 6 - 84400 | ✅ 6 - 84434 | ✅ 7 - 84768 | N/A | N/A |
✅ N. Pin runner images instead of *-latest |
16 | @ramonjd | ✅ 9 - 82792 | ✅ 11 - 82805 | N/A | ✅ 10 - 82891 | ✅ 10 - 82907 | ✅ 10 - 82923 | ✅ 10 - 82998 | ✅ 10 - 83677 | ✅ 10 - 83704 | ✅ 10 - 84223 | ✅ 8 - 84246 | ✅ 7 - 84269 | ✅ 7 - 84401 | ✅ 7 - 84435 | ✅ 8 - 84769 | ✅ 7 - 84958 | ✅ 7 - 84996 |
✅ O. Always read the Node.js version from .nvmrc |
4 | @ramonjd | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ✅ 8 - 84436 | ✅ 9 - 84770 | ✅ 8 - 84959 | ✅ 8 - 84997 |
| ✅ P. Upgrade Node.js from 16 to 20 | 1 | @ramonjd | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ✅ 11 - 83678 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
| ✅ CO. Upgrade Node.js from 12 to 14 | 2 | @ramonjd | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ✅ 9 - 84960 | ✅ 9 - 84998 |
| ✅ Q. Migrate wp-env to Docker Compose v2 | 11 | @adimoldovan | N/A | N/A | N/A | N/A | N/A | N/A | ✅ 11 - 83003 | ✅ 12 - 83679 | ✅ 11 - 83705 | ✅ 11 - 84224 | ✅ 9 - 84247 | ✅ 8 - 84270 | ✅ 8 - 84402 | ✅ 9 - 84437 | ✅ 10 - 84771 | ✅ 10 - 84961 | ✅ 10 - 84999 |
| R. Fix wp-env Docker builds broken by archived Debian repositories | 9 | @lucatume | 23 - 85485 | ✅ 12 - 82808 | ❕ 11 - 82873 | ✅ 11 - 82888 | ✅ 11 - 82903 | ✅ 11 - 82920 | ✅ 12 - 82995 | ✅ 13 - 83680 | ❕ 12 - 83706 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
✅ S. Pin wp-env to the correct WordPress Core version |
10 | @ramonjd | ✅ 10 - 82791 | ✅ 13 - 82802 | ✅ 12 - 82869 | ✅ 12 - 82885 | ✅ 12 - 82900 | ✅ 12 - 82917 | ✅ 13 - 82992 | ✅ 14 - 83681 | ✅ 13 - 83707 | ✅ 12 - 84225 | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
| ✅ CP. Remove the Axe check that runs after every e2e test | 2 | @tellthemachines | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ✅ 11 - 84962 | ✅ 11 - 85000 |
| ✅ T. Update the PHP version test matrix | 17 | @ramonjd | ✅ 11 - 82795 | ✅ 14 - 82809 | ✅ 13 - 82874 | ✅ 14 - 82893 | ✅ 14 - 82909 | ✅ 14 - 82925 | ✅ 15 - 83000 | ✅ 15 - 83682 | ✅ 14 - 83708 | ✅ 13 - 84226 | ✅ 10 - 84248 | ✅ 9 - 84271 | ✅ 9 - 84403 | ✅ 10 - 84438 | ✅ 11 - 84772 | ✅ 12 - 84963 | ✅ 13 - 85002 |
| ✅ CX. Use PHPUnit 9 for PHP 7.3 through 8.2 | 2 | @ramonjd | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ✅ 10 - 85298 | ✅ 10 - 85297 | N/A | N/A | N/A | N/A |
U. Remove the spatie/phpunit-watcher dev dependency |
5 | @lucatume | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | 11 - 84249 | 11 - 84272 | 11 - 84404 | 11 - 84439 | 12 - 84773 | N/A | N/A |
| V. Run PHP coding standards on the runner instead of inside wp-env | 7 | @ntsekouras | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | 12 - 84250 | 12 - 84273 | 12 - 84405 | 12 - 84440 | 14 - 84775 | 13 - 84964 | 14 - 85003 |
| W. Let the current Composer release install this branch's dependencies | 5 | @ntsekouras | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | 13 - 84406 | 13 - 84441 | 16 - 84777 | 14 - 84965 | 15 - 85004 |
✅ X. Guard setAccessible() calls for PHP 8.5 |
2 | @ramonjd | N/A | ✅ 15 - 82811 | ✅ 14 - 82876 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
| Y. Fix the Composer PHP platform override breaking unit tests on older PHP | 9 | @ntsekouras | N/A | N/A | N/A | 13 - 82887 | 13 - 82902 | 13 - 82919 | 14 - 82994 | 16 - 83683 | 15 - 83709 | 14 - 84227 | 13 - 84251 | 21 - 84282 | N/A | N/A | N/A | N/A | N/A |
| Z. Configure the Composer advisory policy | 9 | @ntsekouras | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | 16 - 83710 | 15 - 84228 | 14 - 84252 | 13 - 84274 | 14 - 84407 | 14 - 84442 | 17 - 84778 | 15 - 84966 | 16 - 85005 |
| ✅ AA. Ignore the stale Browserslist data warning in unit tests | 15 | @ramonjd | N/A | N/A | ✅ 15 - 82870 | ✅ 15 - 82886 | ✅ 15 - 82901 | ✅ 15 - 82918 | ✅ 16 - 82993 | ✅ 17 - 83684 | ✅ 17 - 83711 | ✅ 16 - 84229 | ✅ 15 - 84253 | ✅ 14 - 84275 | ✅ 15 - 84408 | ✅ 15 - 84443 | ✅ 18 - 84779 | ✅ 16 - 84967 | ✅ 17 - 85006 |
| AB. Fix Playwright browser-install failures on Ubuntu 24.04 | 7 | N/A | N/A | N/A | N/A | N/A | 16 - 82926 | 17 - 82997 | 18 - 83685 | 18 - 83712 | 17 - 84230 | 16 - 84254 | 15 - 84276 | N/A | N/A | N/A | N/A | N/A | |
AC. Fix theme-activation navigation race in activate-theme.js |
9 | @ntsekouras | N/A | N/A | N/A | N/A | N/A | N/A | 18 - 83002 | 19 - 83686 | 19 - 83713 | 18 - 84231 | 17 - 84255 | 16 - 84277 | 16 - 84409 | 16 - 84444 | 19 - 84780 | N/A | N/A |
| ✅ AD. Fix flaky block switcher max-columns e2e test | 1 | @tellthemachines | N/A | N/A | N/A | N/A | N/A | N/A | ✅ 20 - 83622 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
| ✅ AE. Fix flaky block switcher columns-range e2e test | 1 | @tellthemachines | N/A | N/A | N/A | N/A | N/A | N/A | ✅ 21 - 83623 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
| ✅ AF. Ignore empty PHP files in the PHP coding standards scan | 1 | @ramonjd | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ✅ 17 - 84278 | N/A | N/A | N/A | N/A | N/A |
✅ AG. Fetch react-native-screens as a pre-built tarball |
3 | @ntsekouras | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ✅ 17 - 84445 | ✅ 20 - 84781 | ✅ 17 - 84968 | N/A |
✅ AH. Pin wp-phpunit/wp-phpunit to the branch's WordPress test bootstrap |
6 | @andrewserong | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ✅ 18 - 84279 | ✅ 20 - 84413 | ✅ 27 - 84942 | ✅ 30 - 84944 | ✅ 23 - 84974 | ✅ 26 - 85015 |
| ✅ AI. Use PHPUnit Polyfills' fixture method names | 2 | @andrewserong | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ✅ 19 - 84280 | ✅ 21 - 84414 | N/A | N/A | N/A | N/A |
| ✅ AJ. Stop failing PHPUnit on PHP 8.2 deprecation notices | 1 | @ramonjd | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ✅ 18 - 84256 | N/A | N/A | N/A | N/A | N/A | N/A |
| ✅ AK. Fix Test Widget e2e plugin for PHP 8 | 1 | @andrewserong | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ✅ 19 - 84447 | N/A | N/A | N/A |
| AL. Improve reliability of TinyMCE-related tests | 6 | N/A | 16 - 83467 | 16 - 83468 | 16 - 83469 | 16 - 82905 | 18 - 83465 | 22 - 83466 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | |
| ✅ AM. Fix flaky DataViews list-layout keyboard e2e tests | 5 | @tellthemachines | N/A | ✅ 17 - 83638 | ✅ 17 - 83639 | ✅ 17 - 83640 | ✅ 17 - 83641 | ✅ 17 - 83627 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
✅ AN. Swap phpunit/phpunit for a release PHP 5.6 and 7.0 can load |
3 | @ramonjd | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ✅ 29 - 84456 | ✅ 13 - 84774 | ✅ 25 - 84976 | N/A |
✅ AO. Stop the puppeteer alias from changing package-lock.json |
3 | @ntsekouras | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ✅ 21 - 84782 | ✅ 18 - 84969 | ✅ 12 - 85001 |
✅ AP. Regenerate stale core/image deprecation fixtures |
1 | @ramonjd | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ✅ 21 - 83688 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
✅ AQ. Fix wp-bind PHP test for esc_url() scheme completion |
1 | @ramonjd | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ✅ 22 - 83689 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
| ✅ AR. Retry Puppeteer plugin activation/deactivation on timeout | 1 | @andrewserong | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ✅ 23 - 83690 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
| ✅ AS. Fix flaky interactivity router navigate e2e test | 8 | @ntsekouras | ✅ 12 - 83646 | ✅ 18 - 83647 | ✅ 18 - 83648 | ✅ 18 - 83650 | ✅ 18 - 83653 | ✅ 19 - 83655 | ✅ 23 - 83657 | ✅ 24 - 83692 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
| AT. Remove the redundant Install NVM step | 1 | 13 - 83659 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | |
| ✅ AU. Fix flaky Font Library font deletion e2e test | 4 | @ntsekouras | N/A | N/A | ✅ 19 - 83649 | ✅ 19 - 83651 | ✅ 19 - 83654 | ✅ 20 - 83656 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
| AV. Add missing attribute defaults to the Latest Posts render test | 1 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | 22 - 84283 | N/A | N/A | N/A | N/A | N/A | |
✅ AW. Use assertStringContainsString() for string haystacks |
2 | @ramonjd | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ✅ 23 - 84284 | ✅ 23 - 84416 | N/A | N/A | N/A | N/A |
| ✅ AX. Fix flaky site editor URL navigation e2e test | 8 | @tellthemachines | N/A | N/A | ✅ 20 - 83716 | ✅ 20 - 83717 | ✅ 20 - 83718 | ✅ 22 - 83727 | ✅ 25 - 83728 | ✅ 25 - 83729 | ✅ 21 - 83731 | ✅ 23 - 84236 | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
| ✅ AY. Reset preferences after navigable toolbar e2e tests | 6 | @ntsekouras | N/A | ✅ 19 - 83721 | ✅ 21 - 83722 | ✅ 21 - 83723 | ✅ 21 - 83724 | ✅ 21 - 83725 | ✅ 24 - 83726 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
| ✅ AZ. Fix flaky site editor command palette e2e test | 1 | @ntsekouras | N/A | N/A | N/A | N/A | N/A | ✅ 23 - 83736 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
| BA. Pass debug step arguments through to wp-env | 7 | N/A | N/A | 22 - 83800 | 22 - 83801 | 22 - 83802 | 24 - 83803 | 26 - 83804 | 26 - 83805 | 22 - 83806 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | |
| BB. Detect the database client in the debug step | 10 | 16 - 83831 | 22 - 83832 | 23 - 83833 | 23 - 83834 | 23 - 83835 | 25 - 83836 | 27 - 83837 | 27 - 83838 | 23 - 83839 | 20 - 84233 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | |
| ✅ BC. Fix ReflectionException on PHP 5.6/7.0 in block-pattern REST tests | 2 | @ramonjd | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ✅ 19 - 84257 | ✅ 24 - 84285 | N/A | N/A | N/A | N/A | N/A |
BD. Add a mariadbVersion option to wp-env |
17 | 14 - 83810 | 20 - 83811 | 24 - 83812 | 24 - 83813 | 24 - 83814 | 26 - 83815 | 28 - 83816 | 28 - 83817 | 24 - 83818 | 19 - 84232 | 20 - 84258 | 26 - 84287 | 17 - 84410 | 20 - 84448 | 22 - 84783 | 19 - 84970 | 19 - 85008 | |
CQ. Create the wp-env development and tests databases |
2 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | 20 - 84971 | 20 - 85009 | |
| BE. Replace wp-env's database check with a MariaDB health check | 15 | N/A | N/A | 26 - 83862 | 26 - 83863 | 26 - 83864 | 28 - 83865 | 29 - 83866 | 29 - 83867 | 25 - 83868 | 21 - 84235 | 21 - 84260 | 27 - 84289 | 18 - 84412 | 21 - 84450 | 23 - 84784 | 21 - 84972 | 21 - 85010 | |
| BF. Pin MariaDB to an era-appropriate version | 17 | 15 - 83819 | 21 - 83820 | 25 - 83821 | 25 - 83822 | 25 - 83823 | 27 - 83824 | 30 - 83825 | 30 - 83826 | 26 - 83827 | 22 - 84234 | 22 - 84259 | 28 - 84288 | 19 - 84411 | 22 - 84449 | 24 - 84785 | 22 - 84973 | 22 - 85011 | |
✅ CR. Add a WP_ENV_PHP_VERSION environment variable |
1 | @ramonjd | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ✅ 23 - 85012 |
| ✅ CS. Pin PHP to 7.4 in CI | 1 | @ramonjd | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ✅ 24 - 85013 |
✅ CT. Run wp-env on the PHP test matrix version |
1 | @ramonjd | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ✅ 25 - 85014 |
✅ BG. Replace the removed assertInternalType() in the block editor tests |
1 | @ramonjd | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ✅ 24 - 84417 | N/A | N/A | N/A | N/A |
| ✅ BH. Assert URL details request args and schema by key | 1 | @ramonjd | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ✅ 25 - 84418 | N/A | N/A | N/A | N/A |
✅ BI. Initialize WP_Block_Supports::$block_to_render in block render tests |
3 | @ramonjd | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ✅ 25 - 84286 | ✅ 26 - 84419 | ✅ 23 - 84451 | N/A | N/A | N/A |
| ✅ BJ. Fix flaky Openverse image drag-and-drop e2e test | 9 | @tellthemachines | ✅ 17 - 84037 | ✅ 23 - 84038 | ✅ 27 - 84039 | ✅ 27 - 84040 | ✅ 27 - 84041 | ✅ 29 - 84042 | ✅ 19 - 83621 | ✅ 20 - 83687 | ✅ 20 - 83714 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
| ✅ BK. Fix flaky router styles stylesheet-failure e2e test | 1 | @tellthemachines | N/A | N/A | ✅ 28 - 84177 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
| ✅ BL. Disable the node_modules cache in the Storybook check | 3 | @andrewserong | ✅ 18 - 84178 | ✅ 24 - 84179 | ✅ 29 - 84180 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
| ✅ BM. Migrate the Query block e2e test to Playwright | 1 | @tellthemachines | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ✅ 24 - 84237 | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
| BN. Install Xdebug 3.1.6 in wp-env on PHP 7 | 6 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | 25 - 84238 | 23 - 84261 | 29 - 84290 | 27 - 84420 | 18 - 84446 | 15 - 84776 | N/A | N/A | |
| ✅ BO. Pin the Node.js version in the Compressed Size workflow | 2 | @ntsekouras | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ✅ 25 - 84786 | N/A | ✅ 18 - 85007 |
| ✅ BP. Omit WordPress dependencies when scaffolding in the Create Block check | 3 | @ntsekouras | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ✅ 28 - 84421 | ✅ 24 - 84452 | ✅ 26 - 84787 | N/A | N/A |
| ✅ BQ. Disable remote block patterns in e2e tests | 1 | @ramonjd | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ✅ 25 - 84453 | N/A | N/A | N/A |
| ✅ CN. Update the minimum supported WordPress version to 5.7 | 2 | @ramonjd | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ✅ 26 - 84873 | ✅ 27 - 84871 | N/A | N/A |
| ✅ BS. Pin the tt1-blocks theme to 0.4.3 | 1 | @andrewserong | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ✅ 28 - 84789 | N/A | N/A |
| ✅ BT. Use the Outline dropdown in the Site Editor save flow e2e test | 1 | @andrewserong | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ✅ 29 - 84790 | N/A | N/A |
✅ BU. Pin phpunit/phpunit to a PHP 5.6/7.0-compatible release |
6 | @ramonjd | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ✅ 20 - 84281 | ✅ 22 - 84415 | ✅ 28 - 84455 | ✅ 31 - 84791 | ✅ 24 - 84975 | ✅ 27 - 85016 |
✅ BV. Skip the widgets REST controller test_get_items test on PHP 8 |
2 | @ramonjd | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ✅ 32 - 84792 | ✅ 26 - 84977 | N/A |
| BW. Skip the Media & Text focal point fixture test before PHP 7.1 | 2 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | 30 - 84291 | 29 - 84422 | N/A | N/A | N/A | N/A | |
| ✅ BX. Make the Site Editor export test compatible with PHP 5.6 and 7.0 | 2 | @ramonjd | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ✅ 30 - 84457 | ✅ 33 - 84793 | N/A | N/A |
BY. Add wpop_keywords to the pattern directory test fixtures |
2 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | 30 - 84423 | 31 - 84458 | N/A | N/A | N/A | |
| ✅ BZ. Skip the flaky List View global shortcut e2e test | 1 | @tellthemachines | N/A | N/A | ✅ 30 - 84210 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
| CA. Check for a current screen before reading its ID in the global styles settings | 2 | @aaronjorbin / @rejaulalomkhan | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ☑️ 31 - 84424 | ✅ 32 - 84459 | N/A | N/A | N/A |
| ✅ CB. Skip the flaky multiple completers autocomplete e2e test | 1 | @ramonjd | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ✅ 31 - 84589 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
CC. Set user fields directly in the createUser() e2e utility |
1 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | 32 - 84425 | N/A | N/A | N/A | N/A | |
| ✅ CD. Handle a missing widget name when saving a widget in the widgets REST controller | 2 | @ntsekouras | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ✅ 34 - 84794 | ✅ 27 - 84978 | N/A |
| CE. Open the Styles tab in the multi-entity save font size test | 1 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | 27 - 84214 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | |
| CF. Remove the navigation menu edit permission e2e test | 1 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | 31 - 84292 | N/A | N/A | N/A | N/A | N/A | |
| ✅ CG. Fix flaky Tabs unit test | 1 | @ntsekouras | N/A | N/A | N/A | N/A | N/A | N/A | ✅ 31 - 84588 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
| CH. Wait for the slash inserter option in the flaky Writing Flow e2e tests | 1 | @ntsekouras | N/A | N/A | ❕ 31 - 84392 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
| ✅ CI. Fix flaky Pages e2e test Save click | 1 | @andrewserong | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ✅ 32 - 84621 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
| ✅ CJ. Retry detached menu item clicks in the Widgets Customizer e2e tests | 1 | @andrewserong | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ✅ 33 - 84426 | N/A | N/A | N/A | N/A |
| ✅ CK. Only read the template slug when a template exists in the templates REST controller | 1 | @andrewserong | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ✅ 35 - 84795 | N/A | N/A |
| ✅ CL. Set explicit retention periods for workflow artifacts | 15 | @ntsekouras | ✅ 19 - 84743 | ✅ 25 - 84744 | ✅ 32 - 84745 | ✅ 28 - 84746 | ✅ 28 - 84747 | ✅ 30 - 84748 | ✅ 32 - 84749 | ✅ 33 - 84750 | ✅ 28 - 84751 | ✅ 26 - 84752 | ✅ 24 - 84753 | ✅ 32 - 84754 | ✅ 34 - 84755 | ✅ 33 - 84756 | ✅ 36 - 84796 | N/A | N/A |
| ✅ CM. Use the matching wordpress-develop branch for pre-release PHPUnit tests | 1 | @ramonjd | ✅ 20 - 84760 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
| ✅ CU. Remove the unused flaky test report uploads and reporter | 12 | @ramonjd | N/A | ✅ 26 - 85114 | ✅ 33 - 85113 | ✅ 29 - 85112 | ✅ 29 - 85111 | ✅ 31 - 85110 | ✅ 33 - 85109 | ✅ 34 - 85108 | ✅ 29 - 85107 | ✅ 27 - 85106 | ✅ 25 - 85105 | ✅ 33 - 85104 | ✅ 35 - 85103 | N/A | N/A | N/A | N/A |
| ✅ CV. Run macOS and Windows jobs only on WordPress/gutenberg | 12 | @ramonjd | ✅ 21 - 85127 | ✅ 27 - 85128 | ✅ 34 - 85129 | ✅ 30 - 85130 | ✅ 30 - 85131 | ✅ 32 - 85132 | ✅ 34 - 85133 | ✅ 35 - 85134 | ✅ 30 - 85135 | ✅ 28 - 85136 | ✅ 26 - 85137 | ✅ 34 - 85138 | N/A | N/A | N/A | N/A | N/A |
| ✅ CW. Fix the flaky switch to draft step in the preview e2e test | 1 | @tellthemachines | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ✅ 35 - 85149 | N/A | N/A | N/A | N/A | N/A |
| ✅ CZ. Upload each E2E job's debug artifacts under its own name | 9 | @ntsekouras | N/A | N/A | N/A | N/A | N/A | N/A | ✅ 35 - 85328 | ✅ 36 - 85329 | ✅ 31 - 85330 | ✅ 29 - 85331 | ✅ 27 - 85332 | ✅ 36 - 85333 | ✅ 36 - 85334 | ✅ 34 - 85335 | ✅ 37 - 85336 | N/A | N/A |
| ✅ CY. Pin the PHP version used by the end-to-end tests | 16 | @ramonjd | ✅ 22 - 85318 | ✅ 28 - 85317 | ✅ 35 - 85316 | ✅ 31 - 85315 | ✅ 31 - 85314 | ✅ 33 - 85313 | ✅ 36 - 85337 | ✅ 37 - 85339 | ✅ 32 - 85341 | ✅ 30 - 85343 | ✅ 28 - 85345 | ✅ 37 - 85347 | ✅ 37 - 85349 | ✅ 35 - 85351 | ✅ 38 - 85353 | ✅ 28 - 85312 | N/A |
| ✅ DA. Fix the flaky Comment Query Loop pagination test | 1 | @ntsekouras | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ✅ 38 - 85404 | N/A | N/A | N/A | N/A | N/A |
| ✅ DB. Fix flaky Composite and Tabs unit tests | 1 | @ntsekouras | N/A | N/A | N/A | N/A | N/A | N/A | ✅ 37 - 85478 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
104 fixes, 546 PRs.
PRs in each wp/X.Y stack:
| 7.1 | 7.0 | 6.9 | 6.8 | 6.7 | 6.6 | 6.5 | 6.4 | 6.3 | 6.2 | 6.1 | 6.0 | 5.9 | 5.8 | 5.7 | 5.6 | 5.5 | Total | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PRs | 22 | 28 | 35 | 31 | 31 | 33 | 36 | 37 | 32 | 30 | 28 | 38 | 37 | 35 | 38 | 28 | 27 | 546 |
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
[Type] TaskIssues or PRs that have been broken down into an individual action to takeIssues or PRs that have been broken down into an individual action to take
Type
Projects
- StatusShow more project fieldsIn progress
Activity
wp/X.Ybranches #82780desrosj commentedon Oct 15, 2026
Fixes
A. Remove obsolete and trunk-only workflows
Branch:
remove-rn-workflowsPurpose: Deletes workflows that do no useful work on a
wp/X.Ybranch: scheduled andworkflow_runjobs andpull_request_targetautomation (which always run the default branch's copy), React Native workflows, changelog and PHP-sync checks meant fortrunkdevelopment, and plugin-release automation that only runs fromtrunkorrelease/*. It also removes the performance tests, which are only maintained for the current WordPress release, and on 5.7 and 5.6cancel.yml, which nativeconcurrencyreplaces. Less dead YAML means fewer stale action pins and less lint noise.Source: #62609, #76503, #78169, #79030, #32016
B. Add timeouts to CI jobs that have none
Branch:
add-job-timeoutsPurpose: Adds
timeout-minutesto the build, e2e, static-analysis and PHP test jobs (the ones trunk's #80801 and #46510 cover, plus the Puppeteer e2e jobs) so a hung job is cancelled instead of running to GitHub's 360-minute default. Prompted by Playwright shards hanging for 2–3 hours inplaywright install --with-depsduring an apt mirror outage on 2026-10-07.Source: #46510, #80801
C. Reference trunk's reusable workflow-lint job
Branch:
reference-trunk-workflow-lintPurpose: Points
workflow-lint.ymlattrunk's reusable workflow-lint job instead of a local copy, and ports the branch filters from #82744 so workflow linting actually runs onwp/X.Ybranches.Source: #82744
Not applicable: 6.8 and older have no
workflow-lint.ymlorreusable-workflow-lint.yml, so there is nothing to point at trunk.D. Disable npm caching in release workflows
Branch:
disable-cache-for-release-buildsPurpose: Sets
package-manager-cache: falseon everyactions/setup-nodestep in the workflows that build and publish release artifacts. Those jobs are currently uncached only by accident; this makes it explicit to rule out cache poisoning of a published plugin ZIP or npm package.Source: #79835
Not applicable: 6.0, 5.9, 5.8, 5.7, 5.6 and 5.5 have no
publish-npm-packages.yml, and A removes theirbuild-plugin-zip.yml(5.6 and 5.5 never had one), so there is nothing to change. The 6.0, 5.9 and 5.8 PRs (#84264, #84396, #84430) were closed on 2026-10-09.E. Update GitHub Actions to their latest versions
Branch:
update-actions-to-latestPurpose: Bumps every third-party action to its latest release, pinned to a full commit SHA. Older versions run on deprecated Node.js runtimes or hit platform changes that stop the workflows from running.
F. Remove
svn --versiondebug checkBranch:
remove-svn-version-debug-checkPurpose: Drops the
svn --versionline from the PHP job's debug step. Current runner images no longer ship Subversion, so the diagnostic-only command fails with exit code 127.Not applicable: 7.1–6.6 no longer run
svn --version, and 6.1 and older have notest-phpdebug step.G. Refine
pushbranch filtersBranch:
fix-workflow-branch-filtersPurpose: Ports #82744's
push:branch filters (trunk,release/X.Y,wp/X.Y,wp/latest,wp/next), socreate-block.yml(and on 5.7/5.6 every workflow that only listedmaster) runs on a direct push towp/X.Y, and the looserelease/**/wp/**globs become #82744's exact patterns.pull_requesttriggers stay unfiltered. On 7.1–6.9 theworkflow-lint.ymlhalf of #82744 is in C.Source: #82744
H. Add concurrency configuration to workflows
Branch:
add-workflow-concurrencyPurpose: Ports trunk's #32016: adds a
concurrency:block so a newer push to a pull request cancels that pull request's superseded run, replacing the oldcancel.ymlworkflow that A removes.Source: #32016
I. Remove the broken flaky-test issue reporting job
Branch:
disable-flaky-test-issue-reportingPurpose: Removes the
report-to-issuesjob. It checks out livetrunkand runs trunk'sreport-flaky-testsaction, which no longer fits this branch: on 7.0 and 6.9 the action requires anoutput-pathinput the job never passes, and on 6.8–6.2 the job'snpm run build:packagesstep no longer exists on trunk. Only an automated notification is lost.Not applicable: 7.1 already uses trunk's current flaky-test report; 6.1 and older have no
report-to-issuesjob.J. Remove
SimenB/github-actions-cpu-coresdependencyBranch:
remove-cpu-cores-dependencyPurpose: Replaces the third-party action that only fed Jest's
--maxWorkerswithnproc, matching trunk's own removal of the dependency.Source: #78593
K. Remove the mobile-unit-js job
Branch:
remove-disabled-mobile-unit-js,remove-mobile-unit-js-jobPurpose: Removes the
mobile-unit-jsjob fromunit-test.yml, the last React Native CI left once A removes the React Native workflows. On 7.0 and 6.9 it is already disabled withif: false; on older branches it still runs, spending a build and a Jest run on a platform the branch no longer ships.L. Pin WordPress 7.1 for performance testing
Branch:
pin-performance-tests-wp-versionPurpose: Passes
--wp-versionto the performance CLI so the "Compare performance with base branch" step measures against WordPress 7.1 instead of silently falling back to WordPresstrunk.Not applicable:
performance.ymlonly remains on 7.1. A removes it on 7.0 and older, so their PRs were closed on 2026-10-07.M. Test against a single Node.js version
Branch:
single-node-version-testingPurpose: Removes the Node.js version matrix and
check-latest: true, so CI only tests the one Node.js version in the branch's.nvmrc. A maintenance branch never moves off its pinned version, so the extra legs add cost without value. On 6.4–6.1 the matrix already had a single value and there is nocheck-latest, so those PRs only drop the redundant matrix. Only the Node.js parts change: on 7.1–6.9 the pull request OSexcludeentries increate-block.ymlandstatic-checks.ymlstay until CV replaces them. On 5.8, whose workflows key the~/.npmcache by hand, the Node.js version also comes out of every cache key, so all jobs share one cache entry.Not applicable: 5.6 and 5.5 have no Node.js matrix.
N. Pin runner images instead of
*-latestBranch:
pin-runner-imagesPurpose: Replaces the floating
ubuntu-latest/windows-latest/macos-latestlabels with pinned images, porting trunk's #71201. GitHub warns about the floating aliases, and they let the environment change underneath a frozen branch.Source: #71201
Not applicable:
wp/6.9already contains #71201 and has no*-latestrunner labels.O. Always read the Node.js version from
.nvmrcBranch:
read-node-version-from-nvmrcPurpose: Replaces the hardcoded
node-versionvalues left in the workflows withnode-version-file: '.nvmrc'so.nvmrcis the single source of truth. No functional change.Not applicable: 5.9 and newer already read
.nvmrceverywhere.P. Upgrade Node.js from 16 to 20
Branch:
upgrade-node-to-20Purpose: Moves the branch from end-of-life Node.js 16 to 20, matching trunk's #56331. Later layers in the stack, including the Playwright upgrade, need the newer version.
Source: #56331
CO. Upgrade Node.js from 12 to 14
Branch:
upgrade-node-to-14Purpose: Moves
.nvmrcfrom Node.js 12 to 14, with thenodegitandnode-sassbumpsnpm cineeds to get prebuilt Node 14 binaries. 5.7 and newer already run Node 14 or later, and Node 12 can't load thedocker-compose(npm) releases after0.24.0.Q. Migrate wp-env to Docker Compose v2
Branch:
docker-compose-v2,fix-docker-compose-v2-debug-stepPurpose: Moves
wp-envfrom the standalonedocker-composev1 binary to thedocker composev2 plugin and, where the step exists (6.5–6.2), removes thedocker-compose -vdebug check. Current runner images no longer ship v1. (The 6.5 PR only removes the debug check. The 5.6 PR also sets explicit database credentials that the v1 failure had hidden.)Source: #51339
Not applicable: 7.1–6.6 already contain #51339 and have no
docker-compose -vstep.R. Fix wp-env Docker builds broken by archived Debian repositories
Branch:
fix-wp-env-debian-bullseye,fix-wp-env-debian-buster,archive-bullseye-security-apt-source(7.1)Purpose: Cherry-picks trunk's
wp-envfixes that point Docker builds at Debian's archive server for releases that reached end-of-life (Buster/Bullseye, and Stretch's expired signing keys on older branches). Without it,wp-env startfails withapt-get404s for the affected PHP versions. Thebullseye-securitysources now point at the archive too, instead of being dropped, so the images still get Debian's security updates.Source: #70718, #82478, #85469
On 7.1: the branch already contains #82478, so its PR only adds the
bullseye-securitychange from #85469, at the top of the stack.S. Pin
wp-envto the correct WordPress Core versionBranch:
pin-wp-env-core-versionPurpose: Pins
.wp-env.jsonto the matchingWordPress/WordPress#X.Y-branchand removes the WordPress version matrix. Unpinned,wp-envtracks Coretrunk, so the frozen branch's tests ran against an unrelated, moving version of WordPress.Not applicable: 6.1 and older already pin
.wp-env.jsontoWordPress/WordPress#X.Y-branchand have no WordPress version matrix.CP. Remove the Axe check that runs after every e2e test
Branch:
remove-global-axe-e2e-checkPurpose: Removes the global
afterEachAxe scan from the e2e test setup, as trunk did in Gutenberg 9.7; 5.7 and newer already have this. The scan failed tests that passed: the security tests'onerrorimages have no alt text, and injecting axe-core into a loading iframe was flaky.Source: #26626
T. Update the PHP version test matrix
Branch:
update-php-test-matrixPurpose: Sets the PHPUnit job's matrix to the lowest and highest supported minor of each PHP major the branch's WordPress release supports. 6.1–5.6 had no matrix, so it's added there and the single site and multisite runs split into their own legs. On 7.1–6.9 it also removes the PR-only excludes and the
eventdimension they used, so pull requests run every leg.fail-faststaystrue, as ontrunk.Source: #46510 (part)
CX. Use PHPUnit 9 for PHP 7.3 through 8.2
Branch:
use-phpunit-9-for-php-7-3-plusPurpose: Backports the
wp-envchange that picks the PHPUnit image for each PHP version, so PHP 7.3 through 8.2 use the PHPUnit 9 images and PHP 7.2 stays on PHPUnit 8. Without it, the 8.1 legs of the updated test matrix fall back towordpressdevelop/phpunit:latest(PHP 8.2), and the 7.4 legs run PHPUnit 8.5.Source: #46510 (part)
U. Remove the
spatie/phpunit-watcherdev dependencyBranch:
remove-phpunit-watcherPurpose: Drops a local-only convenience dependency whose
symfony/polyfill-php80autoload file is a parse error on PHP 5.6/7.0, which crashes every older-PHP leg before a single test runs. It also deletesphpunit-watcher.yml.distand the watcher instructions in the testing docs.V. Run PHP coding standards on the runner instead of inside wp-env
Branch:
run-phpcs-on-runnerPurpose: Moves
phpcsinto its own job on the runner at PHP 7.4, reporting violations as annotations. It no longer depends onwp-envstarting or repeats on every leg of the PHP matrix, and avoids WPCS 2.x crashing on PHP 8.4.Source: #46510 (part)
W. Let the current Composer release install this branch's dependencies
Branch:
fix-php-matrix-wp-env-compat,pin-composer-image,pin-wp-env-composer-php-version,use-latest-compatible-composerPurpose: Adds
config.allow-plugins(and, on 5.9, 5.8 and 5.7, aconfig.platform.phpvalue) so the current Composer release can install the branch's locked dependencies. Without it,composer installfails on the container's PHP 8.5 before any PHP job starts. It also pinswp-env'scomposerservice to thecomposer:2image instead of the floatingcomposerimage, so it keeps getting Composer 2 releases but a future Composer 3 can't break the install.X. Guard
setAccessible()calls for PHP 8.5Branch:
guard-setaccessible-php85Purpose: Wraps
ReflectionMethod/Property::setAccessible()calls inPHP_VERSION_ID < 80100checks. PHP 8.5 deprecates them, and the branch's PHPUnit config turns the deprecation into test errors on the new PHP 8.5 leg.Source: #79260
Y. Fix the Composer PHP platform override breaking unit tests on older PHP
Branch:
fix-composer-platform-overridePurpose: Removes the workflow step that overrode
platform.phpwith the bare matrix version (e.g.7.2→7.2.0) andcomposer.json's staticconfig.platform.php, and declares the release's minimum PHP asrequire.php. The override made Composer reject dependencies requiring>=7.2.5and failed the older-PHP jobs outright. 6.1 has no override step. 6.0 commits acomposer.lockthat installs on PHP 8.5, so it keepsconfig.platform.phpand lowers it to5.6.20.Source: #73358
Z. Configure the Composer advisory policy
Branch:
configure-composer-advisory-policyPurpose: Tells Composer's advisory policy to ignore advisories whose vulnerable code paths aren't reachable here (the
wp-coding-standards/wpcssniff advisory; on 6.1 and 6.0 also PHPUnit andsymfony/yamladvisories). Without it, Composer refuses everywpcs ^2.2release: the PHP jobs fail at dependency install on branches without acomposer.lock(6.3–6.1), and any dependency update fails on the rest.AA. Ignore the stale Browserslist data warning in unit tests
Branch:
ignore-browserslist-old-dataPurpose: Configures Jest to ignore Browserslist's outdated
caniuse-litewarning.@wordpress/jest-consolefails any test that emits an unexpectedconsole.warn, so whichever suite first touches Browserslist failed for an unrelated reason.Source:
a468930(committed directly towp/7.0)AB. Fix Playwright browser-install failures on Ubuntu 24.04
Branch:
fix-playwright-noble-install,upgrade-playwrightPurpose: Upgrades
@playwright/test(6.6–6.4), runs Playwright onubuntu-22.04(6.3, 6.2), or installs Chromium without--with-deps(6.1, 6.0, which only test Chromium), so the Playwright job works on Noble runners. Older Playwright releases try to install apt packages that were renamed or removed in Ubuntu 24.04.Source: #54051, #61443
AC. Fix theme-activation navigation race in
activate-theme.jsBranch:
fix-activate-theme-navigation-racePurpose: Waits for the full-page navigation after clicking "Activate" in the
activateTheme()e2e helper. Without it, all 19 change-detection tests could time out waiting for the theme to show as active.Not applicable: 6.6 and newer no longer run the Puppeteer suite (
end2end-test.ymlhas only the Playwright job), and the@wordpress/e2e-test-utilson 5.6 and 5.5 has noactivateTheme()helper.AD. Fix flaky block switcher max-columns e2e test
Branch:
fix-flaky-block-switcher-max-columns-testPurpose: Adds a short delay between the two
primary+apresses so the second press sees the first selection and expands it to a multi-block selection.AE. Fix flaky block switcher columns-range e2e test
Branch:
fix-flaky-block-switcher-columns-range-testPurpose: Replaces the asynchronous
Shift+ArrowUpselection with the same delayedprimary+adouble press used by the neighboring test, avoiding a race with the toolbar button click.AF. Ignore empty PHP files in the PHP coding standards scan
Branch:
fix-phpcs-php-deprecation-crashPurpose: Stops PHPCS's
Internal.NoCodeFoundwarning on an intentionally emptyindex.phpplaceholder from failing the coding standards job.AG. Fetch
react-native-screensas a pre-built tarballBranch:
fix-react-native-screens-git-dependencyPurpose: Replaces a git dependency whose
preparescript now fails to compile against the latest@types/node, which brokenpm ciin every CI job.AH. Pin
wp-phpunit/wp-phpunitto the branch's WordPress test bootstrapBranch:
fix-phpunit-executionPurpose: Pins
wp-phpunit/wp-phpunitto the test library matching the branch's WordPress version. On 6.0 and 5.9,^5.4resolved to WordPress 5.8's library, which rejects PHPUnit 8+, so the PHP 7.4/8.0/8.1 legs failed at startup. On 5.8, 5.7 and 5.6 the tests ran against an older release's library, and on 5.5 the old constraint resolved to 2020's5.5.1; on those four branches it also addsyoast/phpunit-polyfills, which their newer libraries require. Because no 5.6.x–5.8.x library accepts PHPUnit 8+, a separate change pins Composer's PHPUnit to 7.5 on 5.8, 5.7 and 5.6.AI. Use PHPUnit Polyfills' fixture method names
Branch:
fix-setup-teardown-polyfillsPurpose: Renames camelCase
setUp()/tearDown()overrides to the polyfills'set_up()/tear_down(). The newer test bootstrap declares the camelCase methods with: void, so the old overrides are a fatal signature mismatch.Not applicable: On 5.8, 5.7, 5.6 and 5.5, the
wp-phpunit/wp-phpunit5.5.x–5.8.x releases still declare untyped camelCasesetUp()/tearDown()onWP_UnitTestCase_Base(extendingPHPUnit\Framework\TestCasedirectly), so the existing overrides stay compatible.AJ. Stop failing PHPUnit on PHP 8.2 deprecation notices
Branch:
allow-php-deprecation-notices-in-phpunitPurpose: Sets
convertDeprecationsToExceptions="false"so deprecation notices from the branch's existing code (dynamic properties, null-to-string,staticcallables) don't fail the PHP 8.2 leg.AK. Fix Test Widget e2e plugin for PHP 8
Branch:
fix-test-widget-php8-compatPurpose: Matches
Test_Widget::update()to its parent's signature. On PHP 8 the mismatch is fatal, so the test plugin can't be activated and the Widgets Customizer tests time out.Source: #34355
AL. Improve reliability of TinyMCE-related tests
Branch:
fix-flaky-metabox-tinymce-init-race,fix-flaky-metabox-tinymce-racePurpose: Makes the meta box e2e test wait for TinyMCE's own
initializedflag instead of the iframe element, so switching editor modes doesn't race TinyMCE's startup. On 6.7 it also clicks the mode-switch tab by its WordPress 6.7 name,Text, instead ofCode.Source: #78631
AM. Fix flaky DataViews list-layout keyboard e2e tests
Branch:
fix-flaky-dataviews-list-keyboard-testsPurpose: Ports two upstream fixes: wait for the Pages list to finish loading before keyboard input, and avoid duplicate page titles that make locators match two rows. 6.8 also ports the Template hierarchy test's own-front-page change (#69692), which the page deletion needs there. 6.6 instead adds explicit page dates, extra load waits from #82117, and focuses the search box instead of clicking it, to avoid a list-layout hit-testing bug fixed upstream in #63299. 6.7 also gives its pages explicit dates and deletes leftover pages in the spec, because its list sorts by date too.
Source: #78054, #78503, #69692, #82117
AN. Swap
phpunit/phpunitfor a release PHP 5.6 and 7.0 can loadBranch:
remove-phpunit-for-old-phpPurpose: On the PHP 5.6/7.0 legs, which use the image's bundled PHPUnit, replaces the Composer-installed PHPUnit 7.5 with the newest release those versions can load (5.7 on PHP 5.6, 6.5 on PHP 7.0), because loading 7.5 is a parse error there. It can't simply be removed, because
yoast/phpunit-polyfills(a dependency of the 5.6.x–5.8.x test libraries) requiresphpunit/phpunit.AO. Stop the
puppeteeralias from changingpackage-lock.jsonBranch:
fix-puppeteer-alias-lockfile-driftPurpose: Pins the dependencies npm 6 re-resolves under the
puppeteernpm alias on every install. Otherwisenpm installrewrites the lockfile and Static Analysis'check-local-changesstep fails.AP. Regenerate stale
core/imagedeprecation fixturesBranch:
fix-stale-image-deprecation-fixturesPurpose: Updates two fixtures to the attribute order the branch's
block.jsonactually produces. A deterministic JS unit test failure, not a flake.AQ. Fix
wp-bindPHP test foresc_url()scheme completionBranch:
fix-wp-bind-esc-url-testPurpose: Changes a test fixture value from
./wordpress.pngto/wordpress.png, because Core'sesc_url()intentionally prefixeshttp://to the relative form.AR. Retry Puppeteer plugin activation/deactivation on timeout
Branch:
retry-plugin-activation-timeoutPurpose: Raises the post-click wait in
activatePlugin/deactivatePluginto 60 seconds and retries up to 3 times. These run inbeforeAll/afterAll, which Jest's test retries don't cover, so one timeout failed a whole file.AS. Fix flaky interactivity router navigate e2e test
Branch:
fix-flaky-router-navigate-testPurpose: Waits until both route handlers have run before releasing either request, so
resolveLink2()is always defined when the test calls it.Source: #80178
AT. Remove the redundant Install NVM step
Branch:
remove-install-nvm-stepPurpose: Removes a step that reinstalls nvm over the copy already present on GitHub-hosted runners. Nothing else depends on it.
Not applicable: The step is in
performance.yml, which only remains on 7.1. A removes it on 7.0 and older, so their PRs were closed on 2026-10-07.AU. Fix flaky Font Library font deletion e2e test
Branch:
fix-flaky-font-library-delete-testPurpose: Waits for the delete confirmation dialog before clicking its "Delete" button, instead of clicking the first "Delete" button twice.
Source: #74067 (part)
AV. Add missing attribute defaults to the Latest Posts render test
Branch:
fix-latest-posts-render-test-attributesPurpose: Adds the attribute defaults the render callback reads without an
isset()check (excerptLength,featuredImageSizeSlug,addLinkToFeaturedImage). PHP 8 makes the missing keys warnings, which the PHPUnit config turns into errors.AW. Use
assertStringContainsString()for string haystacksBranch:
fix-webfonts-test-string-assertionsPurpose: Replaces string-haystack
assertContains()/assertNotContains()calls, which PHPUnit 9 removed, with the polyfilledassertStringContainsString()/assertStringNotContainsString().AX. Fix flaky site editor URL navigation e2e test
Branch:
fix-flaky-site-editor-url-navigationPurpose: Waits for network activity to settle after opening "Add Template", so the "For a specific item" choice appears before the test clicks "Single item: Post".
Source: #73252 (part)
AY. Reset preferences after navigable toolbar e2e tests
Branch:
reset-preferences-after-navigable-toolbar-testsPurpose: Resets preferences through the REST API after each test, instead of toggling the top toolbar off at the end. The debounced save could lose that toggle and break every later post-editor test in the shard.
Source: #78115
AZ. Fix flaky site editor command palette e2e test
Branch:
fix-flaky-command-center-template-testPurpose: Scopes the level-1 heading lookup to the editor top bar so a second heading on the page doesn't trigger a Playwright strict-mode violation.
Source: #62454
Not applicable: 7.1–6.7 already contain #62454. 6.5, 6.4 and 6.3 have the same assertion, but their command palette opens the template in the browse view, which has no editor top bar, so the scoped lookup can't pass (#83737, #83738 and #83739 were closed). 6.2 and older don't have the test.
BA. Pass debug step arguments through to wp-env
Branch:
fix-debug-step-argumentsPurpose: Adds
--afternpm run wp-envin the debug step so npm stops swallowing flags. Every command with a flag ran wrongly: the three--versioncommands printed thewp-envversion, andphp -m,php -iandlocale -alost their flags.Source: #75341
BB. Detect the database client in the debug step
Branch:
detect-db-client-in-debug-stepPurpose: Runs
mariadb --versionormysql --versiondepending on which client the database container has, since the client's name changes across MySQL/MariaDB versions.BC. Fix ReflectionException on PHP 5.6/7.0 in block-pattern REST tests
Branch:
fix-reflection-getstaticpropertyvalue-php7Purpose: Uses
ReflectionProperty::getValue()/setValue()instead ofget/setStaticPropertyValue(), which ignoresetAccessible()on PHP 5.6/7.0 and threw 18 errors per job.BD. Add a
mariadbVersionoption to wp-envBranch:
add-mariadb-version-optionPurpose: Adds a
mariadbVersionconfig option andWP_ENV_MARIADB_VERSIONvariable so the MariaDB versionwp-envruns can be chosen. Without it, every branch runs a floating image far newer than its WordPress release. On 5.6 and 5.5, whosewp-envhas no version settings to extend, only the variable is added.Source: #83751
CQ. Create the
wp-envdevelopment and tests databasesBranch:
create-wp-env-databasesPurpose: Sets
MYSQL_DATABASEso MariaDB creates thewordpressdatabase, and adds atests-mysqlservice fortests-wordpress. Thewordpressimage stopped creating databases in January 2021, so once BE replaces the database check, installing WordPress fails withCan’t select database. A minimal backport of the database part of #29800, which 5.7 and newer have.Source: #29800
BE. Replace wp-env's database check with a MariaDB health check
Branch:
replace-db-check-with-healthcheckPurpose: Ports #75046: waits on a Docker health check instead of
wp db check. The current WP-CLI image's client requires TLS, sowp db checkfails against every MariaDB release before 11.4 and stopswp-env start.Source: #75046
Not applicable: 7.1 and 7.0 already include #75046.
BF. Pin MariaDB to an era-appropriate version
Branch:
pin-mariadb-versionPurpose: Uses the new option (on 5.6 and 5.5, the
WP_ENV_MARIADB_VERSIONvariable in the CI workflows) to pin MariaDB to the latest LTS released before the branch's WordPress release (12.3 down to 10.5, depending on the branch). Unpinned, the database under test keeps drifting forward.CR. Add a
WP_ENV_PHP_VERSIONenvironment variableBranch:
pin-wordpress-images-to-php-7-4Purpose: Adds a
WP_ENV_PHP_VERSIONvariable that picks the PHP version ofwp-env's WordPress and WP-CLI images, defaulting to7.4, the highest PHP version WordPress 5.5 supports. The floatingwordpressimage runs PHP 8.3, where WordPress 5.5'sWP_Query::parse_query()turns every front-end request without a post ID into a 404, failing 10 site editor e2e tests. WordPress 5.6 and newer cast the value and support PHP 8.CS. Pin PHP to 7.4 in CI
Branch:
pin-php-versionPurpose: Sets
WP_ENV_PHP_VERSION: '7.4'in the workflow-levelenv:ofend2end-test.ymlandunit-test.yml, next to BF'sWP_ENV_MARIADB_VERSION, so CI stays on a PHP version WordPress 5.5 supports even if CR's default changes.CT. Run
wp-envon the PHP test matrix versionBranch:
match-wp-env-php-to-test-matrixPurpose: Sets
WP_ENV_PHP_VERSIONto the matrix PHP version on thePHPjob, so each leg's WordPress and WP-CLI containers run the same PHP version as PHPUnit instead of CS's7.4.BG. Replace the removed
assertInternalType()in the block editor testsBranch:
replace-removed-assertinternaltypePurpose: Swaps
assertInternalType(), removed in PHPUnit 9, forassertIsArray()/assertIsInt().BH. Assert URL details request args and schema by key
Branch:
fix-url-details-array-assertionsPurpose: Rewrites two array-in-array
assertContains()checks that only passed under PHPUnit 8's loose comparison as per-key assertions.BI. Initialize
WP_Block_Supports::$block_to_renderin block render testsBranch:
fix-phpunit-testcode-compatPurpose: Sets and restores
WP_Block_Supports::$block_to_renderin tests that call render functions directly. Leftnull, it causes warnings on PHP 8 that the PHPUnit config turns into errors. On 5.8 it also passes ashowSubmenuIconcontext, which that branch's Navigation Link render reads without anisset().BJ. Fix flaky Openverse image drag-and-drop e2e test
Branch:
fix-flaky-openverse-image-drag-and-drop-testPurpose: Mocks the Openverse API and serves local images, matching trunk's #83842. The real search result's image download fails on GitHub runners, so the test failed on every retry.
Source: #83842
BK. Fix flaky router styles stylesheet-failure e2e test
Branch:
fix-flaky-router-styles-refresh-testPurpose: Backports #72783 to 6.9: the route handler aborts only the first stylesheet request instead of unrouting everything, so the refreshed page gets the expected styles.
Source: #72783
BL. Disable the node_modules cache in the Storybook check
Branch:
disable-node-modules-cache-in-storybook-checkPurpose: Stops the Storybook check from saving a
node_modulescache it has modified with an extranpm install, which later jobs restored as a clean install and then failed.BM. Migrate the Query block e2e test to Playwright
Branch:
migrate-query-test-to-playwrightPurpose: Backports #47995, replacing a Puppeteer test that clicked an un-awaited pattern and timed out with its Playwright version.
Source: #47995
BN. Install Xdebug 3.1.6 in wp-env on PHP 7
Branch:
fix-xdebug-pecl-php7Purpose: Installs the last Xdebug release that supports PHP 7 when the environment runs PHP 7.x.
pecl install xdebugotherwise picks a release requiring PHP 8. On 6.2–5.9 this only affects local development, because Xdebug is installed only when it is turned on. On 5.8 it also fixes thePHP 7.4CI legs, because that branch'swp-envinstalls Xdebug on PHP 7.2 and newer whether or not it is turned on. (On 5.7,wp-envinstead skips installing Xdebug when it is turned off, which fixes its PHP 5.6, 7.0 and 7.4 legs.)Source: #50490 (part)
Not applicable: 7.1–6.3 (already have #50490); 5.6 and 5.5 (their
wp-envdoesn't install Xdebug).BO. Pin the Node.js version in the Compressed Size workflow
Branch:
fix-bundle-size-node-versionPurpose: Adds an
actions/setup-nodestep reading.nvmrcbefore the compressed-size action, which otherwise uses the runner's Node.js 22 and fails installing a git dependency.BP. Omit WordPress dependencies when scaffolding in the Create Block check
Branch:
fix-create-block-wp-dependenciesPurpose: Ports part of #37639 so
@wordpress/create-blockstops installing the newest@wordpress/*packages, which require a newer Node.js than the branch runs.Source: #37639 (part)
BQ. Disable remote block patterns in e2e tests
Branch:
disable-remote-patterns-in-e2ePurpose: Backports #33160. Remote patterns from WordPress.org now contain markup from newer releases, which fails block validation console checks in every e2e shard.
Source: #33160
CN. Update the minimum supported WordPress version to 5.7
Branch:
update-minimum-wordpress-versionPurpose: Raises the plugin's minimum WordPress version to 5.7 and removes the compatibility code WordPress 5.7 makes unnecessary: the object-fit polyfill, the
wp-i18ntext direction script, and thealign,custom-classnameandgenerated-classnameblock supports. Replaces an earlier fix (5.8 #84454, 5.7 #84788) that moved the polyfill's URL from unpkg to jsDelivr.Source: #34536
BS. Pin the tt1-blocks theme to 0.4.3
Branch:
pin-tt1-blocks-themePurpose: Backports #28741. The unpinned theme now pulls markup from later Gutenberg releases, which this branch reports as invalid blocks, failing every Site Editor e2e test's console checks.
Source: #28741
BT. Use the Outline dropdown in the Site Editor save flow e2e test
Branch:
fix-site-editor-save-flow-outline-buttonPurpose: Selects the header template part through this branch's "Outline" dropdown. A backported test step expected the List View sidebar, which Gutenberg 9.9 doesn't have.
BU. Pin
phpunit/phpunitto a PHP 5.6/7.0-compatible releaseBranch:
fix-phpunit-dev-dependency-floorPurpose: Constrains
phpunit/phpunitto^5.7on 6.0 and 5.9 so the PHP 5.6 legs don't autoload a PHPUnit release whose syntax they can't parse. 5.9 also resolves againstplatform.php5.6.20and ignoresPKSA-z3gr-8qht-p93vand foursymfony/yamladvisories, includingPKSA-xz3r-9gp4-4m1z(6.0 ignores the same ones in Z). (On 5.8, 5.7 and 5.6 this instead runs PHPUnit 7.5 from Composer for PHP 7.2+, withplatform.php7.4, which 5.6 adds here.) On 5.8, 5.7 and 5.6 it ignores the same five advisories, which the PHP 5.6 legs' PHPUnit 5.7 swap needs. On 5.5 it ignores the foursymfony/yamladvisories that the locked PHPUnit 5.7 needs.BV. Skip the widgets REST controller
test_get_itemstest on PHP 8Branch:
skip-empty-rss-widget-render-in-widgets-testPurpose: Skips one test on PHP 8, where the RSS widget in WordPress 5.7 and 5.6 loops forever on an empty URL and hangs the PHP 8.0 legs. Core fixed this only in later releases.
BW. Skip the Media & Text focal point fixture test before PHP 7.1
Branch:
skip-media-text-float-fixture-before-php-7-1Purpose: Skips one KSES fixture data set on PHP < 7.1, where
json_encode()shortens floats and changes the serialized output.BX. Make the Site Editor export test compatible with PHP 5.6 and 7.0
Branch:
fix-edit-site-export-test-php-compatPurpose: Replaces
ZipArchive::RDONLYandZipArchive::count(), which older PHP versions lack, with equivalents that exist everywhere.BY. Add
wpop_keywordsto the pattern directory test fixturesBranch:
fix-pattern-directory-testsPurpose: Adds the
wpop_keywordsfield Core's pattern directory controller reads, since Core's class (not Gutenberg's) runs these tests on this branch.BZ. Skip the flaky List View global shortcut e2e test
Branch:
skip-flaky-list-view-global-shortcut-testPurpose: Backports #73234, skipping the most frequent e2e failure on the 6.9 stack, a focus race when List View opens.
Source: #73234
CA. Check for a current screen before reading its ID in the global styles settings
Branch:
fix-block-editor-current-screen-nullPurpose: Guards
get_current_screen()->idagainst anullscreen, which caused PHP 8 warnings and failing block editor settings tests.Source: #39543
CB. Skip the flaky multiple completers autocomplete e2e test
Branch:
fix-flaky-autocomplete-multiple-completers-testPurpose: Skips a test that fails because of an autocomplete bug (the user popover reopens and swallows the next input), not the test itself.
CC. Set user fields directly in the
createUser()e2e utilityBranch:
fix-create-user-field-typingPurpose: Backports #37469: sets user form fields with
$eval()instead of typing them, which sometimes truncated the login or names and broke the mentions tests.Source: #37469
CD. Handle a missing widget name when saving a widget in the widgets REST controller
Branch:
fix-widgets-controller-missing-namePurpose: Passes
nullwhen a request has no widgetname, instead of reading the missing key, which is a warning on PHP 8 that fails three tests. This code is plugin-only on 5.7 and 5.6 and never ships in a WordPress release.CE. Open the Styles tab in the multi-entity save font size test
Branch:
fix-flaky-multi-entity-font-size-testPurpose: Opens the block inspector's Styles tab before looking for the font size picker, which lives there. The test has failed on every run since 2026-10-06.
CF. Remove the navigation menu edit permission e2e test
Branch:
fix-nav-edit-permission-e2e-testPurpose: Removes a test that can no longer pass because a WordPress 6.0.11 security change altered the REST capability checks it relied on.
CG. Fix flaky Tabs unit test
Branch:
fix-flaky-tabs-unit-testsPurpose: Backports #58629, waiting for re-renders before keyboard input in a Tabs controlled-mode test.
Source: #58629
CH. Wait for the slash inserter option in the flaky Writing Flow e2e tests
Branch:
fix-flaky-writing-flow-slash-inserter-testsPurpose: Backports part of #73159: waits for the slash inserter's option to be selected before pressing Enter, so a block is always inserted.
Source: #73159 (part)
CI. Fix flaky Pages e2e test Save click
Branch:
fix-flaky-pages-save-button-clickPurpose: Scopes the Save button click to the editor top bar so it doesn't also match the save hub's Save button.
CJ. Retry detached menu item clicks in the Widgets Customizer e2e tests
Branch:
fix-flaky-customizer-inspector-testPurpose: Adds a helper that re-finds and retries a menu item click when the Options menu re-renders and detaches the element.
CK. Only read the template slug when a template exists in the templates REST controller
Branch:
fix-templates-controller-null-templatePurpose: Moves a
$template->slugread inside the branches where$templateexists. Reading it onnullis a warning on PHP 8 that failstest_create_item. This code is plugin-only on 5.7 and never ships in a WordPress release.Source: #32176
CL. Set explicit retention periods for workflow artifacts
Branch:
set-artifact-retention-daysPurpose: Sets
retention-dayson artifacts that otherwise keep GitHub's 90-day default, such as pull request plugin ZIPs, e2e reports and failure artifacts. None of them are needed for that long; this matches trunk's #84525.Source: #84525
Not applicable: 5.6 and 5.5 (their workflows upload no artifacts).
CM. Use the matching wordpress-develop branch for pre-release PHPUnit tests
Branch:
use-matching-phpunit-test-branchPurpose: Backports #84758 so
wp-envloads the PHPUnit test library from the matchingX.Ybranch ofwordpress-developfor alpha, beta and RC versions. The 7.1 branch reports a-alphaversion, so it was loading trunk's test library, which now requires Secrets API code 7.1 doesn't have.Source: #84758
Not applicable: 7.0 and older (their
X.Y-branchcurrently reports a release version, sowp-envuses its tag).CU. Remove the unused flaky test report uploads and reporter
Branch:
remove-flaky-test-report-leftoversPurpose: Removes what still produced the flaky test report after A (6.1–5.9) or I (7.0–6.2) removed the only thing that read it: the "Archive flaky tests report" upload steps, the "Merge flaky tests reports" step (7.0–6.6), the Playwright
flaky-tests-reporter.ts(7.0–6.0), the unused local.github/report-flaky-testsaction (6.0 and 5.9), and the docs sentence saying flaky tests are reported to GitHub issues. The Puppeteer reporter in the published@wordpress/e2e-testspackage and thepackages/report-flaky-testsworkspace package stay, so no package changes.Not applicable: 7.1 still reports flaky tests, and 5.8 and older have no flaky test reporting.
CV. Run macOS and Windows jobs only on WordPress/gutenberg
Branch:
limit-fork-runner-osPurpose: Picks the OS list of the matrices that use macOS or Windows runners (
create-block.yml, andstatic-checks.ymlon 7.1 and 7.0) by repository: every OS on WordPress/gutenberg, including pull requests from forks, and only Ubuntu inside forks, because macOS and Windows minutes cost more. On 7.1–6.9 it replaces theevent-based pull request excludes inherited fromtrunk.Not applicable: 5.9 and older run no macOS or Windows jobs.
CW. Fix the flaky switch to draft step in the preview e2e test
Branch:
fix-flaky-preview-switch-to-draftPurpose: Fixes the flaky Puppeteer
Preview › should display the correct preview when switching between published and draft statusestest. After "Switch to draft", it clicks the confirmation dialog's "OK" button instead of pressing Enter and waits for the "Publish" button before editing again, porting the relevant parts of #41380 and #43874 from the later Playwright version of the test.Source: #41380, #43874
Not applicable: 7.1–6.1 (the Playwright version already has both fixes) and 5.9 and older (no such test).
CZ. Upload each E2E job's debug artifacts under its own name
Branch:
fix-e2e-artifact-name-collisionsPurpose: Gives each E2E
failures-artifactsupload inend2end-test.ymlits own name (a Puppeteer or Playwright prefix plus the shard number) and adds amerge-artifactsjob that combines them into onefailures-artifactsartifact. Sinceactions/upload-artifactv4, uploads with the same name create separate artifacts instead of adding to one, so shards sharing a name leave several identical-lookingfailures-artifactsartifacts, and downloading by name returns only one of them. Matches what 6.6 and newer already do.Source: #61338
Not applicable: 7.1–6.6 already name artifacts per shard and merge them, and 5.6 and 5.5 upload no E2E artifacts.
CY. Pin the PHP version used by the end-to-end tests
Branch:
pin-e2e-php-versionPurpose: Sets
WP_ENV_PHP_VERSIONin the end-to-end workflows to the highest PHP version each WordPress release supports: 8.0 on 5.8–5.6, 8.1 on 6.0 and 5.9, 8.2 on 6.3–6.1, 8.3 on 6.6–6.4, 8.4 on 6.8 and 6.7, and 8.5 on 7.1–6.9. Without it,wp-envbuilds the end-to-end containers from the floatingwordpressimage, which is PHP 8.3 today, newer than 6.3 and older support, and changes whenever Docker Hub moves itslatesttag. On 5.6,wp-envhas no PHP option, so this also backports theWP_ENV_PHP_VERSIONvariable from 5.5's #85012.Not applicable: 5.5 already pins PHP 7.4, its highest supported version (#85013). The 7.1 performance tests are not pinned.
DA. Fix the flaky Comment Query Loop pagination test
Branch:
fix-flaky-comment-query-loop-paginationPurpose: Fixes the flaky Puppeteer
Comment Query Loop › Pagination links are working as expectedtest, which failed in about 13% of runs. After a comment is posted, WordPress redirects to the comment's page, whichget_page_of_comment()works out from comment dates stored to the second; when the test's second and third comments share a second, the redirect goes to page 2 and the pagination checks fail. The test now loads the post itself after posting the comments, so WordPress shows the newest comments page based on the comment count.Source: None; #39826's Playwright version avoids the problem by opening the post through the "View Post" link after creating the comments.
Not applicable: 7.1–6.1 (the Playwright version opens the post after creating the comments) and 5.9 and older (no such test).
DB. Fix flaky Composite and Tabs unit tests
Branch:
fix-flaky-composite-unit-testsPurpose: Fixes a flaky
Compositeunit test that failed theUnit Tests / JavaScriptjob on 6.5, where focus stayed on Item 1 after pressing Tab. It waits for rendering to finish before pressing Tab and for focus to move before checking it, in that test and in oneTabstest with the same timing problem.Source: #58968
Not applicable: every other branch. 6.6 already has the fix, and 7.1–6.7 fixed the underlying cause by upgrading
@ariakit/test.desrosj commentedon Oct 16, 2026
A call for reviewers has been published on Make Core: https://make.wordpress.org/core/2026/10/16/call-for-code-review-help-repairing-gutenberg-github-actions-workflows-for-wp-x-y-branches/.
rejaulalomkhan commentedon Oct 18, 2026
I would like to claim row CA (
Check for a current screen before reading its ID in the global styles settings- PRs #84424 and #84459). Reviewing both PRs now!rejaulalomkhan commentedon Oct 18, 2026
Row CA is complete — both #84424 (
wp/5.9) and #84459 (wp/5.8) have been reviewed and approved.lucatume commentedon Oct 19, 2026
Claiming row A (
Remove obsolete and trunk-only workflows) and starting work on it.adimoldovan commentedon Oct 19, 2026
Claiming row B
adimoldovan commentedon Oct 19, 2026
Claiming row C.
desrosj commentedon Oct 19, 2026
Thank you for all the reviews so far, everyone!
I've been addressing them as they come in and I'm able, requesting a new review from the original reviewer after adding a response or addressing feedback.
Since opening this, the 5.6 and 5.5 branches are now fully pushed and ready for review. Branches 5.4 and earlier did not have any GitHub Actions workflows, so these will have their own list of changes included in their respective stacks and will be reviewed in a separate PR.
I also just pushed changes to multiple stacks addressing issues flagged during a thorough review that I had AI perform with consistency and accuracy in mind. Most of these were minor changes, and there were both code and PR body changes made. But many did require the full PR stack to be rebased, so there may potentially be some new failures that I will follow up on after the Actions queue clears.
The table and list of fixes in the first comment above have been updated and should now be accurate.
lucatume commentedon Oct 20, 2026
Claiming D
ntsekouras commentedon Oct 20, 2026
ntsekouras commentedon Oct 20, 2026
@desrosj before I start reviewing row E, two things:
WordPress/props-bot-action@trunkinprops-bot.ymlis still unpinned on 7.1-6.5, up to the top of each stack. Trunk pins it to6ff24f6b95fee6aeee3f49a8365cb62a525b2ce7 # trunk. Should we pin it in E too, since it runs onpull_request_target?setup-node v7.1.0, upload-artifact v7.0.2, download-artifact v8.0.2, setup-oras v2.0.2, setup-php 2.40.0). No strong opinions, but if you want to sync them it's probably better to do it before I review, no?adimoldovan commentedon Oct 20, 2026
Claiming F.
desrosj commentedon Oct 20, 2026
@ntsekouras Thanks for pitching in!
Good questions. I do plan on applying these updates. However, because row E sits fairly far down the stack, it will require quite a bit of rebasing which will cause an avalanche of workflow runs to jam up the queue for about an hour.
The long-term plan is actually to remove the logic from these
wp/X.Ybranches entirely in favor of the same reusable workflow pattern thatwordpress-developuses. Once that is done, the actions only need to be updated intrunk. The changes in these versions are pretty minor, so I may just leave them as is and use that second phase effort to apply the updates across allwp/X.Ybranches.Feel free to note that in your review and point back to this comment. Thanks again!
ntsekouras commentedon Oct 20, 2026
desrosj commentedon Oct 20, 2026
A procedural note: I have had Claude update the chart above with ✅ and ☑️ emoji to show which PRs have reviews, and which fixes are fully reviewed.
There's no need to update this. I have an AI agent that will refresh this a few times a day.
ntsekouras commentedon Oct 21, 2026
@desrosj one thing about the e2e artifacts on 6.5 and older. Since
upload-artifactv4+ doesn't allow uploading to the same artifact name twice in a run, the Playwright/Puppeteer shards that all uploadfailures-artifactswill conflict when more than one shard has files to upload, so we'd lose debug artifacts and could get a red shard from the upload step itself (e.g. flaky retries in passing shards). It doesn't show in CI right now because no shard uploads anything.Trunk fixed this in #61338, which landed after 6.5 was branched. 6.5 was already on
upload-artifactv4.3.1 before E and I missed it when approving #82990, and E brings the same to 6.4 and older (v3 → v7).I don't think this should block E, so I'll continue reviewing it. I think we should add a new row on top of the 6.5 and older stacks backporting #61338 (including the Puppeteer jobs), like the recent rows, so no rebasing is needed. What do you think?
desrosj commentedon Oct 21, 2026
@ntsekouras I think we can address this in a new PR on the top of the stack. I will add that shortly.
As an overall update, I just synced the table in the PR body and we have just about made it to 1/3 of the way there!
Thank you everyone for pitching in here so far!
desrosj commentedon Oct 21, 2026
This was addressed in new PRs created for the 6.5-5.7 branches, which have been placed on top of each PR stack, and added as row CY.
adimoldovan commentedon Oct 22, 2026
Claiming row Q.
lucatume commentedon Oct 23, 2026
Claiming row R
lucatume commentedon Oct 23, 2026
Claiming line U