Skip to content

ci(ecosystem): declare playwright via repo.json + bump consumers to >=1.60#1668

Merged
fengmk2 merged 9 commits into
mainfrom
fix/playwright-node-24-16-hang
May 24, 2026
Merged

ci(ecosystem): declare playwright via repo.json + bump consumers to >=1.60#1668
fengmk2 merged 9 commits into
mainfrom
fix/playwright-node-24-16-hang

Conversation

@fengmk2
Copy link
Copy Markdown
Member

@fengmk2 fengmk2 commented May 24, 2026

Nightly E2E hangs in npx playwright install chromium on 4 projects whose vp env picks Node 24.16.0 — upstream microsoft/playwright#40724, fixed in Playwright 1.60.0.

  • repo.json: add "playwright": true flag (5 projects).
  • e2e-test.yml: one Install Playwright chromium step gated on the flag (via jq); inline npx playwright install chromium removed from 5 command: blocks.
  • Bump each affected project's hash to a commit with Playwright >=1.60 (vibe-dashboard, vitepress fork branch, tanstack-start-helloworld, vitest-playwright-repro).

@netlify
Copy link
Copy Markdown

netlify Bot commented May 24, 2026

Deploy Preview for viteplus-preview canceled.

Name Link
🔨 Latest commit f0756d8
🔍 Latest deploy log https://app.netlify.com/projects/viteplus-preview/deploys/6a12f109c61ac20007352044

… 1.60

`npx playwright install chromium` wedges after the download bar reaches
100% under Node 24.16.0+ with Playwright < 1.60 (microsoft/playwright#40724,
fixed in 1.60.0 via #40747). This was silently consuming the full 10-min
timeout on vibe-dashboard, vitepress, tanstack-start-helloworld, and
vitest-playwright-repro every nightly run, because vp env happens to pick
24.16.0 for them.

Make Playwright a first-class declaration:

- repo.json gains `"playwright": true` on the 5 projects that need it
  (vibe-dashboard, vitepress, tanstack-start-helloworld,
  vitest-playwright-repro, vite-vue-vercel).
- patch-project.ts reads the flag and writes a `pnpm.overrides.playwright`
  entry pinned to `^1.60.0`. The override applies uniformly across direct
  deps, catalog entries (vibe-dashboard), and transitive-only cases
  (vitest-playwright-repro via @vitest/browser-playwright).
- e2e-test.yml adds a single `Install Playwright chromium` step gated on
  the repo.json flag (read via jq), removing the duplicated
  `npx playwright install chromium` lines from the 5 per-project command
  blocks.
@fengmk2 fengmk2 force-pushed the fix/playwright-node-24-16-hang branch from 68672f6 to e9096c7 Compare May 24, 2026 07:08
@fengmk2 fengmk2 changed the title ci(ecosystem): pin Node 24.15.0 for Playwright-using projects ci(ecosystem): declare playwright via repo.json + force playwright >= 1.60 May 24, 2026
fengmk2 added 5 commits May 24, 2026 15:35
…lockfile)

Upstream vibe-dashboard main now has playwright@1.60.0 pinned in
pnpm-lock.yaml via the existing catalog `^1.58.2`. Bumping the hash so
e2e tests exercise the installed-version state instead of relying solely
on patch-project.ts's pnpm override.
…oject.ts

Pre-version-bumping each project (so its lockfile resolves playwright >= 1.60
directly) is the right place to enforce the version — overriding it inside
patch-project.ts produced several pitfalls:

- pkg.pnpm.overrides is ignored by npm-managed projects (vitest-playwright-repro
  uses npm); the override never reached the lockfile and the wedge returned
- override targeted the bare `playwright` package, missing vitepress which
  depends on `playwright-chromium`
- writing pkg.pnpm before vp migrate flipped migrator branches and could mask
  upstream pnpm-workspace.yaml overrides on forceFreshMigration projects

The repo.json `"playwright": true` flag still drives the workflow's
"Install Playwright chromium" step; the actual version pinning will be
handled at the upstream project level instead.
…mium branch

