Repository navigation
Move wp-env to 11.17 so the Screenshots workflow can start WordPress - #47
Merged
Merged
Conversation
`wp-env start` fails on every PR: building the PHP 7.4 image runs `apt-get install` against bullseye-security, which now returns 404 because Debian 11 reached end-of-life and its security packages left the regular mirrors. wp-env 10 only redirects stretch and buster to archive.debian.org. wp-env 11.15+ also points bullseye at the archive and drops the bullseye-security and -updates suites (WordPress/gutenberg#82478). - @wordpress/env ^10.0.0 -> ^11.17.0. The lockfile changes only inside wp-env's own dependencies (44 entries, all hoisted from @wordpress/env or @wp-playground/cli). This also drops wp-env's extract-zip 1.7.0; the extract-zip alerts stay open because @puppeteer/browsers still pulls in 2.0.1. - `"@wordpress/env": "$@wordpress/env"` override: @wordpress/scripts 30 declares an optional peer of ^10, which `npm ci` rejects (ERESOLVE). The override points that peer at the root's version. wp-scripts 32+ accepts >=10 but brings @wordpress/eslint-plugin 25, the upgrade that breaks lint:js, so it stays on 30. - .wp-env.json pins "port": 8888. wp-env 11 defaults to null and falls back to a random port when 8888 is busy. Playwright, the E2E global setup and the README all expect 8888, so an explicit port keeps a busy port a loud failure instead of a silent mismatch. - The Screenshots workflow now also triggers on package.json, package-lock.json and .wp-env.json, so dependency and environment changes, this one included, run it. wp-env 11's other breaking changes don't affect this repo. Pretty permalinks are on by default, and the E2E `/?page_id=` URLs redirect. `install-path` became `status`, and nothing here calls it. Verified locally (no Docker here): `npm ci` resolves; build output is byte-identical to main (sha256, 23 files); lint:js passes; Playwright is unchanged at 1.61.1; npm audit is unchanged. wp-env 11's config loader accepts .wp-env.json with CI's override merged in (port 8888, tests 8889, PHP 7.4, mu-plugins mapping, TERRAVIZ_E2E). wp-env 11's own downloadGitSource and downloadWPPHPUnit work with the @simple-git/argv-parser 2 override, including a real wordpress-develop sparse clone at 6.8.0. This PR's Screenshots run is the Docker check. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GTtKLAZWx1G9Cc9u6VW8zS Signed-off-by: Claude <noreply@anthropic.com>
🖼️ Visual report12 shot(s) · 2 viewport(s) (desktop, mobile) · 3 with changes Regression: 3 shot(s) changed, 0 new (no baseline), threshold 0.001.
All 12 shot(s)
Full gallery (actuals + Advisory — the Screenshots workflow is kept out of the core CI gate, so this never blocks a merge. Visual review only. |
With wp-env starting again, the Screenshots run passes 11 of 12 shots.
The exception is dashboard-publisher: the page's .wrap renders 1078x93
instead of 1078x86, with 6% of pixels changed. The only difference is
the "No Terraviz service token" warning. It's a @wordpress/components
<Notice>, which WordPress core supplies at runtime (the plugin build
doesn't bundle it, and its output is byte-identical to main). WordPress
7.1 restyles it from a left-bar notice into a rounded, bordered box
with more padding.
The E2E site runs whatever WordPress is latest ("core": null; the
Playwright trace shows 7.1.3), so this is WordPress core moving on since
the July baselines, not this PR's code.
Both images come from the CI Linux runner (run 38633567767), as
tests/e2e/README requires:
- tests/e2e/__snapshots__/dashboard-publisher.png: Playwright's own
-actual.png from the failed comparison.
- .wordpress-org/screenshot-6.png: the same shot's listing copy from the
screenshots-gallery artifact. It was pixel-identical to the old
baseline and is pixel-identical to the new one.
The three mobile shots the advisory report flags (about 0.11%) stay well
under the 0.02 gate and are left alone.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GTtKLAZWx1G9Cc9u6VW8zS
Signed-off-by: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
🟢 Approval recommended
No unresolved issues remain, and the linked Screenshots workflow completed successfully.
0 open findings
What changed in this PR
Restores WordPress startup for the plugin’s screenshot and visual-regression workflow.
Changes:
- Upgrades wp-env to 11.17 and resolves its wp-scripts peer dependency conflict.
- Pins port 8888 and triggers screenshots on dependency and environment changes.
- Documents the recovery and refreshed publisher-dashboard images.
| File | Description |
|---|---|
| package.json | Upgrades wp-env and adds the peer override. |
| package-lock.json | Locks updated wp-env dependencies. |
| CHANGELOG.md | Documents workflow recovery and baseline refresh. |
| .wp-env.json | Pins WordPress to port 8888. |
| .github/workflows/screenshots.yml | Expands dependency and environment triggers. |
🧠 Review effort: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Hackshaven
pushed a commit
that referenced
this pull request
Oct 14, 2026
Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MKEqjkVyUQiZZL7QTk9m64 Signed-off-by: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The Screenshots workflow currently fails on every PR at Start WordPress (wp-env), for example run 38628335733 on #46 and run 38629751015 on #45. Building the PHP 7.4 image runs
apt-get installagainstbullseye-security, which now returns 404 because Debian 11 reached end-of-life and its security packages left the regular mirrors. wp-env 10 only redirects stretch and buster toarchive.debian.org. wp-env 11.15+ also points bullseye at the archive and drops the bullseye-securityand-updatessuites (WordPress/gutenberg#82478).Changes
@wordpress/env^10.0.0 → ^11.17.0. The lockfile changes only inside wp-env's own dependencies: 44 entries, all hoisted from@wordpress/envor@wp-playground/cli. wp-env no longer pulls in extract-zip 1.7.0. The extract-zip alerts stay open because@puppeteer/browsersstill pulls in 2.0.1."@wordpress/env": "$@wordpress/env".@wordpress/scripts30 declares an optional peer dependency on wp-env ^10, whichnpm cirejects withERESOLVE. The override points that peer at the root's version. wp-scripts 32+ accepts>=10, but it brings@wordpress/eslint-plugin25, the upgrade that breakslint:js, so wp-scripts stays on 30. Thecomment:overridesnote explains this entry..wp-env.jsonpins"port": 8888. wp-env 11 defaults tonulland falls back to a random port when 8888 is busy. Playwright (playwright.config.js), the E2E global setup and the README all expect 8888, so the explicit port turns a busy port into a loud failure instead of a silent mismatch.package.json,package-lock.jsonand.wp-env.json. Dependency and environment changes can break the capture or move baselines just as code changes can. Before this, Patch 48 of the 52 open npm Dependabot advisories #45 never ran the workflow at all. This PR runs it.dashboard-publisherbaseline is refreshed, along with.wordpress-org/screenshot-6.png. With WordPress starting again, the first run passed 11 of 12 shots. In the exception, the "No service token" warning renders 7px taller (86 → 93px): it's@wordpress/components'<Notice>, supplied by WordPress core at runtime, which WordPress 7.1 restyled as a rounded, bordered box. The E2E site runs the latest WordPress ("core": null; the trace shows 7.1.3), so this is WordPress core changing since the July baselines, not plugin code. Both images come from the CI Linux runner (run 38633567767): Playwright's own actual image and the gallery's listing copy, which are pixel-identical. The three mobile shots the advisory report flags (about 0.11%) stay well under the 0.02 gate and are left alone.wp-env 11's other breaking changes don't affect this repo:
/?page_id=URLs redirect;install-pathbecamestatus, and nothing here calls it;WP_ENV_MULTISITEsetting was never used.Testing
@simple-git/argv-parseroverride, throughwp-env startcloning WordPress's PHPUnit suite.npm ciresolves on the new lockfile. Without the override it fails withERESOLVE.npm run build: all 23build/files have the same sha256 as onmain.npm run lint:jspasses. Playwright stays at 1.61.1.npm audit: no new advisories..wp-env.jsonwith the CI override merged in: port 8888, tests port 8889, PHP 7.4, themu-pluginsmapping andTERRAVIZ_E2E.🤖 Generated with Claude Code
https://claude.ai/code/session_01GTtKLAZWx1G9Cc9u6VW8zS