release: v0.3.0: XDG install layout, tsup project migration, and bun 1.4 support - #2536
release: v0.3.0: XDG install layout, tsup project migration, and bun 1.4 support#2536voidzero-guard[bot] wants to merge 2 commits into
Conversation
✅ Deploy Preview for viteplus-preview canceled.
|
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.
Native binary sizes (
|
| Artifact | Format | Base | PR | Change |
|---|---|---|---|---|
vp (Linux x64) |
Binary | 10.74 MiB | 10.74 MiB | 0 B (0.00%) |
vp (Linux x64) |
gzip -9 | 4.65 MiB | 4.65 MiB | +43 B (+0.00%) |
| NAPI (Linux x64) | Binary | 32.20 MiB | 32.20 MiB | 0 B (0.00%) |
| NAPI (Linux x64) | gzip -9 | 12.69 MiB | 12.69 MiB | -666 B (-0.01%) |
vp (macOS ARM64) |
Binary | 8.03 MiB | 8.03 MiB | -16 B (-0.00%) |
vp (macOS ARM64) |
gzip -9 | 4.05 MiB | 4.05 MiB | -3.03 KiB (-0.07%) |
| NAPI (macOS ARM64) | Binary | 39.80 MiB | 39.80 MiB | 0 B (0.00%) |
| NAPI (macOS ARM64) | gzip -9 | 16.98 MiB | 16.98 MiB | +654 B (+0.00%) |
vp (Windows x64) |
Binary | 8.63 MiB | 8.63 MiB | 0 B (0.00%) |
vp (Windows x64) |
gzip -9 | 3.77 MiB | 3.77 MiB | +1.24 KiB (+0.03%) |
| NAPI (Windows x64) | Binary | 27.03 MiB | 27.03 MiB | 0 B (0.00%) |
| NAPI (Windows x64) | gzip -9 | 10.75 MiB | 10.75 MiB | -1.20 KiB (-0.01%) |
| Trampoline (Windows x64) | Binary | 214.00 KiB | 214.00 KiB | 0 B (0.00%) |
| Trampoline (Windows x64) | gzip -9 | 103.20 KiB | 103.20 KiB | -1 B (-0.00%) |
| Installer (Windows x64) | Binary | 4.50 MiB | 4.50 MiB | 0 B (0.00%) |
| Installer (Windows x64) | gzip -9 | 2.11 MiB | 2.11 MiB | +1 B (+0.00%) |
Registry bridge build (
|
| Package | Version |
|---|---|
vite-plus |
0.0.0-commit.7ebf81e43af581194844e8fe18f65ed2eb544642 |
@voidzero-dev/vite-plus-core |
0.0.0-commit.7ebf81e43af581194844e8fe18f65ed2eb544642 |
Install the Vite+ CLI built from this commit, then migrate a project:
# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/voidzero-dev/vite-plus/7ebf81e43af581194844e8fe18f65ed2eb544642/packages/cli/install.sh | VP_PR_VERSION=2536 bash# Windows (PowerShell)
$env:VP_PR_VERSION="2536"; irm https://raw.githubusercontent.com/voidzero-dev/vite-plus/7ebf81e43af581194844e8fe18f65ed2eb544642/packages/cli/install.ps1 | iexOr 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.7ebf81e43af581194844e8fe18f65ed2eb544642" --registry "https://registry-bridge.viteplus.dev/"After installing, upgrade the current project's vite-plus to this test build with:
vp migrateOr 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.7ebf81e43af581194844e8fe18f65ed2eb544642",
"vite": "npm:@voidzero-dev/vite-plus-core@0.0.0-commit.7ebf81e43af581194844e8fe18f65ed2eb544642"
}
}
🐳 Docker preview imageBuilt from this PR's registry bridge build:
# remove any stale local copy from a previous run, then pull fresh
docker rmi ghcr.io/voidzero-dev/vite-plus:pr-2536 2>/dev/null; docker pull ghcr.io/voidzero-dev/vite-plus:pr-2536Quick check: docker run --rm ghcr.io/voidzero-dev/vite-plus:pr-2536 vp --versionSee docs/guide/docker.md for usage. |
Release vite-plus v0.3.0: a new XDG install layout, tsup project migration, and bun 1.4 support.
Fresh Unix and Windows installs now use split XDG directories. They no longer use a single
~/.vite-plusroot.vp migratenow converts tsup projects.vpnow sends bun 1.4 package-manager commands to bun directly. This release also makes the published npm package about half its previous size. The upgrade check no longer delays each command.Breaking Changes
Fresh installs now use a split XDG directory layout. Existing
~/.vite-plusinstalls keep their current layout, and Vite+ does not move their files.VP_HOMEstill selects the single-root layout (#2346), by @forehaloVP_HOME)~/.local/share/vite-plus/bin%LOCALAPPDATA%\vite-plus\bin<root>/bin~/.local/share/vite-plus%LOCALAPPDATA%\vite-plus\data<root>~/.cache/vite-plus%LOCALAPPDATA%\vite-plus\cache<root>/cache~/.config/vite-plus%APPDATA%\vite-plus<root>~/.local/state/vite-plus%LOCALAPPDATA%\vite-plus\state<root>A fresh install is a new machine, a new container image, or a CI job that installs into a clean home. After a fresh install, change the new bin directory in each location that puts
vponPATH:PATHexport of your CI jobVP_BIN_DIR,VP_DATA_DIR, andVP_CACHE_DIReach replace one category. On Unix, Vite+ also reads theXDG_*variables. Vite+ ignores a relative value.Highlights
vp migratenow converts tsup projects. It replaces thetsupdependency and script withvp pack. It also changestsup.config.tsto atsdown.config.tsthat imports fromvite-plus/pack(#2434), by @KTrain5169vpnow sends bun 1.4 package-manager commands to bun directly. It no longer uses a replacement for them. An earlier bun version keeps the previous behavior, and its message now gives the bun version that the command needs (#2513), by @jong-kyungvp deduperunsbun dedupe, including--checkvp pm prunerunsbun prunevp pm audit --fixrunsbun audit fixvp add,vp remove, andvp updatesend--filterto bunvp add --save-catalogsends--catalogto bun-Cflag.vp -C <dir> env usechanges the environment of your current shell. The-C<dir>and-C=<dir>forms also work. In zsh, Fish, Nushell, and PowerShell,vprcompletion keeps the working directory when it changes the command tovp run(#2508), by @simulacre7vite-plusnpm package is about half its previous size, 1.05 MB to 516 kB. The package now contains only Markdown documentation. It no longer contains the full VitePress workspace (#2480), by @liangmiQwQFeatures
8.2.1->8.2.2, rolldown1.2.3->1.2.5, vitest4.1.10->4.1.11, oxlint1.77.0->1.79.0, oxfmt0.62.0->0.64.0, the oxc packages and crates0.143.0->0.146.0, and@vitejs/devtools0.4.12->0.5.2(#2443, #2500, #2504, #2519, #2532), by @voidzero-guard[bot]. oxfmt and oxlint both changed version. They can report problems in code that passed before. Runvp fmtafter you upgrade if your CI runsvp checkvp toolchaindraws its tree with Unicode glyphs. It no longer uses ASCII connectors (#2442), by @liangmiQwQFixes & Enhancements
vp dev,vp build,vp preview, andvp packnow select their target in a workspace by these rules (#2530, #2533), by @fengmk2root,build,input,environments, orappTypefield, or a sourceindex.html..in the last row.vp upno longer changes"vite": "catalog:"to a version alias under pnpm. Catalog references now stay unchanged during an update. Runvp migrateonce to correct an existing project (#2425), by @fengmk2env,upgrade, orimplode(#2522), by @jong-kyungvp up -greads global package versions in the global mode of npm. A project-level setting no longer makes the lookup fail and hide an available update (#2438), by @jong-kyungvp configdoes not look for the Git hook location whenHUSKY=0,VP_GIT_HOOKS=0, orVITE_GIT_HOOKS=0disables hooks. A container without Git now works (#2458), by @tarikermisvp create vite:monorepostarts Git one time. It no longer asks two times and runsgit inittwo times (#2417), by @jong-kyungvp createdoes not ask about pre-commit hooks when you refuse Git initialization (#2477), by @liangmiQwQvp pack --no-configdoes not read the Vite config. A localvite.config.*file, itspackoptions, and its hooks no longer run (#2486), by @jong-kyungvp pack --helpshows the supported--no-configoptions (#2487), by @jong-kyungvp staged --no-concurrentruns again. It no longer sets concurrency to0. Vite+ now rejects an invalid concurrency value and an invalid negated string value (#2501), by @RSS1102vpreads about 450 kB less JavaScript at start. It loads the--initand--migratehelpers only when a command needs them (#2490), by @jong-kyungvpbinary is smaller. Vite+ no longer copies the package-manager command tree, and it disables unused tar and dialoguer features (#2507), by @liangmiQwQvp env usein cmd keeps its failure status (#2496), by @fengmk2vp execresolves a relativePATHentry such as./node_modules/.binagainst the working directory of the command (#2350), by @RSS1102setup-vptemplates continue to work. The installer selects the legacy layout for them. A template can select the new layout withVP_VPDIRS_AWARE=1(#2520), by @fengmk2currentjunction (#2505), by @fengmk2install.shdoes not show shell configuration warnings whenCI=true(#2511), by @fengmk2vp imploderemoves a long path and a locked path on Windows. A native helper does this work, and it retries the operation and records a failure (#2510), by @fengmk2vite-plus-shim-v1header. Vite+ rejects a sidecar without that header. It no longer tries to identify the layout (#2526), by @fengmk2Docs
vite-plus/testimport surface (#2413), by @jong-kyungvp hooksto the README command list (#2446), by @lyzno1vp_pm_cli_macrosandvp_toolchainto the repo map (#2524), by @jong-kyungChore
Bundled Versions
8.2.2de1111a1.2.584c904b0.22.144.1.111.79.07.0.20010.64.0Upgrade
New Contributors
@simulacre7
Full Changelog: v0.2.9...v0.3.0
Merging this PR will trigger the release workflow.