test(snapshots): migrate the last blocked snap tests to the PTY suite#2143
Merged
Conversation
This was referenced Jul 10, 2026
Member
Author
How to use the Graphite Merge QueueAdd the label auto-merge to this PR to add it to the merge queue. You must have a Graphite account in order to use the merge queue. Sign up using this link. An organization admin has enabled the Graphite Merge Queue in this repository. Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue. This stack of pull requests is managed by Graphite. Learn more about stacking. |
wan9chi
approved these changes
Jul 10, 2026
Merge activity
|
…#2143) Migrates the final 10 legacy snap tests, emptying both legacy trees (`packages/cli/snap-tests`, `packages/cli/snap-tests-global`). Runner additions that unblock them: - Step env values expand `${NAME}`: `${workspace}` resolves to the step's working directory, any other name to the case env. This expresses the shell forms `VP_HOME="$(pwd)/home"` and `PATH="$(pwd)/bin:$PATH"` used by `command-env-setup-external-vp`, `npm-global-install-custom-prefix-on-path`, and `shim-corepack-enable-install-directory`. - Programs a case creates under its own root (shims from an isolated `vp env setup`) count as case-owned for resolution, and a per-case `link-node-modules = true` exposes the run-root `node_modules` as the workspace parent-dir `node_modules` like the legacy layout, so `bin-oxlint-wrapper`/`bin-oxfmt-wrapper` address `../node_modules/vite-plus/bin/*` verbatim. - The `./`-prefix program join no longer leaks a `/./` component into recorded shim targets, and an empty step cwd no longer leaks a trailing separator into `${workspace}`. Hermeticity fixes over the legacy versions: `shim-npm-downloads-uncached-package-manager-version` sets `seed-runtime = false` (its `rm` of a pinned runtime must not reach the shared seed through the symlink) and pins `.node-version 22.11.0` instead of inheriting the environment default; `command-env-setup-external-vp` drops `VP_BYPASS` (the hermetic PATH has no system node); the custom-prefix case asserts the npm bin as a symlink, which the legacy `test -f` followed silently. `fingerprint-ignore-test` and `vitest-browser-mode` stay disabled on every platform as in the legacy suite; their fixtures carry the converted steps and record no snapshot until re-enabled. The legacy CI jobs (`cli-snap-test` matrix, retry script, Renovate ignorePaths for the trees) are removed here too, and the legacy runner exits cleanly when a tree is absent from a fresh checkout, so local `pnpm test` keeps working. Deleting the legacy runner and migrator tooling under `packages/tools` can follow separately. Closes #2116.
graphite-app
Bot
force-pushed
the
migrate-command-pm-snap-tests
branch
from
July 10, 2026 14:06
efd0c6b to
98cca64
Compare
graphite-app
Bot
force-pushed
the
migrate-blocked-snap-tests
branch
from
July 10, 2026 14:07
d83fa3b to
e208eef
Compare
wan9chi
added a commit
that referenced
this pull request
Jul 16, 2026
) Release vite-plus v0.2.5: Cleaner environments and more reliable workflows. This release adds cleanup and package version commands, supports TypeScript 7 declaration generation, reduces the standalone binary size, and hardens task tracking, CLI output, package-manager routing, Docker workflows, and project scaffolding. ### Highlights - Add `vp env clean` to remove unused managed Node.js runtimes and package-manager caches ([#2003](#2003)), by @liangmiQwQ - Add `vp pm version`, forwarding native version commands to npm, pnpm, Yarn, and Bun ([#2127](#2127)), by @jong-kyung - Add TypeScript 7 support to declaration generation and generated library projects with tsdown `0.22.7` ([#2104](#2104), [#2168](#2168)), by @wan9chi - Improve automatic task input tracking for Bun on macOS, Linux containers with constrained `/dev/shm`, and Windows process images, reduce Windows backing-file allocation, and clarify task wait failures ([vite-task#515](voidzero-dev/vite-task#515), [vite-task#518](voidzero-dev/vite-task#518), [vite-task#523](voidzero-dev/vite-task#523), [vite-task#524](voidzero-dev/vite-task#524), [vite-task#542](voidzero-dev/vite-task#542), [#2126](#2126), [#2167](#2167)), by @wan9chi - Prevent CLI diagnostics from truncating or panicking when inherited standard output or error is nonblocking ([#2172](#2172), [#2173](#2173)), by @wan9chi ### Fixes & Enhancements - Reduce standalone `vp` binary sizes by about 5% on Linux and macOS and 19% on Windows ([#2043](#2043)), by @fengmk2 - Keep the Docker image non-root by default while allowing passwordless `sudo` for Playwright browser dependencies and system packages ([#2088](#2088)), by @fengmk2 - Ignore `.env` and `.env.*` in generated projects while keeping `.env.example` trackable ([#2095](#2095)), by @forehalo - Create `vp-use.cmd` after the Windows environment bin directory is ready and document its Command Prompt-only usage ([#2128](#2128)), by @liangmiQwQ - Render user-facing process statuses and paths without Rust debug wrappers ([#2130](#2130)), by @liangmiQwQ - Make `vp dedupe` fall back to `yarn install` with a warning on Yarn Classic ([#2139](#2139)), by @jong-kyung - Ensure package-manager child processes, including Bun, can always find the managed Node.js runtime ([#2158](#2158)), by @BlankParticle ### Docs - Update the release-manager post-release guidance ([#2096](#2096)), by @wan9chi - Add Windows to the Namespace sponsor credit ([#2108](#2108)), by @fengmk2 - Document installer and runtime environment variables, registry settings, TLS options, and precedence rules ([#2114](#2114)), by @yukinoshi - Mark shell examples in `CONTRIBUTING.md` as Bash code blocks ([#2159](#2159)), by @BlankParticle ### Chore - Assign prepared release PRs to the workflow actor ([#2094](#2094)), by @wan9chi - Complete the PTY snapshot migration and harden the runner, fixtures, release-version redaction, registry teardown, timeouts, and Linux parallelism ([#2071](#2071), [#2080](#2080), [#2084](#2084), [#2099](#2099), [#2102](#2102), [#2103](#2103), [#2107](#2107), [#2109](#2109), [#2115](#2115), [#2117](#2117), [#2118](#2118), [#2119](#2119), [#2120](#2120), [#2121](#2121), [#2131](#2131), [#2132](#2132), [#2134](#2134), [#2137](#2137), [#2138](#2138), [#2141](#2141), [#2143](#2143), [#2145](#2145), [#2182](#2182)), by @fengmk2 and @wan9chi - Expose Vite+ managed binaries consistently inside snapshot fixtures ([#2110](#2110)), by @liangmiQwQ - Exclude PTY snapshot configuration from Vitest discovery and remove the legacy snapshot infrastructure ([#2135](#2135), [#2146](#2146)), by @jong-kyung - Modernize Windows runners, registry bridge publishing, native size reporting, merge-base comparisons, and package-manager installation CI ([#2083](#2083), [#2100](#2100), [#2105](#2105), [#2106](#2106), [#2112](#2112), [#2133](#2133)), by @fengmk2 - Verify that created monorepo libraries emit declarations in CI ([#2171](#2171)), by @wan9chi ### Bundled Versions | Tool | Version | Source | | --------------- | ------- | ----------------------------------------------------------------------- | | vite | `8.1.4` | [`a477454`](vitejs/vite@a477454) | | rolldown | `1.1.5` | [`f09947a`](rolldown/rolldown@f09947a) | | tsdown | `0.22.7` | [npm](https://npmx.dev/package/tsdown/v/0.22.7) | | vitest | `4.1.10` | [npm](https://npmx.dev/package/vitest/v/4.1.10) | | oxlint | `1.73.0` | [npm](https://npmx.dev/package/oxlint/v/1.73.0) | | oxlint-tsgolint | `0.24.0` | [npm](https://npmx.dev/package/oxlint-tsgolint/v/0.24.0) | | oxfmt | `0.58.0` | [npm](https://npmx.dev/package/oxfmt/v/0.58.0) | ### Upgrade ```bash vp upgrade ``` ### New Contributors Welcome @yukinoshi and @BlankParticle. **Full Changelog**: v0.2.4...v0.2.5 --- 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: wan9chi <dk4rest@gmail.com>
2 tasks
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.

