-
Notifications
You must be signed in to change notification settings - Fork 225
Permalink
Choose a base ref
{{ refName }}
default
Choose a head ref
{{ refName }}
default
Comparing changes
Choose two branches to see what’s changed or to start a new pull request.
If you need to, you can also or
learn more about diff comparisons.
Open a pull request
Create a new pull request by comparing changes across two branches. If you need to, you can also .
Learn more about diff comparisons here.
base repository: voidzero-dev/vite-plus
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 6f97f09
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
...
head repository: voidzero-dev/vite-plus
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: a0ed270
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
- 3 commits
- 25 files changed
- 3 contributors
Commits on Jun 18, 2026
-
fix(exec): exit non-zero for unmatched filters with --fail-if-no-match (
#1859) ## Summary Fixes #1858. `vp exec --fail-if-no-match` now exits with a non-zero status when one or more `--filter` expressions match no workspace packages. Previously, `vp exec` accepted and documented `--fail-if-no-match`, but the workspace execution path only emitted warnings and returned success. This made typoed filters look successful in CI even though no package command actually ran. ## Changes - Read `fail_if_no_match` before `PackageQueryArgs::into_package_query` consumes package args - Return `ExitStatus(1)` when strict mode sees unmatched package selectors - Match `vp run` / vite-task behavior by emitting an error instead of warnings in strict mode - Add snap coverage for: - single unmatched filter - unmatched + matched filters - multiple unmatched filters - successful matched strict filter
Configuration menu - View commit details
-
Copy full SHA for aeea7b9 - Browse repository at this point
Copy the full SHA aeea7b9View commit details -
revert: stop blocking older Node.js versions (#1865)
`vp` blocked commands when the resolved Node.js version fell outside the declared range (#1360), rejecting older Node that works in practice (e.g. Node 20 in rolldown CI). This removes the enforcement and widens `engines.node` to `^20.19.0 || ^22.18.0 || >=24.11.0`. The `^20.19.0` floor matches Vite's own minimum supported Node (`^20.19.0 || >=22.12.0`), so the declared range stays consistent with the bundled Vite.
Configuration menu - View commit details
-
Copy full SHA for bf5a938 - Browse repository at this point
Copy the full SHA bf5a938View commit details -
Release vite-plus v0.2.1. Restores support for older Node.js (back to `20.19.0`) and makes `vp exec --fail-if-no-match` fail correctly on unmatched filters. ### Fixes & Enhancements - Stop blocking older Node.js versions: v0.2.0 blocked commands when the resolved Node.js version fell outside the declared range. This reverts that enforcement and widens `engines.node` to `^20.19.0 || ^22.18.0 || >=24.11.0`, matching Vite's own `^20.19.0` floor, so older Node that works in practice (e.g. Node 20 in rolldown CI) is no longer rejected ([#1865](#1865)), by @fengmk2 - `vp exec --fail-if-no-match`: exit non-zero when one or more `--filter` expressions match no workspace packages. Strict mode previously only warned and returned success, so typoed filters looked successful in CI even though no package command ran ([#1859](#1859)), by @jong-kyung ### Bundled Versions | Tool | Version | Source | | --- | --- | --- | | vite | `8.0.16` | [`f94df87`](vitejs/vite@f94df87) | | rolldown | `1.1.1` | [`d7f919c`](rolldown/rolldown@d7f919c) | | tsdown | `0.22.3` | [npm](https://npmx.dev/package/tsdown/v/0.22.3) | | vitest | `4.1.9` | [npm](https://npmx.dev/package/vitest/v/4.1.9) | | oxlint | `1.70.0` | [npm](https://npmx.dev/package/oxlint/v/1.70.0) | | oxlint-tsgolint | `0.23.0` | [npm](https://npmx.dev/package/oxlint-tsgolint/v/0.23.0) | | oxfmt | `0.55.0` | [npm](https://npmx.dev/package/oxfmt/v/0.55.0) | ### Upgrade ```bash vp upgrade ``` ### Upgrading from 0.1.x to 0.2.1 Prompt ```md You are upgrading a project that uses Vite+ (the `vp` CLI) from v0.1.x to v0.2.1. v0.2.1 has one breaking change vs v0.1.x: it consumes upstream Vitest directly. The `@voidzero-dev/vite-plus-test` wrapper package is removed; `vitest` now comes in transitively through `vite-plus`. Do not run `vp migrate` for this upgrade; it is not reliable enough yet. Make the changes yourself by editing the project's files, then verify by running the tools. How to run vp: if a global `vp` is available, use it. Otherwise this project only ships the local CLI from the `vite-plus` package, so run vp as the project-local binary (for example via the package manager's exec: pnpm exec, npx, yarn, or bunx). After any install, re-resolve vp so you always run the version currently in the project. Do the following: 1. Set the `vite-plus` dependency to the exact version `0.2.1` and reinstall, so the new toolchain is installed and the lockfile moves off 0.1.x. In a monorepo, do this for every workspace package that depends on `vite-plus`. Changing the spec to `0.2.1` is what moves the lockfile off the old resolution; a reinstall that leaves the spec unchanged would keep the old version. 2. Remove the `@voidzero-dev/vite-plus-test` wrapper from the project. Search everywhere it could appear: package.json, the lockfile, any workspace or catalog config (such as pnpm-workspace.yaml or .yarnrc.yml), and the source files. Then: - Decide whether the project itself depends on vitest. It does only if a source or test file imports directly from `vitest` or `@vitest/...`, or a `@vitest/*` package is listed in its dependencies (for example a coverage provider). Imports from `vite-plus/test` do NOT count. - If the project has no such vitest usage (the common case), remove the vitest configuration entirely. In package.json, delete the `vitest` entry from `dependencies` / `devDependencies` in whatever form it takes (a `@voidzero-dev/vite-plus-test` alias, a `catalog:` reference, or a plain version). Also remove the `vitest` entry from every dependency-resolution mechanism in the project: both `overrides` and `resolutions`, pnpm `overrides`/`catalog` (in package.json or pnpm-workspace.yaml), and any catalog entry. If `vitest` appears in more than one of these, remove all of them. Do not add a pinned `vitest`; it arrives transitively through `vite-plus` and the test command still works. - If the project does use vitest directly, pin upstream vitest to the version bundled with vite-plus (4.1.9 for v0.2.1), and upgrade every vitest ecosystem package the project depends on so the whole tree resolves to a single vitest. Set each `@vitest/*` package the project lists (for example `@vitest/coverage-v8`, `@vitest/ui`, `@vitest/browser`) to that same version (4.1.9), since those are pinned to an exact vitest version. Also update any other vitest integration package (such as `vitest-browser-*`) to a release compatible with that vitest version. Leaving an ecosystem package on an older version pulls in a second copy of vitest, which Vitest rejects at runtime. - Also delete any dependency-resolution config that existed only to accommodate the wrapper or the old vitest, for example pnpm `peerDependencyRules` entries (`allowedVersions` / `ignoreMissing`) referencing `vitest`, `@vitest/*`, or `@voidzero-dev/vite-plus-test`, and the equivalent peer-tweak config in other package managers (such as yarn `packageExtensions`). Leave rules that are unrelated to vitest or the wrapper untouched. 3. Keep the `vite` -> Vite+ core override (it is still required) and set it to the matching exact version: map `vite` to `npm:@voidzero-dev/vite-plus-core@0.2.1` in whatever override, resolution, or catalog form the project already uses. `@voidzero-dev/vite-plus-core` is released in lockstep with `vite-plus`. 4. Leave imports from `vite-plus/test` (and `vite-plus/test/*`) unchanged; that is the stable public API. Only if a file imports directly from `@voidzero-dev/vite-plus-test`, repoint it to `vite-plus/test`. 5. Reinstall so the lockfile reflects your edits, then verify: confirm that no reference to `@voidzero-dev/vite-plus-test` remains anywhere outside node_modules, confirm the dependency tree resolves to a single `vitest` version (no duplicate copies), run the project's tests and confirm they pass (you will see Vitest's native banner), and run the Vite+ check workflow and confirm it passes. Constraints: - Do not run `vp migrate`. - Do not bypass git hooks. If a pre-existing failure blocks you, report it rather than forcing through. - Make the smallest set of edits that reaches the end state above; do not reformat unrelated files. - When done, give me a short summary: old vs new `vite-plus` version, the files you changed, and the test/check results. ``` **Full Changelog**: v0.2.0...v0.2.1 --- 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>
Configuration menu - View commit details
-
Copy full SHA for a0ed270 - Browse repository at this point
Copy the full SHA a0ed270View commit details
Loading
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff 6f97f09...a0ed270