| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
✅ Deploy Preview for viteplus-preview ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
Sorry, something went wrong.
There was a problem hiding this comment.
Here are some automated review suggestions for this pull request.
Reviewed commit: 0b5f3fd63a
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Sorry, something went wrong.
|
@fengmk2 While working on #2003, I found that the PTY test just simply use which to find Node and related binaries and put the directory into PATH, is that intentional? Would it make sense to run vp env setup and use <case>/home/.vite-plus/bin? |
Sorry, something went wrong.
|
@liangmiQwQ We need to consider network speed. Is it possible to make it configurable? The default is still the original processing method, and then you can configure it to be enabled for your scenario. |
Sorry, something went wrong.
|
@fengmk2 We've already had seed_runtime so there should not be any network fetching by default, right? So creating shim itself should not take too much time? |
Sorry, something went wrong.
|
Then go ahead and refactor it according to your plan. If there's no increase in runtime, there's no problem. |
Sorry, something went wrong.
At present, Vite+ PTY snap tests only allow tools run in the allowlist, so installed global packages are also disallowed to run. If we do this change, we can just simply allow all tools in <case>/home/.vite-plus/bin for global flavor, and it will also reduce the maintaining pressure. Would it bring another benefit 😄 |
Sorry, something went wrong.
|
@liangmiQwQ No problem, the whitelist is a bit over-engineered right now, which has made it unnecessarily complex. |
Sorry, something went wrong.
|
Nice, it almost works! I will simplify the implementation and do some validation tomorrow 😄 |
Sorry, something went wrong.
There was a problem hiding this comment.
Here are some automated review suggestions for this pull request.
Reviewed commit: 38f4701d86
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Sorry, something went wrong.
…epack-snap-allowlist # Conflicts: # crates/vite_cli_snapshots/tests/cli_snapshots/main.rs
There was a problem hiding this comment.
@liangmiQwQ Good job!
Sorry, something went wrong.
Migrates 9 of the 10 npm-global shim cases (global npm install/uninstall link behavior) from packages/cli/snap-tests-global, unblocked by #2110 removing the step program allow-list. Runner/vpt additions the cases need: - `vpt stat-file` gains a `symlink` state (via symlink_metadata, shell `test -L` semantics) so link assertions keep their predicate fidelity; no existing baseline stats a symlink. - vpt expands a leading `$NAME` env reference in its arguments (`$VP_HOME/bin/x`), replacing the shell expansion the legacy runner provided; unset variables stay verbatim. - The per-case npm global prefix joins the redaction paths as `<npm-prefix>` (a sibling of `home`, so the `<home>` pair never matched it; `npm config get prefix` prints it). - New WHICH_NODE_VERSION_RE masks `vp env which`'s `Node:` field and the BinConfig `"nodeVersion"` value, which track the environment's managed default runtime rather than a fixture pin. The npm install/uninstall steps run with `tty = false`: under a PTY the npm shim's link-hint path probes the terminal and blocks on a reply the vt100 emulator never sends, while the legacy runner always piped stdio. npm-global-install-custom-prefix-on-path stays in the legacy tree: its `PATH=$(pwd)/...:$PATH` dynamic prefix is not expressible without a shell. Part of #2116.
Migrates 9 of the 10 npm-global shim cases (global npm install/uninstall link behavior) from packages/cli/snap-tests-global, unblocked by #2110 removing the step program allow-list. Runner/vpt additions the cases need: - `vpt stat-file` gains a `symlink` state (via symlink_metadata, shell `test -L` semantics) so link assertions keep their predicate fidelity; no existing baseline stats a symlink. - vpt expands a leading `$NAME` env reference in its arguments (`$VP_HOME/bin/x`), replacing the shell expansion the legacy runner provided; unset variables stay verbatim. - The per-case npm global prefix joins the redaction paths as `<npm-prefix>` (a sibling of `home`, so the `<home>` pair never matched it; `npm config get prefix` prints it). - New WHICH_NODE_VERSION_RE masks `vp env which`'s `Node:` field and the BinConfig `"nodeVersion"` value, which track the environment's managed default runtime rather than a fixture pin. The npm install/uninstall steps run with `tty = false`: under a PTY the npm shim's link-hint path probes the terminal and blocks on a reply the vt100 emulator never sends, while the legacy runner always piped stdio. npm-global-install-custom-prefix-on-path stays in the legacy tree: its `PATH=$(pwd)/...:$PATH` dynamic prefix is not expressible without a shell. Part of #2116.
Migrates 9 of the 10 npm-global shim cases (global npm install/uninstall link behavior) from packages/cli/snap-tests-global, unblocked by #2110 removing the step program allow-list. Runner/vpt additions the cases need: - `vpt stat-file` gains a `symlink` state (via symlink_metadata, shell `test -L` semantics) so link assertions keep their predicate fidelity; no existing baseline stats a symlink. - vpt expands a leading `$NAME` env reference in its arguments (`$VP_HOME/bin/x`), replacing the shell expansion the legacy runner provided; unset variables stay verbatim. - The per-case npm global prefix joins the redaction paths as `<npm-prefix>` (a sibling of `home`, so the `<home>` pair never matched it; `npm config get prefix` prints it). - New WHICH_NODE_VERSION_RE masks `vp env which`'s `Node:` field and the BinConfig `"nodeVersion"` value, which track the environment's managed default runtime rather than a fixture pin. The npm install/uninstall steps run with `tty = false`: under a PTY the npm shim's link-hint path probes the terminal and blocks on a reply the vt100 emulator never sends, while the legacy runner always piped stdio. npm-global-install-custom-prefix-on-path stays in the legacy tree: its `PATH=$(pwd)/...:$PATH` dynamic prefix is not expressible without a shell. Part of #2116.
…te (#2134) Migrates 9 of the 10 npm-global shim cases (global npm install/uninstall link behavior) from packages/cli/snap-tests-global, unblocked by #2110 removing the step program allow-list. Runner/vpt additions the cases need: - `vpt stat-file` gains a `symlink` state (via symlink_metadata, shell `test -L` semantics) so link assertions keep their predicate fidelity; no existing baseline stats a symlink. - vpt expands a leading `$NAME` env reference in its arguments (`$VP_HOME/bin/x`), replacing the shell expansion the legacy runner provided; unset variables stay verbatim. - The per-case npm global prefix joins the redaction paths as `<npm-prefix>` (a sibling of `home`, so the `<home>` pair never matched it; `npm config get prefix` prints it). - New WHICH_NODE_VERSION_RE masks `vp env which`'s `Node:` field and the BinConfig `"nodeVersion"` value, which track the environment's managed default runtime rather than a fixture pin. The npm install/uninstall steps run with `tty = false`: under a PTY the npm shim's link-hint path probes the terminal and blocks on a reply the vt100 emulator never sends, while the legacy runner always piped stdio. npm-global-install-custom-prefix-on-path stays in the legacy tree: its `PATH=$(pwd)/...:$PATH` dynamic prefix is not expressible without a shell. Part of #2116.
) 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>
| Back | FazBrowse Home | New Git URL |
At present, the PTY runner will find the needed binaries like node, and inject these directories directly into PATH.
This can cause problem, if the users are already using Vite+, it might leak the node shim in the user's original VP_HOME, triggering Node.js re-fetching and behavior-differences, it also makes seed_runtime invalid. There are more problems, like missing the real vp binary will cause incomplete functionality, npm version is not locked, corepack is missing etc.
This PR refactors this part. We simulate the true VP_HOME structure, installing the vp binary into VP_HOME/current/bin with hardlink, put the local cli into VP_HOME/current/node_modules/vite-plus, then run vp setup to generate bins, finally expose the bins according to the flavor.
It also removes the stale tool whitelist, all the bins in the bin directory are accessible. Not only does this allow us to migrate global package related tests here in the future, but it also reduces the maintenance costs.
🤖 Generated with Codex