Migrates the final 10 legacy snap tests, emptying both legacy trees (
packages/cli/snap-tests,packages/cli/snap-tests-global).Runner additions that unblock them:
${NAME}:${workspace}resolves to the step's working directory, any other name to the case env. This expresses the shell formsVP_HOME="$(pwd)/home"andPATH="$(pwd)/bin:$PATH"used bycommand-env-setup-external-vp,npm-global-install-custom-prefix-on-path, andshim-corepack-enable-install-directory.vp env setup) count as case-owned for resolution, and a per-caselink-node-modules = trueexposes the run-rootnode_modulesas the workspace parent-dirnode_moduleslike the legacy layout, sobin-oxlint-wrapper/bin-oxfmt-wrapperaddress../node_modules/vite-plus/bin/*verbatim../-prefix program join no longer leaks a/./component into recorded shim targets, and an empty step cwd no longer leaks a trailing separator into${workspace}.Hermeticity fixes over the legacy versions:
shim-npm-downloads-uncached-package-manager-versionsetsseed-runtime = false(itsrmof a pinned runtime must not reach the shared seed through the symlink) and pins.node-version 22.11.0instead of inheriting the environment default;command-env-setup-external-vpdropsVP_BYPASS(the hermetic PATH has no system node); the custom-prefix case asserts the npm bin as a symlink, which the legacytest -ffollowed silently.fingerprint-ignore-testandvitest-browser-modestay disabled on every platform as in the legacy suite; their fixtures carry the converted steps and record no snapshot until re-enabled.The legacy CI jobs (
cli-snap-testmatrix, retry script, Renovate ignorePaths for the trees) are removed here too, and the legacy runner exits cleanly when a tree is absent from a fresh checkout, so localpnpm testkeeps working. Deleting the legacy runner and migrator tooling underpackages/toolscan follow separately.Closes #2116.