Skip to content

release: v0.3.2: independent package-manager versions and Oxlint plugin APIs - #2692

Merged
fengmk2 merged 2 commits into
mainfrom
release/v0.3.2
Sep 14, 2026
Merged

fengmk2 merged 2 commits into
mainfrom
release/v0.3.2

Conversation

@voidzero-guard

@voidzero-guard voidzero-guard Bot commented Sep 14, 2026

Copy link
Copy Markdown
Contributor

vp env use now sets each package manager's version independently. This release also adds Oxlint plugin APIs and fixes migration, installation, and template extraction.

Breaking Changes

Package-manager overrides

Direct package-manager commands no longer use VP_PACKAGE_MANAGER. Use the matching version variable in shell profiles, CI jobs, and Dockerfiles:

Previous override for a direct command New override
VP_PACKAGE_MANAGER=npm@<version> VP_NPM_VERSION=<version>
VP_PACKAGE_MANAGER=pnpm@<version> VP_PNPM_VERSION=<version>
VP_PACKAGE_MANAGER=yarn@<version> VP_YARN_VERSION=<version>
VP_PACKAGE_MANAGER=bun@<version> VP_BUN_VERSION=<version>

VP_PACKAGE_MANAGER still selects the manager and version for vp install and related commands. vp env use pnpm@10 now changes only the direct pnpm commands. To override vp install, set VP_PACKAGE_MANAGER explicitly.