Pointing at fengmk2/vitepress so the playwright-chromium upgrade can land on
feat/vite-8-and-fix-playwright-chromium without waiting on the upstream
vuejs/vitepress merge.
@fengmk2 fengmk2 self-assigned this May 24, 2026
@fengmk2 fengmk2 changed the title ci(ecosystem): declare playwright via repo.json + force playwright >= 1.60 ci(ecosystem): declare playwright via repo.json + bump consumers to >=1.60 May 24, 2026
@fengmk2 fengmk2 marked this pull request as ready for review May 24, 2026 12:03
@fengmk2 fengmk2 requested review from Boshen, cpojer and wan9chi May 24, 2026 12:04
@fengmk2 fengmk2 merged commit 5bf7d4d into main May 24, 2026
119 of 120 checks passed
@fengmk2 fengmk2 deleted the fix/playwright-node-24-16-hang branch May 24, 2026 12:59
liangmiQwQ pushed a commit to liangmiQwQ/vite-plus that referenced this pull request May 26, 2026
…=1.60 (voidzero-dev#1668)

Nightly E2E hangs in `npx playwright install chromium` on 4 projects
whose `vp env` picks Node 24.16.0 — upstream
[microsoft/playwright#40724](microsoft/playwright#40724),
fixed in Playwright 1.60.0.

- `repo.json`: add `"playwright": true` flag (5 projects).
- `e2e-test.yml`: one `Install Playwright chromium` step gated on the
flag (via `jq`); inline `npx playwright install chromium` removed from 5
`command:` blocks.
- Bump each affected project's hash to a commit with Playwright >=1.60
(vibe-dashboard, vitepress fork branch, tanstack-start-helloworld,
vitest-playwright-repro).
@fengmk2 fengmk2 mentioned this pull request May 28, 2026
fengmk2 added a commit that referenced this pull request May 29, 2026
Release vite-plus v0.1.23.

Enterprise-ready HTTP (proxy + custom CA), task command shorthands in
`vite.config.ts`, a smoother `vp create`/`vp migrate`, and the
oxc/vite/rolldown bundled stack moves forward.

### Highlights

- **Proxy and custom-CA aware HTTP**: a new process-wide
`vite_shared::shared_http_client()` honors `HTTPS_PROXY` / `HTTP_PROXY`
/ `NO_PROXY`, picks up macOS System Settings / Windows registry proxies,
loads custom CAs from `SSL_CERT_FILE` and `NODE_EXTRA_CA_CERTS`, and
exposes a `VP_INSECURE_TLS` diagnostic switch; makes `vp` work through
Socket Firewall Free and other TLS-intercepting proxies
([#1686](#1686)), by
@fengmk2
- **Task command shorthands**: `run.tasks` entries in `vite.config.ts`
now accept a bare string (`"build": "cmd"`) or array (`"build": ["cmd1",
"cmd2"]`) instead of always requiring `{ command: ... }`; arrays reuse
the existing `&&` planning path so cache, `dependsOn`, and task options
stay consistent
([vite-task#391](voidzero-dev/vite-task#391)),
by @jong-kyung
- **Managed `vp outdated -g`**: routes through Vite+'s managed global
package metadata instead of delegating to the underlying `npm outdated
-g` store, so all installed global packages are reported consistently
([#1659](#1659)), by
@liangmiQwQ

### Features

- `vp pm approve-builds`: new unified subcommand that mirrors `pnpm
approve-builds` one-to-one, adapts to `bun pm trust`, and
warns-and-noops on npm/yarn
([#1662](#1662)), by
@fengmk2
- `vp create`: opt-in GitHub Copilot setup; selecting `--agent copilot`
now generates a `.github/workflows/copilot-setup-steps.yml` so the
Copilot Coding Agent can set up Vite+ and run `vp` in the new project
out of the box
([#1683](#1683)), by
@jong-kyung
- `vp migrate`: prompt to remove `baseUrl` from `tsconfig.json` before
applying type-aware lint defaults (runs `@andrewbranch/ts5to6
--fixBaseUrl .` under the hood; auto-applied in non-interactive mode)
([#1692](#1692)), by
@TheAlexLichter
- Respect `packageManager` in package-manager shims (`npm`/`npx`,
`pnpm`/`pnpx`, `yarn`/`yarnpkg`, `bun`/`bunx`); add non-mutating
`packageManager` resolution metadata for `vp env current` and `vp env
which` ([#1654](#1654)),
by @fengmk2
- vite-task: `--filter` no-match now exits `0` by default; add
`--fail-if-no-match` to opt back in
([vite-task#393](voidzero-dev/vite-task#393)),
by @kazupon

### Fixes & Enhancements

- `vp create`: keep generated `.vscode/settings.json` trackable when the
VS Code editor option is selected (avoid templates' `.vscode/*`
`.gitignore` masking it)
([#1700](#1700)), by
@jong-kyung
- `vp create vite:monorepo`: normalize sub-package `vite-plus` to
`catalog:` even when only `vite-plus` (not `vite`/`vitest`/...) is
present, and drop the `vite`/`vitest` aliases generated by the upstream
library template
([#1697](#1697)), by
@fengmk2
- `vp add/install -g <path>`: resolve the real package name from
`package.json` instead of using the path string, so local-path installs
don't create broken directories
([#1685](#1685)), by
@liangmiQwQ
- `vp test --coverage` and other direct built-in commands now expose the
workspace's `package.json#packageManager` to child processes so tools
like Vitest coverage can spawn the configured PM
([#1696](#1696)), by
@jong-kyung
- `vp migrate`: clean up the whole ESLint ecosystem (plugins, configs,
parser/resolver, type-utils) rather than just `eslint`; skip the
migration entirely when `@nuxt/eslint` is detected
([#1682](#1682)), by
@fengmk2
- `vp create`: write `fmt.configPath` (not `configPath`) for Zed oxfmt
settings to match the official Zed OXC extension layout
([#1687](#1687)), by
@chungweileong94
- `vp migrate`: parse `tsconfig.json` as JSONC so files with comments
don't break `baseUrl` detection/removal
([#1688](#1688)), by
@TheAlexLichter
- `vp env setup`: Unix env shims now point at the active `vp` executable
instead of always assuming `VP_HOME/current/bin/vp`, so Homebrew-style
installs work
([#1631](#1631)), by
@leohara
- `vp outdated -g` / `vp why -g`: don't require a local `package.json`;
global commands run regardless of cwd
([#1622](#1622)), by
@liangmiQwQ
- `vp create`: default the "Initialize a git repository?" prompt to yes
([#1650](#1650)), by
@fengmk2
- `vp` hooks: include the managed Node bin in `PATH` so
`./node_modules/.bin/vp` can find `node` from a VS Code commit on macOS
([#1647](#1647)), by
@TheAlexLichter
- `vpx` on Windows now invokes the package's `.cmd` shim instead of the
Unix binary
([#1652](#1652)), by
@tobynguyen27
- vite-task: bump cache database schema to version 13 (forces a one-time
rebuild of the local task cache)
([vite-task#402](voidzero-dev/vite-task#402)),
by @branchseer
- Bump vite-task to `d02b257` and `5833b374`; also bumps the repo's Rust
nightly toolchain to `nightly-2026-05-24` and ships the regenerated
`run` config types and docs for the new task command shorthand
([#1689](#1689),
[#1695](#1695)), by
@branchseer

### Refactor

- Replace `VP_SHELL_NU`/`VP_SHELL_PWSH` with a single `VP_SHELL`
override; add explicit shell parsing for `bash`, `zsh`, `fish`, `nu`,
`pwsh`, and `cmd`, and harden auto-detection against nested shells
([#1658](#1658)), by
@nekomoyi
- vite-task: replace `allocator-api2` with `bumpalo` collections
([vite-task#400](voidzero-dev/vite-task#400)),
by @branchseer
- vite-task: drop the unused `and_item_index` field from
`ExecutionItemDisplay`
([vite-task#394](voidzero-dev/vite-task#394)),
by @branchseer

### Docs

- Add the root `AGENTS.md` as the primary AI-agent guide for the
vite-plus repository; convert `CLAUDE.md` into a compatibility pointer
([#1670](#1670)), by
@jong-kyung
- Align the agent validation table to match `AGENTS.md`
([#1673](#1673)), by
@jong-kyung
- Update the task output caching guide so the documented behavior
matches what vite-task actually does
([#1639](#1639)), by
@ericclemmons
- Correct the bundled-source location in `packages/core/BUNDLING.md`
([#1660](#1660)), by
@shulaoda

### Chore

- Clarify `--help` text for `vp env default`/`pin`/`use`/`exec` with
`Examples:` blocks
([#1664](#1664)), by
@Boshen
- Refresh trusted stack stats on the docs homepage
([#1680](#1680)), by
@voidzero-guard[bot]
- Drop the standalone `pnpm --filter @rolldown/pluginutils build` step
now that `@rolldown/pluginutils` is published from its own package
([#1655](#1655)), by
@shulaoda
- Preserve single-quote style when `sync-remote` rewrites
`pnpm-workspace.yaml`
([#1672](#1672)), by
@lyzno1
- Enable `vite_pm_cli` lib tests by removing a stale `test = false` flag
([#1661](#1661)), by
@shulaoda
- CI: switch macOS runners back to `namespace-profile-mac-default`
([#1701](#1701)), by
@fengmk2
- CI: fix release-day flakes in the upgrade test and snap test when the
dev `package.json` version equals npm latest
([#1645](#1645)), by
@fengmk2
- CI: replace `zizmor` and `cargo-deny` workflows with
`oxc-project/security-action`
([#1635](#1635)), by
@Boshen
- CI: warm-up monorepo cache test under npm
([#1649](#1649)), by
@fengmk2
- CI: attach per-target `vp` binary archives (`.tar.gz`/`.zip`) to
GitHub Releases alongside the existing `vp-setup-*.exe` installers
([#1665](#1665)), by
@Boshen
- CI: declare Playwright via `repo.json` in ecosystem tests and bump
consumers to `>=1.60` to dodge the Node 24.16.0 hang
([#1668](#1668)), by
@fengmk2
- Update GitHub Actions
([#1640](#1640),
[#1675](#1675),
[#1678](#1678),
[#1679](#1679),
[#1691](#1691)), by
@renovate[bot]
- Upgrade upstream dependencies: vite `8.0.11 → 8.0.14`, rolldown `1.0.0
→ 1.0.3`, vitest `4.1.6 → 4.1.7`, oxlint `1.63.0 → 1.67.0`, oxfmt
`0.48.0 → 0.52.0`, oxlint-tsgolint `0.22.1 → 0.23.0`, `@oxc-project/*`
and oxc Rust crates `0.129.0 → 0.133.0`
([#1646](#1646),
[#1653](#1653),
[#1693](#1693),
[#1699](#1699)), by
@voidzero-guard[bot]

### Bundled Versions

| Tool | Version | Source |
| --- | --- | --- |
| vite | `8.0.14` |
[`c917f1e`](vitejs/vite@c917f1e)
|
| rolldown | `1.0.3` |
[`a287faa`](rolldown/rolldown@a287faa)
|
| tsdown | `0.22.0` | [npm](https://npmx.dev/package/tsdown/v/0.22.0) |
| vitest | `4.1.7` | [npm](https://npmx.dev/package/vitest/v/4.1.7) |
| oxlint | `1.67.0` | [npm](https://npmx.dev/package/oxlint/v/1.67.0) |
| oxlint-tsgolint | `0.23.0` |
[npm](https://npmx.dev/package/oxlint-tsgolint/v/0.23.0) |
| oxfmt | `0.52.0` | [npm](https://npmx.dev/package/oxfmt/v/0.52.0) |

### New Contributors

Welcome to all new contributors! 🎉

@ericclemmons, @tobynguyen27, @shulaoda, @leohara, @chungweileong94

**Full Changelog**:
v0.1.22...v0.1.23

Merging this PR will trigger the release workflow.

---------

Co-authored-by: voidzero-guard[bot] <278573678+voidzero-guard[bot]@users.noreply.github.com>
Co-authored-by: MK <fengmk2@gmail.com>
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