Skip to content

Reviewing PR stacks aimed at restoring automated testing capabilities and GitHub Actions workflows for wp/X.Y branches #84853

Closed

Description

@desrosj

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 108 of 110 98.2%
Cells completed 557 of 560 99.5%
Rows not started 2 of 110 1.8%

Last updated: 2026-10-28 12:30 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 ✅ 10 - 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 ✅ 11 - 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 ✅ 12 - 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 @ntsekouras 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 12 @ntsekouras N/A ✅ 16 - 83467 ✅ 16 - 83468 ✅ 16 - 83469 ✅ 16 - 82905 ✅ 18 - 83465 ✅ 22 - 83466 N/A N/A N/A N/A ✅ 40 - 85576 ✅ 38 - 85577 ✅ 36 - 85578 ✅ 39 - 85579 ✅ 29 - 85581 ✅ 28 - 85583
✅ 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 ✅ 13 - 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 @andrewserong ✅ 14 - 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 @andrewserong 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 @andrewserong 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 @ntsekouras ✅ 17 - 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 @andrewserong ✅ 15 - 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 @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 N/A ✅ 20 - 84971 ✅ 20 - 85009
✅ BE. Replace wp-env's database check with a MariaDB health check 15 @ntsekouras 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 @ntsekouras ✅ 16 - 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 ✅ 18 - 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 ✅ 19 - 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 @ntsekouras 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 @ramonjd 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 @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 ✅ 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 @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 ✅ 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. Set the font size through the block editor store in the multi-entity save test 1 @ramonjd 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 @tellthemachines 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 and block hierarchy 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 ✅ 20 - 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 ✅ 21 - 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 ✅ 22 - 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 ✅ 23 - 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
✅ DC. Pin the composer image used by wp-env to Composer 2 1 @ramonjd N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A ✅ 39 - 85527 N/A N/A N/A N/A N/A
✅ DD. Improve reliability of the TypeWriter E2E 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 N/A N/A N/A ✅ 40 - 85580 N/A N/A
✅ DE. Fix the flaky WP Editor Meta Boxes e2e test 1 @ntsekouras ✅ 24 - 85585 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
DF. Fix flaky component unit tests that press Tab 1 N/A N/A N/A N/A N/A N/A 38 - 85682 N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A
DG. Fix flaky deferred store e2e test 2 N/A N/A N/A N/A N/A 34 - 85684 39 - 85683 N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A

110 fixes, 560 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 24 28 35 31 31 34 39 37 32 30 28 40 38 36 40 29 28 560