The old .session-package-manager file is no longer read or migrated. Run vp env use again to create the new session files. Projects that use only project pins or global defaults need no changes. See the environment guide (#2658, #2659), by @liangmiQwQ.

Installer preferences

VP_NODE_MANAGER now controls only Node.js. Existing installations retain saved preferences during upgrades, so vp upgrade needs no configuration changes. For scripted installations, set VP_PM_MANAGER to apply the same choice to package managers:

Previous combined setting New combined setting
VP_NODE_MANAGER=no VP_NODE_MANAGER=no VP_PM_MANAGER=no
VP_NODE_MANAGER=yes VP_NODE_MANAGER=yes VP_PM_MANAGER=yes

Update installer commands in CI jobs and Dockerfiles. Use VP_NPM_MANAGER, VP_PNPM_MANAGER, VP_YARN_MANAGER, or VP_BUN_MANAGER for individual preferences. The interactive prompt retains its combined choice. See the installer variables guide (#2681), by @liangmiQwQ.

Vite DevTools

Projects that install @vitejs/devtools must update its dependency range from ^0.4.0 || ^0.5.0 to ^0.7.1. Projects without this optional dependency need no changes. This requirement comes with the Vite upgrade listed below.

Highlights

  • Installers and vp upgrade share setup behavior across platforms, which simplifies maintenance. The installers retain support for older releases (#2611), by @liangmiQwQ.
  • Custom Oxlint rules can import their APIs from vite-plus/lint/plugins and vite-plus/lint/plugins-dev. vp migrate updates supported existing imports (#2328), by @fengmk2.
  • vp install and vp add now honor --ignore-scripts for named packages and managed global installations (#2682), by @jong-kyung.
  • vp create rejects malformed registry versions that could place organization template files outside the cache directory (#2665), by @fengmk2.

Features

  • The bundled tools update from vite@8.2.2 to vite@8.3.0 and from rolldown@1.2.7 to rolldown@1.2.8. They also update from oxlint@1.81.0 to oxlint@1.82.0 and from oxfmt@0.66.0 to oxfmt@0.67.0. The new linter and formatter can flag code that passed before. Run vp fmt after the upgrade if CI runs vp check (#2670), by @fengmk2.

Fixes & Enhancements

  • vp env pin updates an active local .nvmrc and preserves its comments. Use --target nvmrc to select this file explicitly (#2676), by @ywenhao.
  • vp migrate reports unsupported ESLint rules that it skips, so users can review the missing checks (#2689), by @yusuke99.
  • vp migrate imports leftover tsdown configuration when a project already uses Vite+ (#2646), by @TheAlexLichter.
  • vp migrate accepts single-line JSON formatter configuration with a final newline (#2643), by @TheAlexLichter.
  • vp migrate avoids a redundant playwright dependency when the project already declares @playwright/test (#2637), by @yusuke99.
  • Newly scaffolded local generators honor --no-interactive and report missing arguments without prompts. Existing generators need the updated entrypoint (#2677), by @SaKaNa-Y.
  • vp upgrade installs its dependencies correctly when the installation directory is inside a pnpm workspace (#2644), by @fengmk2.
  • Nested package-manager commands retain the selected Node runtime and package-manager versions (#2631), by @lyzno1.
  • Built-in tools reuse the Node executable that starts the CLI. Editor lint and format servers work when node is absent from PATH (#2673), by @fengmk2.
  • The npm command wrapper enables Node's compile cache before it loads the CLI, which reduces repeated startup work (#2648), by @pablog12.
  • Package-manager commands suppress pnpm, npm, and supported Yarn update notices. Yarn 4 daily tips are also hidden (#2649, #2650, #2651), by @fengmk2.
  • Invalid package.json errors include the affected file's path (#2683), by @adamaveray.

Docs

  • The README task example uses the supported env field (#2653), by @SaKaNa-Y.
  • Migration guidance tells pnpm users to retain the generated vite and vitest dependencies (#2660), by @naokihaba.
  • Lint and format guides explain root configuration and overrides for monorepos. They clarify that nested configuration is not supported (#2668), by @liangmiQwQ.

Chore

  • The repository removes unused Babel dependencies and the unused hooks directory setter (#2634, #2647), by @jong-kyung.
  • CLI snapshot tests run across parallel jobs, and the pnpm 11 workspace pack test excludes generated archives (#2657, #2655), by @fengmk2.
  • CI removes the unused Graphite optimization and adds Solid 2 ecosystem coverage (#2678, #2680), by @fengmk2.
  • Release guidance clarifies validation and announcement procedures (#2633), by @fengmk2.
  • The runtime manager refreshes the signing keys for Node.js release verification (#2687), by @voidzero-guard[bot].

Bundled Versions

Tool Version Source
vite 8.3.0 434e8e9
rolldown 1.2.8 9704b56
tsdown 0.23.0 npm
vitest 4.1.11 npm
oxlint 1.82.0 npm
oxlint-tsgolint 7.0.2001 npm
oxfmt 0.67.0 npm

Upgrade

vp upgrade

New Contributors

@yusuke99, @pablog12, @SaKaNa-Y, @ywenhao, @adamaveray

Full Changelog: v0.3.1...v0.3.2


Merging this PR will trigger the release workflow.

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Sep 14, 2026

Copy link
Copy Markdown

🚀 Deploying Preview to Cloudflare 🚀

Preview URL: https://release-v0-3-2-viteplus-dev.voidzero-docs.workers.dev (commit 4968901)

This URL reflects your latest Preview deployment

Preview Deployments by commit

Status Deployment URL Commit Updated (UTC) See this deployment's details
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://91f10e16-viteplus-dev.voidzero-docs.workers.dev 4968901 2026-09-14T09:18:04.002Z Visit the dashboard ↗
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://87283db4-viteplus-dev.voidzero-docs.workers.dev 6b5bbca 2026-09-14T05:27:06.771Z Visit the dashboard ↗
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://954b9b40-viteplus-dev.voidzero-docs.workers.dev f7065e9 2026-09-14T05:25:22.943Z Visit the dashboard ↗

@fengmk2 fengmk2 changed the title release: v0.3.2 release: v0.3.2: independent package-manager versions and Oxlint plugin APIs Sep 14, 2026
@fengmk2 fengmk2 added the preview-build Publish this PR's commits to the registry bridge as preview builds label Sep 14, 2026
@github-actions

github-actions Bot commented Sep 14, 2026

Copy link
Copy Markdown
Contributor

CLI artifact sizes (4968901)

Final release artifacts built by the canonical build-upstream and build-windows-cli actions.
The dist rows use the Linux build. The core total excludes .node files to match the release artifact.

Artifact Format Base PR Change
packages/cli/dist Directory total 2.14 MiB 2.14 MiB 0 B (0.00%)
packages/core/dist Directory total 3.94 MiB 3.94 MiB 0 B (0.00%)
Combined package dist Directory total 6.09 MiB 6.09 MiB 0 B (0.00%)
vp (Linux x64) Binary 11.18 MiB 11.18 MiB 0 B (0.00%)
vp (Linux x64) gzip -9 4.84 MiB 4.84 MiB +19 B (+0.00%)
NAPI (Linux x64) Binary 32.12 MiB 32.12 MiB 0 B (0.00%)
NAPI (Linux x64) gzip -9 12.71 MiB 12.70 MiB -2.70 KiB (-0.02%)
vp (macOS ARM64) Binary 8.33 MiB 8.33 MiB 0 B (0.00%)
vp (macOS ARM64) gzip -9 4.21 MiB 4.21 MiB +1.62 KiB (+0.04%)
NAPI (macOS ARM64) Binary 39.68 MiB 39.68 MiB 0 B (0.00%)
NAPI (macOS ARM64) gzip -9 17.00 MiB 17.00 MiB -2.14 KiB (-0.01%)
vp (Windows x64) Binary 9.06 MiB 9.06 MiB 0 B (0.00%)
vp (Windows x64) gzip -9 3.95 MiB 3.95 MiB +575 B (+0.01%)
NAPI (Windows x64) Binary 27.03 MiB 27.03 MiB 0 B (0.00%)
NAPI (Windows x64) gzip -9 10.80 MiB 10.80 MiB -196 B (-0.00%)
Trampoline (Windows x64) Binary 13.50 KiB 13.50 KiB 0 B (0.00%)
Trampoline (Windows x64) gzip -9 7.03 KiB 7.03 KiB -1 B (-0.01%)
Installer (Windows x64) Binary 4.53 MiB 4.53 MiB 0 B (0.00%)
Installer (Windows x64) gzip -9 2.12 MiB 2.12 MiB -1 B (-0.00%)

@github-actions

github-actions Bot commented Sep 14, 2026

Copy link
Copy Markdown
Contributor

Registry bridge build (4968901)

This commit build is published to the registry bridge, which serves these as ordinary npm versions (every other package proxies to npmjs):

Package Version
vite-plus 0.0.0-commit.4968901f7a745f2393de3a0aee85375b0d67d4e9
@voidzero-dev/vite-plus-core 0.0.0-commit.4968901f7a745f2393de3a0aee85375b0d67d4e9

Install the Vite+ CLI built from this commit, then migrate a project:

# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/voidzero-dev/vite-plus/4968901f7a745f2393de3a0aee85375b0d67d4e9/packages/cli/install.sh | VP_PR_VERSION=2692 VP_LEGACY_INSTALLER_URL=https://raw.githubusercontent.com/voidzero-dev/vite-plus/4968901f7a745f2393de3a0aee85375b0d67d4e9/packages/cli/install-legacy.sh bash
# Windows (PowerShell)
$env:VP_PR_VERSION="2692"; $env:VP_LEGACY_INSTALLER_URL="https://raw.githubusercontent.com/voidzero-dev/vite-plus/4968901f7a745f2393de3a0aee85375b0d67d4e9/packages/cli/install-legacy.ps1"; irm https://raw.githubusercontent.com/voidzero-dev/vite-plus/4968901f7a745f2393de3a0aee85375b0d67d4e9/packages/cli/install.ps1 | iex

Or download the standalone Windows installer built from this commit:

Architecture Installer
x64 vp-setup-x86_64-pc-windows-msvc.exe
Arm64 vp-setup-aarch64-pc-windows-msvc.exe

GitHub requires you to sign in and downloads each installer as a ZIP artifact. Extract vp-setup.exe, then run it against this preview build:

.\vp-setup.exe --version "0.0.0-commit.4968901f7a745f2393de3a0aee85375b0d67d4e9" --registry "https://registry-bridge.viteplus.dev/"

After installing, upgrade the current project's vite-plus to this test build with:

vp migrate

Or point your package manager at the bridge registry https://registry-bridge.viteplus.dev/:

Package manager Registry config
npm / pnpm / Bun .npmrc: registry=https://registry-bridge.viteplus.dev/
Yarn (v2+) .yarnrc.yml: npmRegistryServer: "https://registry-bridge.viteplus.dev/"

Then pin the build (vite aliases to vite-plus-core; pnpm can use a catalog, npm an overrides entry):

{
  "devDependencies": {
    "vite-plus": "0.0.0-commit.4968901f7a745f2393de3a0aee85375b0d67d4e9",
    "vite": "npm:@voidzero-dev/vite-plus-core@0.0.0-commit.4968901f7a745f2393de3a0aee85375b0d67d4e9"
  }
}

@github-actions

Copy link
Copy Markdown
Contributor

🐳 Docker preview image

Built from this PR's registry bridge build:

Image Compressed size
ghcr.io/voidzero-dev/vite-plus:pr-2692 228MB
# remove any stale local copy from a previous run, then pull fresh
docker rmi ghcr.io/voidzero-dev/vite-plus:pr-2692 2>/dev/null; docker pull ghcr.io/voidzero-dev/vite-plus:pr-2692

Quick check:

docker run --rm ghcr.io/voidzero-dev/vite-plus:pr-2692 vp --version

See docs/guide/docker.md for usage.

voidzero-guard Bot and others added 2 commits September 14, 2026 17:16
NAPI bakes the package.json version into binding/index.cjs version
checks. The prepare_release workflow bumps package.json but does not
regenerate this file, so the CI build's regeneration step produces a
diff that the post-build no-unexpected-changes guard rejects.
@fengmk2 fengmk2 added preview-build Publish this PR's commits to the registry bridge as preview builds and removed preview-build Publish this PR's commits to the registry bridge as preview builds labels Sep 14, 2026
@fengmk2
fengmk2 merged commit 9fd0d0a into main Sep 14, 2026
146 of 171 checks passed
@fengmk2
fengmk2 deleted the release/v0.3.2 branch September 14, 2026 14:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

preview-build Publish this PR's commits to the registry bridge as preview builds test: create-e2e Run `vp create` e2e tests test: e2e Auto run e2e tests test: install-e2e run vite install e2e test test: sfw

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant