Skip to content

Releases: voidzero-dev/vite-plus

vite-plus v0.3.1: manage package-manager versions with vp env

Choose a tag to compare

@github-actions github-actions released this 08 Sep 13:57
Immutable release. Only release title and notes can be modified.
13e1e5a

vp env now manages Node.js and package-manager versions together. This release also fixes TanStack Start routing and stale Vitest aliases.

Breaking Changes

Package-manager setup

Vite+ replaces Corepack with managed npm, pnpm, yarn, and bun commands. It removes the corepack shim and legacy global package-manager installations (#2391), by @liangmiQwQ.

Replace Corepack setup commands in shell profiles, CI jobs, and Dockerfiles:

Previous setup Replacement
corepack enable vp env setup
vp install -g pnpm@<version> vp env default pnpm@<version>
vp install -g yarn@<version> vp env default yarn@<version>
vp install -g bun@<version> vp env default bun@<version>
vp install -g corepack Use the managed package-manager commands directly

Use vp env pin <manager>@<version> to set a project version.

vp env command scope and JSON output

Unscoped vp env commands now operate on Node.js and package managers. Package managers support independent defaults, project pins, session overrides, and installation commands (#2398), by @liangmiQwQ.

Add node to limit an operation to Node.js, for example, vp env off node or vp env unpin node. Bare versions, such as vp env default 22.19.0, still select Node.js.

Update scripts that read JSON output:

Command New output structure
vp env current --json node and package_manager objects
vp env list --json, vp env list-remote --json node and package_managers groups

See the environment guide.

vp pack migration to tsdown@0.23

vp pack now uses tsdown@0.23, which removes deprecated options and changes defaults (#2614), by @fengmk2.

  1. Run vp migrate to update supported static configurations and package scripts, including projects that already use Vite+.
  2. Check migration warnings in vite.config.*, tsdown.config.*, and package.json.
  3. Update dynamic configurations manually. Arrays built with .map() require manual changes, even when migration reports no warning.
  4. Run vp pack to check the result.
Previous option Replacement
bundle: false unbundle: true
outExtension outExtensions
publicDir / --public-dir copy / --copy
removeNodeProtocol: true nodeProtocol: 'strip'
injectStyle css.inject
inlineOnly / deps.onlyAllowBundle deps.onlyBundle
noExternal deps.alwaysBundle
skipNodeModulesBundle: true / deps.skipNodeModulesBundle: true deps.neverBundle: true
dts.tsgo: true / dts.oxc: true dts.generator: 'tsgo' / dts.generator: 'oxc'

Migration preserves the previous defaults for dependency resolution and ATTW.

tsdown no longer supports Node.js 25. Use Node.js ^22.18.0, ^24.11.0, or >=26.0.0. The programmatic build() API now returns { bundles, watch }.

See the complete migration guide for declaration and TypeScript module-resolution changes.

CLI argument validation

vp staged, vp config, vp hooks, vp migrate, and vp create now reject unsupported options and extra positional arguments (#2523), by @fengmk2.

Remove unsupported arguments from scripts. For example, replace vp config --hooks-only with vp config --no-agent.

Highlights

  • Fix TanStack Start HTTP 404 responses caused by separate Vite runtime copies (#2617), by @fengmk2.
  • Reduce the Windows vp-shim.exe size from 214 KiB to 14 KiB (#2466), by @fengmk2.
  • Add vp check --quiet to hide lint warning diagnostics while retaining errors and summary counts (#2593), by @RSS1102.

Features

  • Add vp sync-versions --json so automation can request dependency alignment plans from manifest snapshots without changing project files (#2600), by @afonsojramos.
  • Make vp create --git suggest an initial commit command after Git initialization (#2581), by @fengmk2.
  • Make vp migrate replace frozen voidzero-dev/setup-vp@v1 workflow references with the supported version pin (#2540), by @fengmk2.
  • Upgrade rolldown from 1.2.5 to 1.2.7, tsdown from 0.22.14 to 0.23.0, and Oxc from 0.146.0 to 0.148.0. Upgrade oxlint from 1.79.0 to 1.81.0 and oxfmt from 0.64.0 to 0.66.0. These versions can flag code that passed before. Run vp fmt after upgrading if CI runs vp check (#2580, #2613), by @voidzero-guard[bot].

Fixes & Enhancements

  • Resolve package-manager versions without rewriting package.json. Use vp env pin or vp env unpin to change project declarations explicitly (#2399), by @liangmiQwQ.
  • Let vp migrate repair stale vitest aliases that previously prevented the CLI from starting (#2605), by @fengmk2.
  • Keep Vite DevTools within the version ranges supported by the bundled Vite (#2559), by @fengmk2.
  • Keep automatic Vitest upgrades on the supported 4.x major (#2612), by @fengmk2.
  • Remove a deprecated tsdown option from the prompts package build (#2597), by @jong-kyung.

Refactor

  • Use the updated which dependency to resolve relative PATH entries (#2583), by @RSS1102.
  • Remove the unused async-trait annotation from JsRuntimeProvider (#2538), by @jong-kyung.

Docs

  • Add Azure Pipelines setup instructions (#2553), by @naokihaba.
  • Correct Zed Oxc formatter settings and include JSX and TSX (#2592), by @joschuba.
  • Add Wrangler deployment configuration for the documentation site (#2596), by @mdong1909.
  • Explain conflicts between pnpm and Vite+ runtime management, including the runtimeOnFail setting (#2620), by @liangmiQwQ.

Chore

  • Run CLI snapshots without published release packages (#2625), by @fengmk2.
  • Update the release-manager skill with package-install checks, changelog guidance, and announcement handling (#2548), by @fengmk2.
  • Wait for npm dependencies to become available before publishing dependent release packages (#2601), by @fengmk2.
  • Remove old Docker preview images (#2539), by @fengmk2.
  • Stabilize external-tool snapshots and isolate npm network cases (#2577, #2604), by @fengmk2.
  • Avoid unreliable Fish PPA setup in CI (#2560), by @fengmk2.
  • Update the vinext fixture to an upstream fix (#2571), by @jong-kyung.
  • Stabilize the pnpm snapshot and Nuxt build in CI (#2591), by @voidzero-guard[bot].
  • Pin pnpm in project-creation build-approval fixtures (#2616), by @liangmiQwQ.
  • Remove unused documentation components, assets, and the typewriter dependency (#2550, #2562), by @jong-kyung.
  • Remove duplicate tempfile dependencies, an unused runtime helper, and unused error variants. Update the unit_bindings lint name (#2555, #2558, #2566, #2567), by @jong-kyung.
  • Update GitHub Actions dependencies, including actions/setup-node v7 (#2544, #2545, #2582, #2618), by @renovate[bot].
  • Update crate-ci/typos through v1.50.1 (#2584, #2589, #2609), by @renovate[bot].
  • Update repository pnpm to 11.24.0 (#2590), by @renovate[bot].
  • Update voidzero-dev/setup-vp to v1.19.0 (#2619), by @renovate[bot].

Bundled Versions

Tool Version Source
vite 8.2.2 de1111a ...
Read more

vite-plus v0.3.0: XDG install layout, tsup project migration, and Bun 1.4 support

Choose a tag to compare

@github-actions github-actions released this 24 Aug 04:01
Immutable release. Only release title and notes can be modified.
b2d15e3

Fresh installs now use a split directory layout instead of a single ~/.vite-plus root. Unix follows the XDG base directory specification, and Windows uses the standard %LOCALAPPDATA% and %APPDATA% folders. Existing ~/.vite-plus installs keep their current directory layout. vp migrate also converts tsup projects, and vp now sends Bun 1.4 package-manager commands to bun directly. The published npm package shrank by about half, and the upgrade check no longer delays each command.

Breaking Changes

  • Fresh installs now use a split directory layout instead of a single root: XDG base directories on Unix, and the standard known folders on Windows. Existing ~/.vite-plus installs keep their current layout, and the installer does not move their files. VP_HOME still selects the single-root layout (#2346), by @forehalo

    Category Unix default Windows default Single-root (VP_HOME)
    bin ~/.local/share/vite-plus/bin %LOCALAPPDATA%\vite-plus\bin <root>/bin
    data ~/.local/share/vite-plus %LOCALAPPDATA%\vite-plus\data <root>
    cache ~/.cache/vite-plus %LOCALAPPDATA%\vite-plus\cache <root>/cache
    config ~/.config/vite-plus %APPDATA%\vite-plus <root>
    state ~/.local/state/vite-plus %LOCALAPPDATA%\vite-plus\state <root>

    The installer configures your shell for the new location, and CI that installs through setup-vp keeps the single-root layout automatically. Update each hard-coded ~/.vite-plus/bin path, such as a path in a Dockerfile.

    vp upgrade leaves an existing install where it is. To move one to the split layout, remove it and install again:

    vp implode
    unset VP_HOME VP_DATA_DIR VP_BIN_DIR VP_CACHE_DIR
    curl -fsSL https://vite.plus | bash

    On Windows, run vp implode, then Remove-Item Env:\VP_HOME, Env:\VP_DATA_DIR, Env:\VP_BIN_DIR, Env:\VP_CACHE_DIR -ErrorAction SilentlyContinue, then irm https://vite.plus/ps1 | iex. Also delete any persistent VP_HOME or VP_*_DIR definition from your shell profile or system environment, because a fresh install still honors them and VP_HOME selects the single-root layout.

    vp implode removes every Vite+ managed Node.js runtime, global package, configuration file, and cache. Stay on your current layout if you would rather not rebuild that state. See Move an existing install to the split directory layout.

Highlights

  • vp migrate now converts tsup projects. It replaces the tsup dependency and script with vp pack. It also changes tsup.config.ts to a tsdown.config.ts that imports from vite-plus/pack (#2434), by @KTrain5169
  • Shell integrations now accept the global -C flag. vp -C <dir> env use changes the environment of your current shell. The -C<dir> and -C=<dir> forms also work. In zsh, Fish, Nushell, and PowerShell, vpr completion keeps the working directory when it changes the command to vp run (#2508), by @simulacre7
  • The published vite-plus npm package shrank from 1.05 MB to 516 kB, a 51% reduction. It now includes only Markdown files from the documentation workspace. It no longer includes VitePress tooling, images, or deployment files (#2480), by @liangmiQwQ

Features

  • With Bun 1.4 or later, Vite+ forwards these commands and flags to bun. Earlier Bun versions keep their fallback or unsupported behavior and report the required Bun version (#2513), by @jong-kyung
    • vp dedupe runs bun dedupe, including --check
    • vp pm prune runs bun prune
    • vp pm audit --fix runs bun audit fix
    • vp add, vp remove, and vp update send --filter to bun
    • vp add --save-catalog sends --catalog to bun
  • The upgrade check no longer delays fast commands. It runs in a separate process. It reports an available update during a later command, and commands no longer wait for the registry (#2380), by @liangmiQwQ
  • Upgrade the bundled toolchain (#2443, #2500, #2504, #2519, #2532), by @voidzero-guard[bot]:
    • vite: 8.2.1 to 8.2.2
    • rolldown: 1.2.3 to 1.2.5
    • vitest: 4.1.10 to 4.1.11
    • oxlint: 1.77.0 to 1.79.0
    • oxfmt: 0.62.0 to 0.64.0
    • Oxc packages and crates: 0.143.0 to 0.146.0
    • Vite+ now accepts @vitejs/devtools 0.5.x. The optional peer range is ^0.4.0 || ^0.5.0. This repository uses 0.5.2.
    • oxfmt and oxlint can report new issues after the upgrade. Run vp check locally. Use vp fmt to fix formatting changes.
  • vp toolchain draws its tree with Unicode glyphs. It no longer uses ASCII connectors (#2442), by @liangmiQwQ

Fixes & Enhancements

  • At a workspace root, bare app commands now use defaultPackage or detected root configuration before they select a member package. A workspace without member packages runs the command in the root (#2530, #2533), by @fengmk2
  • vp up no longer changes "vite": "catalog:" to a version alias under pnpm. Catalog references now stay unchanged during an update. Run vp migrate once to correct an existing project (#2425), by @fengmk2
  • If the server accepts range requests, an interrupted runtime download continues from the bytes on disk. It does not start again (#2452), by @tarikermis
  • The local CLI shows the install instructions when you run a global-only command such as env, upgrade, or implode (#2522), by @jong-kyung
  • vp up -g asks npm for globally installed package versions. A project-level setting no longer makes the lookup fail and hide an available update (#2438), by @jong-kyung
  • When hooks are disabled through HUSKY=0, VP_GIT_HOOKS=0, or VITE_GIT_HOOKS=0, vp config skips the Git lookup. This lets vp config run in a container without Git (#2458), by @tarikermis
  • vp create vite:monorepo now asks once about Git and runs git init once (#2417), by @jong-kyung
  • vp create does not ask about pre-commit hooks when you choose not to initialize Git (#2477), by @liangmiQwQ
  • vp pack --no-config does not read the Vite config. A local vite.config.* file, its pack options, and its hooks no longer run (#2486), by @jong-kyung
  • vp pack --help shows the supported --no-config options (#2487), by @jong-kyung
  • vp staged --no-concurrent works again. --concurrent accepts true, false, or a number greater than 0. It rejects other values. Vite+ also rejects --no-cwd, --no-diff, and --no-diff-filter (#2501), by @RSS1102
  • vp reads about 450 kB less JavaScript at start. It loads the --init and --migrate helpers only when a command needs them (#2490), by @jong-kyung
  • The standalone vp binary is smaller. Vite+ no longer copies the package-manager command tree, and it disables unused tar and dialoguer features (#2507), by @liangmiQwQ
  • A generated Fish environment file escapes the special characters in a path (#2492), by @fengmk2
  • A generated POSIX shell environment file escapes the special characters in a path. It also removes each duplicate Vite+ bin entry (#2494), by @fengmk2
  • The generated cmd.exe wrapper preserves the exit status from vp env use. It does not apply output after a failed command (#2496), by @fengmk2
  • vp exec resolves a relative PATH entry such as ./node_modules/.bin against the working directory of the command (#2350), by @RSS1102
  • Older GitLab setup-vp templates continue to work. The installer selects the legacy layout for them. A template can select the new layout with VP_VPDIRS_AWARE=1 (#2520), by @fengmk2
  • The Windows installer checks the directory variables and the requested version before it downloads a payload. It also repairs a broken current junction (#2505), by @fengmk2
  • install.sh does not show shell configuration warnings when CI=true (#2511), by @fengmk2
  • On Windows, vp implode can remove Vite+ roots that contain long or locked paths. A native helper does this work, and it retries cleanup and writes an error log if cleanup fails (#2510), by @fengmk2
  • A Windows trampoline sidecar must have a `vite-plus-shim-...
Read more

vite-plus v0.2.9: add `vp toolchain` and `vp hooks`, and fix `vp run` inside Codex and Claude Code sandboxes

Choose a tag to compare

@github-actions github-actions released this 12 Aug 03:04
Immutable release. Only release title and notes can be modified.
73bdd10

vp toolchain prints the tools, versions, and bundling relationships in the active release. vp hooks manages the Vite+ dispatcher for Git hooks, and removes the manual setup steps. vp run no longer fails in the default Codex CLI and Claude Code sandboxes. Those sandboxes deny Unix sockets and shared memory, which task IPC and file-access tracking used. The rest of the release makes the install path more reliable. It fixes npm 12 blocked install scripts, Yarn 2+ integrity pins, and baseline Bun builds for older CPUs. It also fixes downloads that stopped on slow connections.

Highlights

  • New vp toolchain command. It prints the tools, versions, and bundling relationships in the active Vite+ release as a tree. The tree shows vite-plus, core, vite, rolldown, oxc, oxc-resolver, and the compiled Vite Task with its build time and revision. Give a tool name to select part of the tree. Use --json for machine-readable output. Use --global for the global release (#2111), by @fengmk2
  • New vp hooks command. It manages the Vite+ dispatcher for Git hooks. enable installs or refreshes the dispatcher and sets core.hooksPath. disable removes the dispatcher and keeps that preference, so prepare and vp config do not install it again. status shows the current state. Use --hooks-dir to set a custom directory. Vite+ keeps that directory for later commands. Vite+ does not change project-owned hooks, staged config, or package.json lifecycle scripts (#2341), by @dennybiasiolli
  • vp run now works in the default Codex CLI and Claude Code sandboxes. Before this release, a cached task failed with Failed to set up task communication: Operation not permitted. The task code never started. Automatic file-access tracking also failed. Task caching and input tracking now work in both default profiles. You do not need extra sandbox permissions (vite-task#569, vite-task#576), by @wan9chi

Features

  • vp create now shows the dependencies whose install scripts npm 12 blocked. Before this release, Vite+ left those dependencies unbuilt and gave no message. To approve them, vp create runs vp pm approve-builds and then vp pm rebuild (#2336), by @fengmk2
  • Large downloads no longer stop on slow connections. Node.js tarballs and package-manager tarballs now use a 10 minute timeout. Before this release, they used the shared 2 minute per-request limit. That limit stopped healthy downloads below approximately 250 KB/s. It also made vp env install and vp migrate impossible to complete. Set VP_DOWNLOAD_TIMEOUT to a different number of seconds (#2386), by @tarikermis
  • Package-manager downloads now show a byte progress bar. The managed Node.js runtime already showed one. A slow download no longer looks stopped (#2369), by @semimikoh
  • You can now select JetBrains editors (IntelliJ, WebStorm, and similar) in the editor setup question. Vite+ writes the Oxc plugin ID to .idea/externalDependencies.xml. The docs now describe the gitignore strategy for .idea (#2204, #2378), by @KTrain5169
  • vp now shows a warning when it falls back to the global CLI in a project that has no project-local vite-plus. If the project declares the dependency, vp tells you to run vp install. If the project does not declare it, vp points to the migration guide. vp migrate and commands outside a project stay silent (#2362), by @liangmiQwQ
  • Generated editor settings now disable nested Oxlint config resolution. The Vite+ config stays authoritative (#2331), by @liangmiQwQ

Note

Upstream toolchain upgrade: vite 8.2.0 -> 8.2.1, rolldown 1.2.2 -> 1.2.3, oxlint 1.76.0 -> 1.77.0, oxfmt 0.61.0 -> 0.62.0, and the oxc npm packages and Rust crates 0.142.0 -> 0.143.0. oxfmt and oxlint both changed. The new versions can report problems in code that passed before. If your CI runs vp check, run vp fmt after you upgrade (#2373), by @voidzero-guard[bot]

Fixes & Enhancements

  • Yarn 2+ pins from corepack use now verify against the extracted CLI (bin/yarn.js), not the npm tarball. vp install no longer fails on a cold cache. vp run no longer downloads Yarn again on every run (#2227), by @leslieeilsel
  • vp dev no longer crashes at startup with ENOENT when experimental.bundledDev is enabled. The bundled dev client path now points to the packaged layout (#2384), by @lofcz
  • vp migrate now rejects a workspace member as its target. Before this release, it migrated the enclosing workspace instead. It now tells you to run the command from the workspace root (#2229), by @leslieeilsel
  • VP_NODE_VERSION=22 and other partial versions now resolve to an exact Node.js release. This applies to shim-dispatched commands such as vp env exec node -v (#2411), by @jong-kyung
  • Managed bunx shims now dispatch through bun x. bunx <package> no longer starts a matching package script recursively. This applies to new Bun installations (#2151), by @liangmiQwQ
  • Managed Bun now selects the baseline build on x64 CPUs that do not have AVX2. Bun's standard builds require AVX2. Cached installations keep their current files (#2179), by @liangmiQwQ
  • Generated Nushell env files now escape and normalize paths correctly. A VP_HOME path that contains spaces or quotes now loads without an error (#2191), by @naokihaba
  • vite-plus/test/browser-* type exports now add .js extensions to relative shim specifiers. Those specifiers now resolve with NodeNext module resolution (#2360), by @eai04191
  • Tool-backed help is now consistent with upstream. An exact vp <command> --help shows the local themed help. A command with more arguments (vp test --help --coverage, vp test list --help) goes to the bundled tool. Deep help and subcommand help stay complete (#2345), by @liangmiQwQ
  • Vite Task diagnostics now print paths and working directories without Rust debug formatting. Vite+ no longer prints quoted paths or escaped Windows backslashes (vite-task#534), by @liangmiQwQ
  • Broad workspace globs no longer find and run package scripts inside node_modules (vite-task#539), by @jong-kyung

Refactor

Docs

Chore

Read more

vite-plus v0.2.8: monorepo target resolution, breaking VP_* environment variable renames, and install fixes

Choose a tag to compare

@github-actions github-actions released this 05 Aug 06:15
Immutable release. Only release title and notes can be modified.
fc3f0e2

Bare vp dev/build/preview/pack at a monorepo root now resolve a target package instead of silently running against the root, and three Vite+-specific environment variables move to the VP_* prefix without compatibility aliases. Two failures that broke Vite+ before it could run are also fixed: the crash on container images that ship no CA certificates, and the missing Rolldown binding under pnpm's global virtual store.

Breaking Changes

  • Rename three Vite+-specific environment variables to the VP_* prefix, with no compatibility aliases, so the old names stop working (#2312), by @jong-kyung:

    Old New
    VITE_LOG VP_LOG
    VITE_GLOBAL_CLI_JS_SCRIPTS_DIR VP_GLOBAL_CLI_JS_SCRIPTS_DIR
    VITE_UPDATE_TASK_TYPES VP_UPDATE_TASK_TYPES

    Update any shell profile, CI job, or Dockerfile that sets the old names.

Highlights

  • Resolve a target package for vp dev, build, preview, and pack at a monorepo root: interactive shells get a fuzzy package picker, non-interactive runs list the candidates and exit 1 instead of building the root, and a new global -C <dir> flag or a defaultPackage setting (a single directory, or an object mapping each of the four commands to its own directory) skips the prompt (#2031, #2305), by @fengmk2
  • Stop aborting with exit 134 on container images that ship no CA certificates (Debian slim, distroless): the shared HTTP client now retries once with the bundled Mozilla root list, like Node's own bundled roots, and reports a real error instead of panicking when it still cannot be built (#2273, #2295), by @jbmusso and @fengmk2
  • Resolve the bundled Rolldown binding through platform packages instead of an undeclared require back into vite-plus, fixing Cannot find module 'vite-plus/binding' under pnpm enable-global-virtual-store and in standalone @voidzero-dev/vite-plus-core installs (#2313), by @fengmk2
  • Add vp pm ci for reproducible frozen-lockfile installs, and vp pm patch / vp pm patch-commit for editing dependencies in place on pnpm, bun, and Yarn Berry (npm and Yarn Classic warn and exit successfully) (#2082, #2308), by @forehalo and @jong-kyung

Features

  • Upgrade the bundled toolchain: vite 8.1.5 -> 8.2.0, rolldown 1.2.0 -> 1.2.2, oxlint 1.75.0 -> 1.76.0, oxfmt 0.60.0 -> 0.61.0, and Vite DevTools 0.4.5 -> 0.4.10 (#2302, #2311), by @voidzero-guard[bot]. The new oxfmt and oxlint can flag code that passed before, so run vp fmt after upgrading if your CI runs vp check.
  • Read the Node.js version from .nvmrc when no other version source is present (#2244), by @BlankParticle
  • Support pnpm v12, which ships as a native binary: Vite+ now downloads the platform-specific @pnpm/exe.* package and generates native shims, so pnpm and pnpx work instead of failing to exec (#2289), by @jong-kyung
  • Verify the downloaded bun platform tarball against the registry dist.integrity hash (#2310), by @jong-kyung

Fixes & Enhancements

  • Let vp config install the Git hook dispatcher without creating or modifying project hook scripts or staged-file configuration, so a custom .vite-hooks/pre-commit survives (#2280), by @TheAlexLichter
  • Nest immutable global package installs under packages/<package>/<uuid> instead of using # in the path, which Node treated as a URL fragment and which broke dynamic imports inside installed packages (#2222), by @liangmiQwQ
  • Keep the recorded version spec on global installs, so vp update -g follows a dist tag or range instead of silently resolving back to latest, vp outdated -g reports Wanted versus Latest, and vp update -g --latest explicitly moves packages back to latest (#2249), by @TheAlexLichter
  • Stop deleting a managed Node.js runtime that another process is concurrently installing (#2248), by @shulaoda
  • Preserve the real exit code when a spawned process is terminated by a signal on Unix (#2154), by @liangmiQwQ
  • Honor an explicit vp create --package-manager outside monorepos instead of inheriting the manager from a non-monorepo ancestor directory (#2226), by @jong-kyung
  • Scaffold the vite:library template into a directory that contains only .git, while still refusing to overwrite existing user files (#2287), by @RSS1102
  • Render help for delegated commands from the local CLI, so vp <command> --help matches the installed toolchain instead of drifting (#2184), by @liangmiQwQ
  • Resolve typeAware and typeCheck options inherited through Oxlint extends, so vp check --no-lint runs and classifies type checking correctly (#2228), by @jong-kyung
  • Report (no version) instead of unknown when globally installing a local package that has no version field (#2232), by @liangmiQwQ

Refactor

  • Rename the Git hooks environment variable to VP_GIT_HOOKS, keeping VITE_GIT_HOOKS working as a deprecated alias (#2195), by @dennybiasiolli
  • Consolidate the package manager infrastructure so typed command arguments are the source of truth for per-manager compatibility (#2140), by @forehalo
  • Generate the Zed language settings from a language list instead of 17 near-identical blocks (#2294), by @jong-kyung
  • Share the agent-file detect and write traversal helpers so both passes apply identical rules (#2296), by @jong-kyung
  • Drop redundant clippy allow attributes in the global CLI (#2235), by @shulaoda

Docs

  • Avoid a duplicate vp installation step in the onboarding prompt (#2291), by @Arcadi4
  • Recommend stacked pull requests for submitting changes (#2281), by @fengmk2
  • Correct stale delegation comments in the global CLI (#2236), by @shulaoda
  • Improve the release draft review guidance in the release-manager skill (#2285), by @wan9chi

Chore

  • Stop emitting unmet peer warnings for the vite-plus peer of oxfmt and oxlint on every install (#2321), by @fengmk2
  • Remove duplicate direct dependency declarations so each build dependency is owned by one workspace (#2318), by @jong-kyung
  • Declare @emnapi peers where @napi-rs/cli is used (#2319), by @jong-kyung
  • Exclude rollup-tests from the workspace and update basic-ftp (#2322), by @fengmk2
  • Remove unused EnvConfig fields (#2320), by @jong-kyung
  • Remove the obsolete peer dependency merger tool (#2303), by @jong-kyung
  • Stop the staging deploy from triggering on external pull requests (#2293), by @BlankParticle
  • Kill the real vp process, and kill it before its children, in the env_install_interrupt snapshot test (#2299, #2316), by @fengmk2
  • Suppress racy optimizer logs in the vitest_browser_mode snapshot test (#2297), by @fengmk2
  • Remove the obsolete auto-install environment from the snapshot tests (#2163), by @liangmiQwQ

Bundled Versions

Tool Version Source
vite 8.2.0 fa79f9a
rolldown 1.2.2 872b98a
tsdown 0.22.14 npm
vitest 4.1.10 npm
oxlint 1.76.0 npm ...
Read more

vite-plus v0.2.7: Clearer guidance for built-in commands and scripts

Choose a tag to compare

@github-actions github-actions released this 31 Jul 08:54
Immutable release. Only release title and notes can be modified.
c17e1c3

This release points users to vpr <name> when a Vite+ built-in command and package script share a name, adds concurrency control to vp pack, and smooths migrations and package-manager setup.

Highlights

  • Point users to vpr <name> when a Vite+ built-in command and package.json script share a name (#2259, #2262, #2265, vite-task#570), by @wan9chi
  • Add --concurrency to vp pack to limit parallel Rolldown builds, and update tsdown 0.22.13 -> 0.22.14 and Vite DevTools 0.4.2 -> 0.4.5 (#2233), by @voidzero-guard[bot]
  • Add read-only Svelte rune globals to migrated Oxlint overrides, preventing false no-undef errors (#2192), by @naokihaba
  • Install package managers from npm tarballs with nonstandard top-level directories, fixing Yarn 1.22.19 installation (#2264), by @TheAlexLichter

Fixes & Enhancements

  • Prevent the Oxc language server from crashing when contributors open the Vite+ workspace in VS Code (#2245), by @jong-kyung

Docs

  • Document the full procedure for removing Vite+ commit hooks (#2218), by @TheAlexLichter
  • Document per-process and per-machine ways to disable Vite+ commit hooks without uninstalling them (#2230), by @TheAlexLichter
  • Clarify when to use built-in vp commands versus package scripts through vp run or vpr, including migration and agent guidance (#2255), by @wan9chi
  • Document GitLab CI/CD setup with the reusable setup-vp template (#2258), by @naokihaba

Chore

  • Run Semgrep security scans on pull requests and pushes to main (#2223), by @Boshen
  • Re-enable Vitest browser-mode CLI snapshot coverage on every supported platform (#2275), by @wan9chi
  • Stabilize Windows CLI snapshot tests for interrupted installs and browser port fallback (#2282), by @wan9chi
  • Replace deprecated shared JavaScript and TypeScript VS Code settings with their current js/ts.* names (#2246), by @jong-kyung

Bundled Versions

Tool Version Source
vite 8.1.5 5e7fe12
rolldown 1.2.0 03e1e34
tsdown 0.22.14 npm
vitest 4.1.10 npm
oxlint 1.75.0 npm
oxlint-tsgolint 7.0.2001 npm
oxfmt 0.60.0 npm

Upgrade

vp upgrade

Full Changelog: v0.2.6...v0.2.7

Published Packages

  • @voidzero-dev/vite-plus-core@0.2.7
  • vite-plus@0.2.7

Installation

macOS/Linux:

curl -fsSL https://vite.plus | bash

Windows:

irm https://vite.plus/ps1 | iex

Or download and run vp-setup.exe from the assets below.

View the full commit: c17e1c3

Docker:

docker run --rm -it -v "$PWD:/app" -w /app ghcr.io/voidzero-dev/vite-plus:0.2.7 vp build

Run any vp command without installing it; see the Docker guide for more.

vite-plus v0.2.6: Stable type-aware linting and more reliable task caching

Choose a tag to compare

@github-actions github-actions released this 23 Jul 06:25
Immutable release. Only release title and notes can be modified.
cd064c6

This release moves Vite+'s type-aware linting to the stable tsgolint 7 engine, updates the bundled build and formatting tools, strengthens vp run caching and workspace discovery, and removes the redundant vp build startup banner.

Highlights

  • Move bundled type-aware linting to stable tsgolint 7, and update Vite 8.1.4 -> 8.1.5, Rolldown 1.1.5 -> 1.2.0, tsdown 0.22.7 -> 0.22.13, Oxlint 1.73.0 -> 1.75.0, oxlint-tsgolint 0.24.0 -> 7.0.2001, and Oxfmt 0.58.0 -> 0.60.0 (#2214), by @voidzero-guard[bot]
  • Improve vp run reliability by caching much larger automatically tracked input sets, discovering npm workspaces whose patterns start with ./, and providing more accurate error messages (vite-task#554, vite-task#547, vite-task#552, #2215), by @wan9chi and @liangmiQwQ
  • Remove the redundant Vite startup banner from vp build output and fail fast when upstream Vite changes invalidate Vite+ branding patches (#2200, #2205), by @liangmiQwQ

Refactor

  • Deduplicate package-manager version gates in migration catalog handling (#2216), by @jong-kyung
  • Unify static and generated CLI help under one document model and renderer (#2211), by @jong-kyung
  • Reuse shared subprocess exit-status handling across global CLI command paths (#2196), by @jong-kyung

Docs

  • Fix broken documentation anchors and add Migration Rules to the Migrate sidebar (#2203), by @charpeni

Chore

  • Stabilize vp create build-approval snapshots by removing package-age timing from those fixtures (#2224), by @wan9chi
  • Remove the temporary release workflow dispatch used for the previous release (#2193), by @wan9chi
  • Share package-manager fixtures across CLI tests (#2197), by @jong-kyung
  • Remove stale raw Oxlint and Oxfmt development dependencies that bypassed repository editor configuration (#2187), by @liangmiQwQ

Bundled Versions

Tool Version Source
vite 8.1.5 5e7fe12
rolldown 1.2.0 03e1e34
tsdown 0.22.13 npm
vitest 4.1.10 npm
oxlint 1.75.0 npm
oxlint-tsgolint 7.0.2001 npm
oxfmt 0.60.0 npm

Upgrade

vp upgrade

New Contributors

Welcome @charpeni.

Full Changelog: v0.2.5...v0.2.6

Published Packages

  • @voidzero-dev/vite-plus-core@0.2.6
  • vite-plus@0.2.6

Installation

macOS/Linux:

curl -fsSL https://vite.plus | bash

Windows:

irm https://vite.plus/ps1 | iex

Or download and run vp-setup.exe from the assets below.

View the full commit: cd064c6

Docker:

docker run --rm -it -v "$PWD:/app" -w /app ghcr.io/voidzero-dev/vite-plus:0.2.6 vp build

Run any vp command without installing it; see the Docker guide for more.

vite-plus v0.2.5: Cleaner environments and more reliable workflows

Choose a tag to compare

@github-actions github-actions released this 17 Jul 01:21
Immutable release. Only release title and notes can be modified.
93dc59a

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), by @liangmiQwQ
  • Add vp pm version, forwarding native version commands to npm, pnpm, Yarn, and Bun (#2127), by @jong-kyung
  • Add TypeScript 7 support to declaration generation and generated library projects with tsdown 0.22.7 (#2104, #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, vite-task#518, vite-task#523, vite-task#524, vite-task#542, #2126, #2167), by @wan9chi
  • Prevent CLI diagnostics from truncating or panicking when inherited standard output or error is nonblocking (#2172, #2173), by @wan9chi

Fixes & Enhancements

  • Reduce standalone vp binary sizes by about 5% on Linux and macOS and 19% on Windows (#2043), by @fengmk2
  • Keep the Docker image non-root by default while allowing passwordless sudo for Playwright browser dependencies and system packages (#2088), by @fengmk2
  • Ignore .env and .env.* in generated projects while keeping .env.example trackable (#2095), by @forehalo
  • Create vp-use.cmd after the Windows environment bin directory is ready and document its Command Prompt-only usage (#2128), by @liangmiQwQ
  • Render user-facing process statuses and paths without Rust debug wrappers (#2130), by @liangmiQwQ
  • Make vp dedupe fall back to yarn install with a warning on Yarn Classic (#2139), by @jong-kyung
  • Ensure package-manager child processes, including Bun, can always find the managed Node.js runtime (#2158), by @BlankParticle

Docs

  • Update the release-manager post-release guidance (#2096), by @wan9chi
  • Add Windows to the Namespace sponsor credit (#2108), by @fengmk2
  • Document installer and runtime environment variables, registry settings, TLS options, and precedence rules (#2114), by @yukinoshi
  • Mark shell examples in CONTRIBUTING.md as Bash code blocks (#2159), by @BlankParticle

Chore

Bundled Versions

Tool Version Source
vite 8.1.4 a477454
rolldown 1.1.5 f09947a
tsdown 0.22.7 npm
vitest 4.1.10 npm
oxlint 1.73.0 npm
oxlint-tsgolint 0.24.0 npm
oxfmt 0.58.0 npm

Upgrade

vp upgrade

New Contributors

Welcome @yukinoshi and @BlankParticle.

Full Changelog: v0.2.4...v0.2.5

Published Packages

  • @voidzero-dev/vite-plus-core@0.2.5
  • vite-plus@0.2.5

Installation

macOS/Linux:

curl -fsSL https://vite.plus | bash

Windows:

irm https://vite.plus/ps1 | iex

Or download and run vp-setup.exe from the assets below.

View the full commit: 93dc59a

Docker:

docker run --rm -it -v "$PWD:/app" -w /app ghcr.io/voidzero-dev/vite-plus:0.2.5 vp build

Run any vp command without installing it; see the Docker guide for more.

vite-plus v0.2.4: Vitest security hotfix

Choose a tag to compare

@github-actions github-actions released this 08 Jul 09:18
Immutable release. Only release title and notes can be modified.
1ca9f0f

This hotfix updates the bundled Vitest Browser Mode packages to 4.1.10, which includes the fix for GHSA-p63j-vcc4-9vmv. The advisory is critical and affects @vitest/browser <=4.1.9.

Highlights

  • Critical Vitest Browser Mode advisory fixed: bundled vitest and @vitest/browser* move from 4.1.9 to 4.1.10, addressing GHSA-p63j-vcc4-9vmv, where provider commands could bypass the file access permission gate (#2089), by @voidzero-guard[bot]

Chore

  • Add the standard release-manager skill for vite-plus release operations (#2019), by @fengmk2

Bundled Versions

Tool Version Source
vite 8.1.3 578ffb8
rolldown 1.1.4 6cbd233
tsdown 0.22.3 npm
vitest 4.1.10 npm
oxlint 1.72.0 npm
oxlint-tsgolint 0.24.0 npm
oxfmt 0.57.0 npm

Upgrade

vp upgrade

New Contributors

No new contributors in this release.

Full Changelog: v0.2.3...v0.2.4

Published Packages

  • @voidzero-dev/vite-plus-core@0.2.4
  • vite-plus@0.2.4

Installation

macOS/Linux:

curl -fsSL https://vite.plus | bash

Windows:

irm https://vite.plus/ps1 | iex

Or download and run vp-setup.exe from the assets below.

Docker:

docker run --rm -it -v "$PWD:/app" -w /app ghcr.io/voidzero-dev/vite-plus:0.2.4 vp build

Run any vp command without installing it; see the Docker guide for more.

vite-plus v0.2.3: config extraction, create, and vp run reliability fixes

Choose a tag to compare

@github-actions github-actions released this 07 Jul 12:11
Immutable release. Only release title and notes can be modified.
7f70680

A patch release that fixes static config extraction for vite.config.ts files whose defineConfig comes from a preset or custom wrapper (no longer misread as Vite+'s own), fixes vp create for org templates on registries that strip custom package fields, cleans up terminal output after Ctrl-C during vp run, and updates bundled Vite to 8.1.3.

Highlights

  • Custom VP_HOME is honored on every run: the global vp now respects a user-set VP_HOME for its home directory instead of falling back to ~/.vite-plus, and persists it in the generated env files, so a custom install location no longer produces multiple instances or unusable packages (#2029), by @liangmiQwQ

Features

  • Upgrade bundled Vite from 8.1.2 to 8.1.3 (inlined CSS after the shebang line, CSS preload for nested dynamic imports, SSR stacktrace column fix) (#2042), by @voidzero-guard[bot]

Fixes & Enhancements

  • vp run no longer misreads a vite.config.ts when its defineConfig comes from a preset or a custom wrapper instead of vite-plus or vite. Such configs are now evaluated at runtime rather than assumed to be Vite+'s own, so projects that use them no longer wrongly report Task "build" not found (#2060, #2075), by @liangmiQwQ and @fengmk2
  • Killing a vp run task with Ctrl-C no longer leaves odd OSC escape sequences in the terminal; vp defers its own Ctrl-C handling until the child process exits (#2079), by @forehalo
  • vp migrate: rewriting a package.json prettier script now emits a single --check, so scripts that combined --check with --list-different / -l / -c no longer produce a duplicated vp fmt --check --check (#2044), by @shulaoda
  • vp create @org:name: read the org template catalog (createConfig) from the published tarball when the registry (e.g. GitHub Packages) strips custom fields from packument metadata (#2063), by @hiro-daikin
  • vp run: missing env vars requested through @voidzero-dev/vite-task-client now return undefined instead of null, preserving Vite production NODE_ENV semantics when builds run through vp run (vite-task#508, via #2076), by @wan9chi

Refactor

  • static_config: drop the unreachable vite.config.json branch (#2045), and remove unused exported CLI helpers (#2046), by @shulaoda

Docs

  • Update the announcement links and callout for the beta release (#2027), remove the stale Dockerfile.alpine comment (#2068), by @fengmk2
  • Add the missing pnpm-workspace.yaml to the docs Dockerfile (#2059), by @wan-kong
  • Refresh the root agent guide (#2072), by @jong-kyung

Chore

  • Cross-compile Windows tests and CLI binaries on Linux with cargo-xwin (#1824), install local vite-plus builds through a local npm registry (#2021), fast docs format check for docs-only PRs (#2028), pack local dirs for the registry bridge instead of pkg.pr.new (#2038), remove the stale create workflow updater (#2061), and add PTY-based interactive CLI snapshot tests (#2052), by @fengmk2
  • Cache vp run output for docs builds (#2006), by @wan9chi
  • Remove legacy completion cleanup (#2050), by @nekomoyi
  • Update the crate-ci/typos action (#2039) and GitHub Actions (#2055, #1905), by @renovate[bot]
  • Refresh the Node.js release keyring (#2058) and the docs trusted-stack stats (#2064), by @voidzero-guard[bot]

Bundled Versions

Tool Version Source
vite 8.1.3 578ffb8
rolldown 1.1.4 6cbd233
tsdown 0.22.3 npm
vitest 4.1.9 npm
oxlint 1.72.0 npm
oxlint-tsgolint 0.24.0 npm
oxfmt 0.57.0 npm

Upgrade

vp upgrade

New Contributors

@wan-kong and @hiro-daikin made their first contributions.

Full Changelog: v0.2.2...v0.2.3

Published Packages

  • @voidzero-dev/vite-plus-core@0.2.3
  • vite-plus@0.2.3

Installation

macOS/Linux:

curl -fsSL https://vite.plus | bash

Windows:

irm https://vite.plus/ps1 | iex

Or download and run vp-setup.exe from the assets below.

Docker:

docker run --rm -it -v "$PWD:/app" -w /app ghcr.io/voidzero-dev/vite-plus:0.2.3 vp build

Run any vp command without installing it; see the Docker guide for more.

vite-plus v0.2.2: Vite+ Beta

Choose a tag to compare

@github-actions github-actions released this 02 Jul 09:59
Immutable release. Only release title and notes can be modified.
4f7fd0b

Vite+ is now in Beta: stable and ready for production adoption, fully open source under MIT. Read the announcement to see what Vite+ is about and where it is headed: Announcing Vite+ Beta.

On top of the Beta milestone, this release brings cross-version upgrades via vp migrate, an official Docker toolchain image on GHCR, zero-config runner-aware vp build caching, and PGP-verified managed Node.js downloads.

Highlights

  • vp migrate upgrades existing Vite+ projects across versions: previous release notes told users not to run vp migrate for upgrades. It now runs from the global CLI when the local one is older, re-pins vite-plus and the vite -> @voidzero-dev/vite-plus-core alias across dependencies, overrides/resolutions, and catalogs in every workspace package, aligns vitest / @vitest/* by actual usage, and defaults to a version-only upgrade (pass --full to also run the first-time setup bucket: hooks, editor, agent files, lint migration) (#1891), by @fengmk2
  • Official Vite+ Docker toolchain image: ghcr.io/voidzero-dev/vite-plus bundles vp plus a native build toolchain on debian:bookworm-slim (amd64/arm64, non-root). Since vp provisions the exact Node.js from .node-version, one image builds any project, and a documented multi-stage build copies the resolved Node.js into a small vp-free runtime stage (#1944), by @fengmk2
  • Zero-config vp build caching via runner-aware Vite: Vite reports its inputs, outputs, and tracked env reads to the vp runner over the new @voidzero-dev/vite-task-client IPC (vite#22453), so vp build caches correctly with no hand-written cache config: outputs are tracked and restored automatically, and a changed VITE_* env var invalidates the cache and is named in the cache-miss message (#1774), by @wan9chi
  • PGP-verified Node.js downloads: installing a managed Node.js now verifies the release's clearsigned SHASUMS256.txt.asc against the vendored Node.js release keyring (pure Rust, no gpg required) before trusting any checksum, so a tampered archive is rejected before install; unsigned sources (musl builds, custom mirrors) fall back to checksum-only verification (#1848), by @fengmk2

Features

  • vp check: a check block in vite.config.ts (check.fmt / check.lint) can make plain vp check skip formatting or linting by default, mirroring --no-fmt / --no-lint; standalone vp fmt / vp lint and git hooks are unaffected, and a note: line keeps the config-based skip discoverable (#1981), by @fengmk2
  • vp env list-remote: highlight installed versions (color, or a * prefix when piped) and label the project-resolved current and global default versions; --json gains installed / current / default fields (#1907), by @semimikoh
  • vpr ships as a vite-plus package bin, so the vp run shorthand works on clean installs without global PATH shims (Vercel build image, generic CI runners) (#1988), by @kvnwolf
  • Vite Task: dependsOn can select tasks from dependency packages, e.g. dependsOn: [{ "task": "build", "from": "dependencies" }] (vite-task#479), by @wan9chi
  • Vite Task: a task's env / untrackedEnv glob patterns support ! negation (e.g. ["VITE_*", "!VITE_SECRET"]) (vite-task#425), and an env-caused cache miss now names the variable inline, e.g. cache miss: env 'NODE_ENV' changed (vite-task#438), by @wan9chi
  • Upgrade upstream dependencies: vite 8.0.16 -> 8.1.2, rolldown 1.1.1 -> 1.1.4, oxlint 1.70.0 -> 1.72.0, oxfmt 0.55.0 -> 0.57.0, oxlint-tsgolint 0.23.0 -> 0.24.0, and the oxc toolchain 0.136.0 -> 0.138.0 (#1924, #1989, #2000, #2009), by @voidzero-guard[bot]

Fixes & Enhancements

  • Windows: vp run no longer hangs CI when a node_modules/.bin .cmd shim is routed through PowerShell; the npm/pnpm/yarn .ps1 wrappers read stdin and block forever on a non-TTY pipe, so the PowerShell rewrite is now skipped when stdin is not an interactive terminal (vite-task#491, via #1973), by @fengmk2
  • Vite Task: the task cache is stored in a per-schema-version directory (e.g. node_modules/.vite/task-cache/v13/), so switching between branches that pin different Vite+ versions no longer fails with Unrecognized database version (vite-task#433), by @fengmk2
  • Vite Task: env values in cache fingerprints are stored only as SHA-256 digests and env cache-miss details report names without values (vite-task#455); prefix env assignments like PATH=... command now affect executable lookup during planning (vite-task#440); package.json / pnpm-workspace.yaml files with a UTF-8 BOM parse correctly (vite-task#424), by @wan9chi
  • vp upgrade: run the pinned pnpm with a managed Node.js LTS directly instead of re-entering vp install, so an incompatible session/project/system runtime can no longer make pnpm skip optional native binaries and leave the upgraded CLI broken (#1900), by @liangmiQwQ
  • Global package installs: each install writes to an immutable packages/<name>#<uuid> prefix that is activated via metadata after npm succeeds, so an interrupted reinstall can no longer leave the active package unavailable (#1906), and stale interrupted-install directories are swept with file-lock protection for concurrent installs (#1945), by @liangmiQwQ
  • lazyPlugins(): skip plugin factories only while config metadata is being resolved instead of keying off VP_COMMAND, so builds spawned under vp run / vp exec keep the user's plugins and vp format no longer loads them (#1939), by @fengmk2
  • vp migrate (pnpm): add a direct vite devDep aliased to the core override wherever vite-plus is depended on, so vitest's vite peer binds to @voidzero-dev/vite-plus-core instead of pulling in a second upstream vite that broke the vp test cache (#1933), by @fengmk2
  • vp pack: bundle @tsdown/exe and @tsdown/css into core so --exe and CSS bundling work without a resolvable top-level tsdown; the native lightningcss becomes an optional peer loaded lazily with an actionable error (#1919), by @fengmk2
  • vp env: invalidate stale shim resolve cache entries when the project's Node.js version source changes (#1951), by @jong-kyung
  • Node shim: when the project declares npm via packageManager / devEngines.packageManager, child processes spawned from node resolve the managed npm instead of the Node-bundled one (#1938); vp env which reports bins linked by an intercepted npm install -g (e.g. tsc) instead of "not found" (#1968); bins with uppercase names (e.g. vitePlus) dispatch correctly (#1963), by @liangmiQwQ
  • vp-setup: pass the configured npm registry to the inner pnpm install so setup works behind custom registries (#1795), by @daflyinbed
  • Native binding: declare the platform packages' true ABI floor engines.node >=20.0.0 so engine-strict package managers (pnpm) no longer skip the optional native dependency and fail with Cannot find native binding when a consumer's Node floor lands in a product-policy gap (#1993), by @fengmk2
  • vp create: run git init without creating an initial commit, so commitlint-configured templates no longer reject the hardcoded message and template placeholders are not baked into history (#2008), by @forehalo
  • vp staged --debug: inline the bundled lint-staged version so debug logging no longer crashes reading a package.json that does not exist in the bundle (#1925), by @rokuosan
  • Installer: retry downloads truncated mid-body in HttpClient::get_bytes (the platform-tarball path for vp upgrade and the standalone installer) (#1940), and clean up the temp dir when a package-manager install fails instead of leaking .tmpXXXX directories (#1949), by @shulaoda
  • Windows/msys: normalize backslashes in the env.fish fallback path (#1954), by @Aalivexy
  • install.ps1: detect the missing VC++ runtime (0xC0000135) and print VC++ Redistributable guid...
Read more