Activity

  1. added theissue type on Oct 15, 2026
  2. added
    [Type] TaskIssues or PRs that have been broken down into an individual action to take
    on Oct 15, 2026
  3. desrosj commented on Oct 15, 2026

    @desrosj
    MemberAuthor

    Fixes

    A. Remove obsolete and trunk-only workflows

    Branch: remove-rn-workflows

    Purpose: Deletes workflows that do no useful work on a wp/X.Y branch: scheduled and workflow_run jobs and pull_request_target automation (which always run the default branch's copy), React Native workflows, changelog and PHP-sync checks meant for trunk development, and plugin-release automation that only runs from trunk or release/*. It also removes the performance tests, which are only maintained for the current WordPress release, and on 5.7 and 5.6 cancel.yml, which native concurrency replaces. 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-timeouts

    Purpose: Adds timeout-minutes to 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 in playwright install --with-deps during an apt mirror outage on 2026-10-07.

    Source: #46510, #80801

    C. Reference trunk's reusable workflow-lint job

    Branch: reference-trunk-workflow-lint

    Purpose: Points workflow-lint.yml at trunk's reusable workflow-lint job instead of a local copy, and ports the branch filters from #82744 so workflow linting actually runs on wp/X.Y branches.

    Source: #82744

    Not applicable: 6.8 and older have no workflow-lint.yml or reusable-workflow-lint.yml, so there is nothing to point at trunk.

    D. Disable npm caching in release workflows

    Branch: disable-cache-for-release-builds

    Purpose: Sets package-manager-cache: false on every actions/setup-node step 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 their build-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-latest

    Purpose: 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 --version debug check

    Branch: remove-svn-version-debug-check

    Purpose: Drops the svn --version line 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 no test-php debug step.

    G. Refine push branch filters

    Branch: fix-workflow-branch-filters

    Purpose: Ports #82744's push: branch filters (trunk, release/X.Y, wp/X.Y, wp/latest, wp/next), so create-block.yml (and on 5.7/5.6 every workflow that only listed master) runs on a direct push to wp/X.Y, and the loose release/**/wp/** globs become #82744's exact patterns. pull_request triggers stay unfiltered. On 7.1–6.9 the workflow-lint.yml half of #82744 is in C.

    Source: #82744

    H. Add concurrency configuration to workflows

    Branch: add-workflow-concurrency

    Purpose: 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 old cancel.yml workflow that A removes.

    Source: #32016

    I. Remove the broken flaky-test issue reporting job

    Branch: disable-flaky-test-issue-reporting

    Purpose: Removes the report-to-issues job. It checks out live trunk and runs trunk's report-flaky-tests action, which no longer fits this branch: on 7.0 and 6.9 the action requires an output-path input the job never passes, and on 6.8–6.2 the job's npm run build:packages step 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-issues job.

    J. Remove SimenB/github-actions-cpu-cores dependency

    Branch: remove-cpu-cores-dependency

    Purpose: Replaces the third-party action that only fed Jest's --maxWorkers with nproc, 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-job

    Purpose: Removes the mobile-unit-js job from unit-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 with if: 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-version

    Purpose: Passes --wp-version to the performance CLI so the "Compare performance with base branch" step measures against WordPress 7.1 instead of silently falling back to WordPress trunk.

    Not applicable: performance.yml only 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-testing

    Purpose: 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 no check-latest, so those PRs only drop the redundant matrix. Only the Node.js parts change: on 7.1–6.9 the pull request OS exclude entries in create-block.yml and static-checks.yml stay until CV replaces them. On 5.8, whose workflows key the ~/.npm cache 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 *-latest

    Branch: pin-runner-images

    Purpose: Replaces the floating ubuntu-latest/windows-latest/macos-latest labels 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.9 already contains #71201 and has no *-latest runner labels.

    O. Always read the Node.js version from .nvmrc

    Branch: read-node-version-from-nvmrc

    Purpose: Replaces the hardcoded node-version values left in the workflows with node-version-file: '.nvmrc' so .nvmrc is the single source of truth. No functional change.

    Not applicable: 5.9 and newer already read .nvmrc everywhere.

    P. Upgrade Node.js from 16 to 20

    Branch: upgrade-node-to-20

    Purpose: 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-14

    Purpose: Moves .nvmrc from Node.js 12 to 14, with the nodegit and node-sass bumps npm ci needs to get prebuilt Node 14 binaries. 5.7 and newer already run Node 14 or later, and Node 12 can't load the docker-compose (npm) releases after 0.24.0.

    Q. Migrate wp-env to Docker Compose v2

    Branch: docker-compose-v2, fix-docker-compose-v2-debug-step

    Purpose: Moves wp-env from the standalone docker-compose v1 binary to the docker compose v2 plugin and, where the step exists (6.5–6.2), removes the docker-compose -v debug 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 -v step.

    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-env fixes 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 start fails with apt-get 404s for the affected PHP versions. The bullseye-security sources 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-security change from #85469, at the top of the stack.

    S. Pin wp-env to the correct WordPress Core version

    Branch: pin-wp-env-core-version

    Purpose: Pins .wp-env.json to the matching WordPress/WordPress#X.Y-branch and removes the WordPress version matrix. Unpinned, wp-env tracks Core trunk, so the frozen branch's tests ran against an unrelated, moving version of WordPress.

    Not applicable: 6.1 and older already pin .wp-env.json to WordPress/WordPress#X.Y-branch and have no WordPress version matrix.

    CP. Remove the Axe check that runs after every e2e test

    Branch: remove-global-axe-e2e-check

    Purpose: Removes the global afterEach Axe 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' onerror images 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-matrix

    Purpose: 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 event dimension they used, so pull requests run every leg. fail-fast stays true, as on trunk. On 7.1–5.6 the PHP test jobs' names leave out the operating system (they ended in on Linux, on ubuntu-latest or on 'ubuntu-24.04'), which doesn't matter for these jobs.

    Source: #46510 (part)

    CX. Use PHPUnit 9 for PHP 7.3 through 8.2

    Branch: use-phpunit-9-for-php-7-3-plus

    Purpose: Backports the wp-env change 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 to wordpressdevelop/phpunit:latest (PHP 8.2), and the 7.4 legs run PHPUnit 8.5.

    Source: #46510 (part)

    U. Remove the spatie/phpunit-watcher dev dependency

    Branch: remove-phpunit-watcher

    Purpose: Drops a local-only convenience dependency whose symfony/polyfill-php80 autoload file is a parse error on PHP 5.6/7.0, which crashes every older-PHP leg before a single test runs. It also deletes phpunit-watcher.yml.dist and the watcher instructions in the testing docs.

    V. Run PHP coding standards on the runner instead of inside wp-env

    Branch: run-phpcs-on-runner

    Purpose: Moves phpcs into its own job on the runner at PHP 7.4, reporting violations as annotations. It no longer depends on wp-env starting 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-composer

    Purpose: Adds config.allow-plugins (and, on 5.9, 5.8 and 5.7, a config.platform.php value) so the current Composer release can install the branch's locked dependencies. Without it, composer install fails on the container's PHP 8.5 before any PHP job starts. It also pins wp-env's composer service to the composer:2 image instead of the floating composer image, so it keeps getting Composer 2 releases but a future Composer 3 can't break the install.

    X. Guard setAccessible() calls for PHP 8.5

    Branch: guard-setaccessible-php85

    Purpose: Wraps ReflectionMethod/Property::setAccessible() calls in PHP_VERSION_ID < 80100 checks. 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-override

    Purpose: Removes the workflow step that overrode platform.php with the bare matrix version (e.g. 7.2 → 7.2.0) and composer.json's static config.platform.php, and declares the release's minimum PHP as require.php. The override made Composer reject dependencies requiring >=7.2.5 and failed the older-PHP jobs outright. 6.1 has no override step. 6.0 commits a composer.lock that installs on PHP 8.5, so it keeps config.platform.php and lowers it to 5.6.20.

    Source: #73358

    Z. Configure the Composer advisory policy

    Branch: configure-composer-advisory-policy

    Purpose: Tells Composer's advisory policy to ignore advisories whose vulnerable code paths aren't reachable here (the wp-coding-standards/wpcs sniff advisory; on 6.1 and 6.0 also PHPUnit and symfony/yaml advisories). Without it, Composer refuses every wpcs ^2.2 release: the PHP jobs fail at dependency install on branches without a composer.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-data

    Purpose: Configures Jest to ignore Browserslist's outdated caniuse-lite warning. @wordpress/jest-console fails any test that emits an unexpected console.warn, so whichever suite first touches Browserslist failed for an unrelated reason.

    Source: a468930 (committed directly to wp/7.0)

    AB. Fix Playwright browser-install failures on Ubuntu 24.04

    Branch: fix-playwright-noble-install, upgrade-playwright

    Purpose: Upgrades @playwright/test (6.6–6.4), runs Playwright on ubuntu-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.js

    Branch: fix-activate-theme-navigation-race

    Purpose: 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.yml has only the Playwright job), and the @wordpress/e2e-test-utils on 5.6 and 5.5 has no activateTheme() helper.

    AD. Fix flaky block switcher max-columns e2e test

    Branch: fix-flaky-block-switcher-max-columns-test

    Purpose: Adds a short delay between the two primary+a presses 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-test

    Purpose: Replaces the asynchronous Shift+ArrowUp selection with the same delayed primary+a double 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-crash

    Purpose: Stops PHPCS's Internal.NoCodeFound warning on an intentionally empty index.php placeholder from failing the coding standards job.

    AG. Fetch react-native-screens as a pre-built tarball

    Branch: fix-react-native-screens-git-dependency

    Purpose: Replaces a git dependency whose prepare script now fails to compile against the latest @types/node, which broke npm ci in every CI job.

    AH. Pin wp-phpunit/wp-phpunit to the branch's WordPress test bootstrap

    Branch: fix-phpunit-execution

    Purpose: Pins wp-phpunit/wp-phpunit to the test library matching the branch's WordPress version. On 6.0 and 5.9, ^5.4 resolved 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's 5.5.1; on those four branches it also adds yoast/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-polyfills

    Purpose: 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-phpunit 5.5.x–5.8.x releases still declare untyped camelCase setUp()/tearDown() on WP_UnitTestCase_Base (extending PHPUnit\Framework\TestCase directly), so the existing overrides stay compatible.

    AJ. Stop failing PHPUnit on PHP 8.2 deprecation notices

    Branch: allow-php-deprecation-notices-in-phpunit

    Purpose: Sets convertDeprecationsToExceptions="false" so deprecation notices from the branch's existing code (dynamic properties, null-to-string, static callables) don't fail the PHP 8.2 leg.

    AK. Fix Test Widget e2e plugin for PHP 8

    Branch: fix-test-widget-php8-compat

    Purpose: 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-race

    Purpose: Makes the meta box e2e test wait for TinyMCE's own initialized flag 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 of Code. 6.0–5.5 still have the Puppeteer version of the test, which never waited for TinyMCE, so there a small page.waitForFunction() helper waits before switching to Text mode and after switching back to Visual.

    Source: #78631

    AM. Fix flaky DataViews list-layout keyboard e2e tests

    Branch: fix-flaky-dataviews-list-keyboard-tests

    Purpose: 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/phpunit for a release PHP 5.6 and 7.0 can load

    Branch: remove-phpunit-for-old-php

    Purpose: 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) requires phpunit/phpunit.

    AO. Stop the puppeteer alias from changing package-lock.json

    Branch: fix-puppeteer-alias-lockfile-drift

    Purpose: Pins the dependencies npm 6 re-resolves under the puppeteer npm alias on every install. Otherwise npm install rewrites the lockfile and Static Analysis' check-local-changes step fails.

    AP. Regenerate stale core/image deprecation fixtures

    Branch: fix-stale-image-deprecation-fixtures

    Purpose: Updates two fixtures to the attribute order the branch's block.json actually produces. A deterministic JS unit test failure, not a flake.

    AQ. Fix wp-bind PHP test for esc_url() scheme completion

    Branch: fix-wp-bind-esc-url-test

    Purpose: Changes a test fixture value from ./wordpress.png to /wordpress.png, because Core's esc_url() intentionally prefixes http:// to the relative form.

    AR. Retry Puppeteer plugin activation/deactivation on timeout

    Branch: retry-plugin-activation-timeout

    Purpose: Raises the post-click wait in activatePlugin/deactivatePlugin to 60 seconds and retries up to 3 times. These run in beforeAll/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-test

    Purpose: 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-step

    Purpose: 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-test

    Purpose: 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-attributes

    Purpose: 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 haystacks

    Branch: fix-webfonts-test-string-assertions

    Purpose: Replaces string-haystack assertContains()/assertNotContains() calls, which PHPUnit 9 removed, with the polyfilled assertStringContainsString()/assertStringNotContainsString().

    AX. Fix flaky site editor URL navigation e2e test

    Branch: fix-flaky-site-editor-url-navigation

    Purpose: 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-tests

    Purpose: 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-test

    Purpose: 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-arguments

    Purpose: Adds -- after npm run wp-env in the debug step so npm stops swallowing flags. Every command with a flag ran wrongly: the three --version commands printed the wp-env version, and php -m, php -i and locale -a lost their flags.

    Source: #75341

    BB. Detect the database client in the debug step

    Branch: detect-db-client-in-debug-step

    Purpose: Runs mariadb --version or mysql --version depending 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-php7

    Purpose: Uses ReflectionProperty::getValue()/setValue() instead of get/setStaticPropertyValue(), which ignore setAccessible() on PHP 5.6/7.0 and threw 18 errors per job.

    BD. Add a mariadbVersion option to wp-env

    Branch: add-mariadb-version-option

    Purpose: Adds a mariadbVersion config option and WP_ENV_MARIADB_VERSION variable so the MariaDB version wp-env runs can be chosen. Without it, every branch runs a floating image far newer than its WordPress release. On 5.6 and 5.5, whose wp-env has no version settings to extend, only the variable is added.

    Source: #83751

    CQ. Create the wp-env development and tests databases

    Branch: create-wp-env-databases

    Purpose: Sets MYSQL_DATABASE so MariaDB creates the wordpress database, and adds a tests-mysql service for tests-wordpress. The wordpress image stopped creating databases in January 2021, so once BE replaces the database check, installing WordPress fails with Can’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-healthcheck

    Purpose: Ports #75046: waits on a Docker health check instead of wp db check. The current WP-CLI image's client requires TLS, so wp db check fails against every MariaDB release before 11.4 and stops wp-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-version

    Purpose: Uses the new option (on 5.6 and 5.5, the WP_ENV_MARIADB_VERSION variable 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_VERSION environment variable

    Branch: pin-wordpress-images-to-php-7-4

    Purpose: Adds a WP_ENV_PHP_VERSION variable that picks the PHP version of wp-env's WordPress and WP-CLI images, defaulting to 7.4, the highest PHP version WordPress 5.5 supports. The floating wordpress image runs PHP 8.3, where WordPress 5.5's WP_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-version

    Purpose: Sets WP_ENV_PHP_VERSION: '7.4' in the workflow-level env: of end2end-test.yml and unit-test.yml, next to BF's WP_ENV_MARIADB_VERSION, so CI stays on a PHP version WordPress 5.5 supports even if CR's default changes.

    CT. Run wp-env on the PHP test matrix version

    Branch: match-wp-env-php-to-test-matrix

    Purpose: Sets WP_ENV_PHP_VERSION to the matrix PHP version on the PHP job, so each leg's WordPress and WP-CLI containers run the same PHP version as PHPUnit instead of CS's 7.4.

    BG. Replace the removed assertInternalType() in the block editor tests

    Branch: replace-removed-assertinternaltype

    Purpose: Swaps assertInternalType(), removed in PHPUnit 9, for assertIsArray()/assertIsInt().

    BH. Assert URL details request args and schema by key

    Branch: fix-url-details-array-assertions

    Purpose: 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_render in block render tests

    Branch: fix-phpunit-testcode-compat

    Purpose: Sets and restores WP_Block_Supports::$block_to_render in tests that call render functions directly. Left null, it causes warnings on PHP 8 that the PHPUnit config turns into errors. On 5.8 it also passes a showSubmenuIcon context, which that branch's Navigation Link render reads without an isset().

    BJ. Fix flaky Openverse image drag-and-drop e2e test

    Branch: fix-flaky-openverse-image-drag-and-drop-test

    Purpose: 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-test

    Purpose: 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-check

    Purpose: Stops the Storybook check from saving a node_modules cache it has modified with an extra npm 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-playwright

    Purpose: 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-php7

    Purpose: Installs the last Xdebug release that supports PHP 7 when the environment runs PHP 7.x. pecl install xdebug otherwise 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 the PHP 7.4 CI legs, because that branch's wp-env installs Xdebug on PHP 7.2 and newer whether or not it is turned on. (On 5.7, wp-env instead 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-env doesn't install Xdebug).

    BO. Pin the Node.js version in the Compressed Size workflow

    Branch: fix-bundle-size-node-version

    Purpose: Adds an actions/setup-node step reading .nvmrc before 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-dependencies

    Purpose: Ports part of #37639 so @wordpress/create-block stops 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-e2e

    Purpose: 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-version

    Purpose: 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-i18n text direction script, and the align, custom-classname and generated-classname block 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-theme

    Purpose: 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-button

    Purpose: 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/phpunit to a PHP 5.6/7.0-compatible release

    Branch: fix-phpunit-dev-dependency-floor

    Purpose: Constrains phpunit/phpunit to ^5.7 on 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 against platform.php 5.6.20 and ignores PKSA-z3gr-8qht-p93v and four symfony/yaml advisories, including PKSA-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+, with platform.php 7.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 four symfony/yaml advisories that the locked PHPUnit 5.7 needs.

    BV. Skip the widgets REST controller test_get_items test on PHP 8

    Branch: skip-empty-rss-widget-render-in-widgets-test

    Purpose: 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-1

    Purpose: 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-compat

    Purpose: Replaces ZipArchive::RDONLY and ZipArchive::count(), which older PHP versions lack, with equivalents that exist everywhere.

    BY. Add wpop_keywords to the pattern directory test fixtures

    Branch: fix-pattern-directory-tests

    Purpose: Adds the wpop_keywords field 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-test

    Purpose: 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-null

    Purpose: Guards get_current_screen()->id against a null screen, 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-test

    Purpose: 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 utility

    Branch: fix-create-user-field-typing

    Purpose: 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-name

    Purpose: Passes null when a request has no widget name, 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. Set the font size through the block editor store in the multi-entity save test

    Branch: fix-flaky-multi-entity-font-size-test

    Purpose: Sets the paragraph's font size through the block editor store instead of clicking the font size picker, which on 6.3 sits on the inspector's Styles tab and does not reliably change the block under test. It also waits for the first save to finish before changing the attribute again. 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-test

    Purpose: 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-tests

    Purpose: 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 and block hierarchy e2e tests

    Branch: fix-flaky-writing-flow-slash-inserter-tests

    Purpose: Backports the writing-flow.spec.js and block-hierarchy-navigation.spec.js parts of #73159: the Writing Flow tests that type /image and /table, and the block hierarchy test that types /spacer, now wait for the slash inserter's option to be selected before pressing Enter, so a block is always inserted. The content-only-lock.spec.js part is not ported.

    Source: #73159 (part)

    Not applicable: 7.1 and 7.0 already include #73159. 6.8–6.3 have these tests without the waits, but none of them was seen failing or flaky on those stacks. 6.2–5.6 have the Writing Flow tests (Puppeteer on 6.0 and older), which only failed inside 5.8's since-fixed mass e2e failures; 6.2 and 6.1's block hierarchy test is Puppeteer and doesn't use the slash inserter.

    CI. Fix flaky Pages e2e test Save click

    Branch: fix-flaky-pages-save-button-click

    Purpose: 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-test

    Purpose: 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-template

    Purpose: Moves a $template->slug read inside the branches where $template exists. Reading it on null is a warning on PHP 8 that fails test_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-days

    Purpose: Sets retention-days on 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-branch

    Purpose: Backports #84758 so wp-env loads the PHPUnit test library from the matching X.Y branch of wordpress-develop for alpha, beta and RC versions. The 7.1 branch reports a -alpha version, 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-branch currently reports a release version, so wp-env uses its tag).

    CU. Remove the unused flaky test report uploads and reporter

    Branch: remove-flaky-test-report-leftovers

    Purpose: 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-tests action (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-tests package and the packages/report-flaky-tests workspace 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-os

    Purpose: Picks the OS list of the matrices that use macOS or Windows runners (create-block.yml, and static-checks.yml on 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 the event-based pull request excludes inherited from trunk.

    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-draft

    Purpose: Fixes the flaky Puppeteer Preview › should display the correct preview when switching between published and draft statuses test. 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-collisions

    Purpose: Gives each E2E failures-artifacts upload in end2end-test.yml its own name (a Puppeteer or Playwright prefix plus the shard number) and adds a merge-artifacts job that combines them into one failures-artifacts artifact. Since actions/upload-artifact v4, uploads with the same name create separate artifacts instead of adding to one, so shards sharing a name leave several identical-looking failures-artifacts artifacts, 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-version

    Purpose: Sets WP_ENV_PHP_VERSION in 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-env builds the end-to-end containers from the floating wordpress image, which is PHP 8.3 today, newer than 6.3 and older support, and changes whenever Docker Hub moves its latest tag. On 5.6, wp-env has no PHP option, so this also backports the WP_ENV_PHP_VERSION variable 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-pagination

    Purpose: Fixes the flaky Puppeteer Comment Query Loop › Pagination links are working as expected test, which failed in about 13% of runs. After a comment is posted, WordPress redirects to the comment's page, which get_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-tests

    Purpose: Fixes a flaky Composite unit test that failed the Unit Tests / JavaScript job 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 one Tabs test 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.

    DC. Pin the composer image used by wp-env to Composer 2

    Branch: pin-wp-env-composer-image

    Purpose: Pins wp-env's composer service to the composer:2 image instead of the floating composer image, the same pin W adds on 5.9–5.5. 6.0's unit-php jobs install their Composer dependencies through that service, so it keeps getting Composer 2 releases but a future Composer 3 can't break the install. 6.0 has no PR in W because its composer.json already declares allow-plugins.

    Source: None; trunk's wp-env no longer has a composer service.

    Not applicable: 7.1–6.3 (no composer service in wp-env), 6.2 and 6.1 (CI installs Composer on the runner and never uses the service), and 5.9–5.5 (pinned in W).

    DD. Improve reliability of the TypeWriter E2E test

    Branch: fix-flaky-typewriter-caret-test

    Purpose: Fixes the flaky TypeWriter › should maintain caret position after scroll test, which failed on 5.7 with the caret 64px out of place. It waits one animation frame after scrolling before reading the caret position, so the caret rectangle has been recalculated.

    Source: #31472

    Not applicable: 6.4–5.8, which already have #31472; 7.1–6.5, which run a Playwright version of the test; and 5.6–5.5, which have an older version of the test that the fix doesn't apply to. Porting #28376 first doesn't work there, because their Puppeteer 3.0.0 has no page.mouse.wheel().

    DE. Fix the flaky WP Editor Meta Boxes e2e test

    Branch: fix-flaky-wp-editor-meta-box-test

    Purpose: Fixes the WP Editor Meta Boxes › Should save the changes test, which fails or is flaky in about 12% of e2e runs on 7.1. The test re-creates the test_tinymce_id TinyMCE editor from tinyMCEPreInit.mceInit after the editor mounts, because moving the meta box form with appendChild can reload TinyMCE's iframe mid-init. It also opens the meta box pane only when it isn't already open, because that state persists between retries.

    Source: None; #82243 fixes the first cause in the component on trunk and wp/7.2, but it is a product change, so the test works around it instead.

    Not applicable: 7.0–6.5, where a scan of 2,709 e2e runs found no failures of this kind, and the older branches.

    DF. Fix flaky component unit tests that press Tab

    Branch: add-sleep-before-tab-in-component-tests

    Purpose: Fixes the flaky Tabs › Controlled mode › When selectOnMove is true › should automatically select a newly focused tab unit test, which failed on the first push run to wp/6.5 that ran the tests. It waits for rendering to finish (await sleep()) before each press.Tab() in the Ariakit-based component unit tests, because pressing Tab right after rendering races Ariakit's asynchronous focus setup.

    Source: #59012, without its custom-select-control-v2 changes, which don't apply to 6.5's older copy of that test.

    Not applicable: 6.6, which already has #59012; 7.1–6.7, which removed these sleep() calls in #64205 after fixing the cause; and 6.4 and older, which don't have these tests.

    DG. Fix flaky deferred store e2e test

    Branch: fix-flaky-deferred-store-e2e-test

    Purpose: Fixes the flaky deferred store › Ensure that a store can be subscribed to before it is initialized e2e test, which failed all three attempts on wp/6.5. The fixture now registers its store when the page receives a _test_proceed_ event instead of after a fixed delay, and the test dispatches that event after checking that the text is still empty. Before, page.goto() could return after the store was already registered.

    Source: #62571

    On 6.6: preventive; the test hasn't failed there, but it has the same race with a 100 ms delay.

    Not applicable: 7.1–6.7, which already have #62571, and 6.4 and older, which don't have this test.

  4. self-assigned this
    on Oct 15, 2026
  5. moved this from Backlog to In progress in WordPress Project Build Toolingon Oct 15, 2026
  6. desrosj commented on Oct 16, 2026

    @desrosj
    MemberAuthor
  7. rejaulalomkhan commented on Oct 18, 2026

    @rejaulalomkhan
    Member

    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!

  8. rejaulalomkhan commented on Oct 18, 2026

    @rejaulalomkhan
    Member

    Row CA is complete — both #84424 (wp/5.9) and #84459 (wp/5.8) have been reviewed and approved.

  9. lucatume commented on Oct 19, 2026

    @lucatume
    Contributor

    Claiming row A (Remove obsolete and trunk-only workflows) and starting work on it.

  10. adimoldovan commented on Oct 19, 2026

    @adimoldovan
    Contributor

    Claiming row B

  11. adimoldovan commented on Oct 19, 2026

    @adimoldovan
    Contributor

    Claiming row C.

  12. desrosj commented on Oct 19, 2026

    @desrosj
    MemberAuthor

    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.

  13. 10 remaining items

  14. adimoldovan commented on Oct 22, 2026

    @adimoldovan
    Contributor

    Claiming row Q.

  15. lucatume commented on Oct 23, 2026

    @lucatume
    Contributor

    Claiming row R

  16. lucatume commented on Oct 23, 2026

    @lucatume
    Contributor

    Claiming line U

  17. ntsekouras commented on Oct 26, 2026

    @ntsekouras
    Contributor

    Claiming line U

    Thank you @lucatume! JFYI I reviewed U just to get to completion a bit faster.

  18. desrosj commented on Oct 26, 2026

    @desrosj
    MemberAuthor

    Thank you, everyone! We're nearly there. I've gone through every review and addressed all of the feedback left. I also addressed a few other issues that Claude pointed out while I was addressing that feedback and I think these are in a great state once those are reviewed.

    Here is the remaining work for the last 2% of cells:

    I did add @ntsekouras as a reviewer on row AL because we were working together on the final PRs today. But he had to sign off for the night, so feel free to pick these up and run with them.

  19. andrewserong commented on Oct 26, 2026

    @andrewserong
    Contributor

    It looks like they've all got approvals now. Let us know if you need 👀 on any others, and nice work everyone getting them all reviewed!

  20. desrosj commented on Oct 27, 2026

    @desrosj
    MemberAuthor

    All stacks have been merged, and CI is green with the exception of 2 wp/6.5 failures that I'm looking into!

    Also, I've gone and opened #85588 to tackle reviewing the 5.4-5.1 stacks. These are a bit different because they previously had a TravisCI configuration without any GitHub Actions. Please head over there if you have some time to review a few more. There's much fewer total PRs for those branches than than for this ticket.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

[Type] TaskIssues or PRs that have been broken down into an individual action to take

Type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions