Skip to content

Fix the runtime matrix's nginx cells; run an nginx cell on PRs - #109

Merged
dknauss merged 1 commit into
mainfrom
claude/keen-tesla-49orwb
Sep 27, 2026
Merged

dknauss merged 1 commit into
mainfrom
claude/keen-tesla-49orwb

Conversation

@dknauss

@dknauss dknauss commented Sep 26, 2026

Copy link
Copy Markdown
Owner

Summary

What changed?

Since #106, Runtime matrix smoke on main has failed on every push: runs #525, #529, and #531. In each run the same three cells fail, all nginx (nginx-php81-wp67, nginx-php82-wplatest, nginx-php83-wplatest), and all seven Apache cells pass. Every other recent workflow is green: CI, CodeQL, Release, the WordPress.org deploy, Dependency audit, Node compatibility, and Demo Link Monitor.

Cause. The settings PATCH that #106 added to the smoke test gets nginx's own 405 Not Allowed, so the request never reaches PHP. The smoke test sent REST requests to /?rest_route=…. For a directory request like /, nginx's index module only hands GET, HEAD, and POST to index.php. PATCH, PUT, and DELETE fall through to the static-file handler, which answers with 405. #105's write steps used only GET and POST, which is why its full-matrix run passed.

Sites are not affected. With plain permalinks WordPress builds REST URLs as index.php?rest_route=…, and pretty permalinks (/wp-json/…) reach index.php through try_files.

Fix:

  • scripts/runtime-matrix/smoke.sh sends every REST request to index.php?rest_route=… through a single REST_URL, the form WordPress generates itself.
  • Why it wasn't caught before merge: the pull-request matrix had only Apache cells. It now also runs nginx-php83-wplatest, so this PR's own CI tests the fix on nginx.
  • The README lists the four PR cells, and the CHANGELOG has a line for the fix.

Validation

  • npm run lint:js: no JS changes
  • npm run lint:css: no CSS changes
  • npm run lint:i18n: no source strings changed
  • npm run test: no plugin code changes
  • npm run build: no plugin code changes
  • bash -n on smoke.sh, and the workflow YAML parses; the PR matrix has 4 cells, including nginx.
  • Reproduced nginx's behavior with nginx:1.27-alpine. A full PHP-FPM reproduction was blocked by Docker Hub rate limits, so this PR's new nginx cell is the end-to-end proof.
  • Tested in the block editor: test infrastructure only.

Checklist

  • Linked issue or explained why none was needed: the failing main runs are linked above.
  • No sensitive details disclosed publicly

🤖 Generated with Claude Code

https://claude.ai/code/session_01KbVuMPN7YTcV27vwsG3LZ2


Generated by Claude Code

Since #106, all three nginx cells of the full matrix fail at the
settings PATCH with nginx's own "405 Not Allowed": the smoke test sent
REST requests to /?rest_route=, and for a directory request nginx's
index module only hands GET, HEAD, and POST to index.php, so PATCH,
PUT, and DELETE fall through to the static handler. #105's write steps
used only GET and POST, so they passed. Sites are not affected:
WordPress builds plain-permalink REST URLs as index.php?rest_route=,
and pretty permalinks reach index.php through try_files.

Send every smoke REST request to index.php?rest_route= (REST_URL), and
add nginx-php83-wplatest to the pull-request matrix, which had only
Apache cells and so could not catch this before merge.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KbVuMPN7YTcV27vwsG3LZ2
@codecov

codecov Bot commented Sep 26, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 87.50%. Comparing base (6a3d290) to head (dc1517e).

Additional details and impacted files
@@            Coverage Diff            @@
##               main     #109   +/-   ##
=========================================
  Coverage     87.50%   87.50%           
  Complexity       22       22           
=========================================
  Files            55       55           
  Lines          6089     6089           
  Branches        597      597           
=========================================
  Hits           5328     5328           
  Misses          280      280           
  Partials        481      481           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@dknauss
dknauss marked this pull request as ready for review September 27, 2026 00:17
@dknauss
dknauss merged commit 7d0513f into main Sep 27, 2026
17 checks passed
@dknauss
dknauss deleted the claude/keen-tesla-49orwb branch September 27, 2026 00:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants