chore(deps): update dependency vite-plus to v0.2.2#10084
Conversation
✅ Deploy Preview for rolldown-rs canceled.
|
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
|
Warning Review the following alerts detected in dependencies. According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about Socket for GitHub.
|
5ce060b to
d423b62
Compare
56e1794 to
fd58107
Compare
20e1b20 to
7da5700
Compare
7da5700 to
d8e3ab2
Compare
Edited/Blocked NotificationRenovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR. You can manually request rebase by checking the rebase/retry box above. |
It exposed a potential issue (#10132), so revert it to avoid blocking CI. Reverts the vite-plus `0.2.2` upgrade from #10084 (df05eba). This pins `vite-plus` and its bundled oxc toolchain back to the `0.2.1`-era versions: - `vite-plus` / `@voidzero-dev/vite-plus-*`: `0.2.2` -> `0.2.1` - `oxfmt`: `0.57.0` -> `0.55.0` - `oxlint`: `1.72.0` -> `1.70.0` - `oxlint-tsgolint`: `0.24.0` -> `0.23.0` Only the `vite-plus` dependency closure changed; no unrelated packages are touched.
…tered as executed (#10132) closes #10149 ## Problem Editing a file right after a page loads can be silently lost in full bundle mode. The dev engine decides whether a client needs an HMR update by checking the client's `executed_modules` set, but that set is reported asynchronously by the browser runtime (batched `hmr:module-registered` messages over the socket) and can lag what the client actually ran. When the edit is processed before the reports arrive, `compute_out_hmr_prerequisites` skipped the changed module for that client and produced an empty update. Vite's bundled dev ignores updates that carry no patches, and the HMR module cache had already advanced past the edit, so nothing ever re-delivers it. The page stays stale forever with no error. This is what turned main red after #10084. The vite-plus 0.2.2 bump added CPU contention on the 4-core CI runners, which stretched the report lag past the watcher debounce window, so the first edit in `playground/hmr-full-bundle-mode` started losing the race in roughly one of five jobs ([example run](https://github.com/rolldown/rolldown/actions/runs/28688065031/job/85085418310)). The three test failures in that suite are a cascade from the single lost edit. ## Fix `compute_out_hmr_prerequisites` now receives the existing `changed_modules` set. When a changed module is not registered as executed by a client, the update for that client falls back to a full reload with an explicit reason instead of being skipped. The default `RebuildStrategy::Auto` upgrades the task to a rebuild, and Vite defers the reload until `onOutput`, so the reload always lands on fresh output. The invalidate flow passes an empty `changed_modules` set and keeps the old skip. Nothing changed on disk there, so an unexecuted importer has nothing to re-run. The importer pruning inside `propagate_update` is also untouched, since that behavior is pinned by the `client-module-execution-status` fixture. Known cost: with lazy compilation, a client that never fetched the changed lazy module now reloads unnecessarily. We cannot tell it apart from a client whose loaded bundle bakes in the now stale initializer without a bundle epoch in the protocol. ## Tests A new snapshot fixture `topics/hmr/changed_module_not_executed_by_client` drives an HMR step against a client with an empty `executed_modules` set, enabled by a new `dev.unregisteredClient` test config flag. On the old code the same fixture produces an empty patch (`applyUpdates([])`) instead of the full reload, so the snapshot pins the fix. All existing HMR snapshots, the full integration suite, and the node dev server fixtures pass unchanged. ## Follow ups Two narrower windows of the same class remain and are left for separate issues. A changed module that is already registered while its accept boundary importer is not can still yield an empty patch. And when no client is registered at all, the update list is empty and Vite still ignores it, which needs a check on the Vite side when a client first registers.
## [1.1.5] - 2026-07-08 ### 🚀 Features - detect top-level import-binding reads as execution-order sensitive (#10180) by @hyf0 - sourcemap_filenames: add a sourcemapFileNames option (#9271) by @V1OL3TF0X - binding: record plugin hook result kind in tracing spans (#10154) by @IWANABETHATGUY - linking: skip side-effect-free modules in per-entry reachability (#10111) by @IWANABETHATGUY - improve error message for unresolved virtual imports (#10156) by @sapphi-red - add descriptive metadata to plugin API (#10106) by @sapphi-red - add `--configLoader=native` option (#10118) by @sapphi-red ### 🐛 Bug Fixes - improve invalid annotation warnings (#10185) by @hyf0 - keep deduplicated asset filenames stable once they can be observed (#10191) by @shulaoda - sourcemap_filenames: use public option name in pattern errors (#10188) by @IWANABETHATGUY - sourcemap_filenames: hash prepared sourcemap content (#10178) by @hyf0 - tree-shake unused circular declarators exported via export list (#10166) by @IWANABETHATGUY - dev: don't panic when an HMR rebuild hits an unresolved import (#10162) by @shulaoda - propagate errors from output.globals function (#9880) by @shulaoda - dev: revert cache mutations when a partial scan fails (#10110) by @shulaoda - dev: update importer relationships of cached modules in incremental build (#10107) by @shulaoda - hmr: fall back to full reload when a changed module is not registered as executed (#10132) by @shulaoda - chunk-optimizer: follow entry facade edges in runtime placement cycle check (#10101) by @hyf0 - dev: ignore watcher events after close (#10113) by @hyf0 - emit async wrapper for TLA modules under onDemandWrapping (#10086) by @IWANABETHATGUY - gate sideEffects:false modules' side effects on body demand (#10080) by @IWANABETHATGUY - rolldown_plugin_vite_resolve: return empty object for `browser: false` mapped modules (#10082) by @sapphi-red - reset the word-boundary state on newline in Hires::Boundary sourcemaps (#10025) by @shulaoda - trim an emptied chunk's outro/intro instead of skipping past it (#10029) by @shulaoda - test each edited chunk's own start against indent exclude ranges (#10026) by @shulaoda - preserve sourcemap mappings for indented lines when a CJS module shares the chunk (#10074) by @hyf0 ### 🚜 Refactor - separate tree-shaking side effects from execution order sensitivity (#10168) by @hyf0 - type construct_vite_preload_call to take an ObjectPattern (#10135) by @shulaoda - treeshake: single-source the own-export classification shared with the lazy-barrel loader (#10098) by @IWANABETHATGUY - dev: reuse Vite's bundledDev server (#10081) by @h-a-n-a - clippy: ban std HashMap/HashSet in favour of FxHashMap/FxHashSet (#10108) by @Boshen - treeshake: make body demand a second module bit instead of a stmt multimap (#10097) by @IWANABETHATGUY - seal used_symbol_refs by construction after its last writer (#10091) by @hyf0 - treeshake: replace inclusion mutual recursion with a worklist engine (#10096) by @IWANABETHATGUY - treeshake: split include_statements.rs into focused modules (#10095) by @IWANABETHATGUY - drop redundant is_user_defined filter on partitioned entries (#10050) by @shulaoda - project the retained export interface out of used_symbol_refs (#10089) by @hyf0 - track used external symbols separately from used_symbol_refs (#10088) by @hyf0 - make module namespace inclusion an explicit linking metadata field (#10087) by @hyf0 - rename statement evaluation metadata (#10078) by @hyf0 ### 📚 Documentation - virtual modules user-facing id convention (#10155) by @sapphi-red - cli: clarify disabling boolean/object flags like codeSplitting (#10153) by @IWANABETHATGUY - chore: remove Vite+ alpha banner (#10105) by @mdong1909 - write down the used_symbol_refs contract (#10090) by @hyf0 - dev/lazy: update design and implementation (#10079) by @h-a-n-a ### ⚡ Performance - ast_scanner: stop order-sensitivity checks once a module is flagged (#10190) by @IWANABETHATGUY - return impl ExactSizeIterator from slice-backed accessors (#10133) by @Boshen - binding: box dev and watcher napi futures (#10103) by @Boshen ### 🧪 Testing - move string_wizard replace unit tests to the JS magic-string suite (#10176) by @IWANABETHATGUY - dev: assert incremental scan state matches a fresh full build after each HMR step (#10115) by @shulaoda - dev: restore runtime assertions of delete_file_not_used_anymore (#10112) by @shulaoda - dev: fix flaky dev server tests in CI (#10152) by @h-a-n-a - add regression test for #10099 (lazyBarrel drops default-import binding but keeps its property reads) (#10109) by @IWANABETHATGUY ### ⚙️ Miscellaneous Tasks - deploy website to Void via GitHub OIDC (#10192) by @Boshen - deps: update oxc to 0.139.0 (#10161) by @shulaoda - deps: update test262 submodule for tests (#10160) by @rolldown-guard[bot] - rolldown_plugin_utils: remove dead asset-url and css scaffolding (#10131) by @shulaoda - deps: revert vite-plus to v0.2.1 (#10148) by @shulaoda - deps: update github actions (#10141) by @renovate[bot] - deps: update dependency rust to v1.96.1 (#10145) by @renovate[bot] - deps: update npm packages (#10142) by @renovate[bot] - deps: update rust crates (#10143) by @renovate[bot] - deps: update napi to v3.10.3 (#10121) by @renovate[bot] - rolldown_utils: remove unused time module (#10138) by @shulaoda - remove dead CopyModulePlugin::is_active method (#10129) by @shulaoda - remove dead LazyCompilationContext::is_lazy_module method (#10128) by @shulaoda - remove dead BuildDiagnostic::downcast_ref method (#10127) by @shulaoda - deps: update dependency vite-plus to v0.2.2 (#10084) by @renovate[bot] - deps: update rust crate oxc_sourcemap to v8.1.0 (#10122) by @renovate[bot] - deps: update crate-ci/typos action to v1.48.0 (#10124) by @renovate[bot] - enable more clippy restriction lints (#10114) by @Boshen - deps: update rust dependencies (#10100) by @Boshen - deps: update oxc resolver to v11.23.0 (#10083) by @renovate[bot] ###◀️ Revert - Revert "chore(deps): revert vite-plus to v0.2.1" (#10157) by @h-a-n-a - "fix(hmr): fall back to full reload when a changed module is not registered as executed (#10132)" (#10151) by @shulaoda ### ❤️ New Contributors * @V1OL3TF0X made their first contribution in [#9271](#9271) Co-authored-by: shulaoda <[email protected]>
This PR contains the following updates:
0.2.1→0.2.2Release Notes
voidzero-dev/vite-plus (vite-plus)
v0.2.2: vite-plus v0.2.2: Vite+ BetaCompare Source
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-awarevp buildcaching, and PGP-verified managed Node.js downloads.Highlights
vp migrateupgrades existing Vite+ projects across versions: previous release notes told users not to runvp migratefor upgrades. It now runs from the global CLI when the local one is older, re-pinsvite-plusand thevite->@voidzero-dev/vite-plus-corealias across dependencies, overrides/resolutions, and catalogs in every workspace package, alignsvitest/@vitest/*by actual usage, and defaults to a version-only upgrade (pass--fullto also run the first-time setup bucket: hooks, editor, agent files, lint migration) (#1891), by @fengmk2ghcr.io/voidzero-dev/vite-plusbundlesvpplus a native build toolchain ondebian:bookworm-slim(amd64/arm64, non-root). Sincevpprovisions 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 @fengmk2vp buildcaching via runner-aware Vite: Vite reports its inputs, outputs, and tracked env reads to thevprunner over the new@voidzero-dev/vite-task-clientIPC (vite#22453), sovp buildcaches correctly with no hand-written cache config: outputs are tracked and restored automatically, and a changedVITE_*env var invalidates the cache and is named in the cache-miss message (#1774), by @wan9chiSHASUMS256.txt.ascagainst the vendored Node.js release keyring (pure Rust, nogpgrequired) 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 @fengmk2Features
vp check: acheckblock invite.config.ts(check.fmt/check.lint) can make plainvp checkskip formatting or linting by default, mirroring--no-fmt/--no-lint; standalonevp fmt/vp lintand git hooks are unaffected, and anote:line keeps the config-based skip discoverable (#1981), by @fengmk2vp env list-remote: highlight installed versions (color, or a*prefix when piped) and label the project-resolvedcurrentand globaldefaultversions;--jsongainsinstalled/current/defaultfields (#1907), by @semimikohvprships as avite-pluspackage bin, so thevp runshorthand works on clean installs without global PATH shims (Vercel build image, generic CI runners) (#1988), by @kvnwolfdependsOncan select tasks from dependency packages, e.g.dependsOn: [{ "task": "build", "from": "dependencies" }](vite-task#479), by @wan9chienv/untrackedEnvglob 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 @wan9chi8.0.16 -> 8.1.2, rolldown1.1.1 -> 1.1.4, oxlint1.70.0 -> 1.72.0, oxfmt0.55.0 -> 0.57.0, oxlint-tsgolint0.23.0 -> 0.24.0, and the oxc toolchain0.136.0 -> 0.138.0(#1924, #1989, #2000, #2009), by @voidzero-guard[bot]Fixes & Enhancements
vp runno longer hangs CI when anode_modules/.bin.cmdshim is routed through PowerShell; the npm/pnpm/yarn.ps1wrappers 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 @fengmk2node_modules/.vite/task-cache/v13/), so switching between branches that pin different Vite+ versions no longer fails withUnrecognized database version(vite-task#433), by @fengmk2PATH=... commandnow affect executable lookup during planning (vite-task#440);package.json/pnpm-workspace.yamlfiles with a UTF-8 BOM parse correctly (vite-task#424), by @wan9chivp upgrade: run the pinned pnpm with a managed Node.js LTS directly instead of re-enteringvp 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 @liangmiQwQpackages/<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 @liangmiQwQlazyPlugins(): skip plugin factories only while config metadata is being resolved instead of keying offVP_COMMAND, so builds spawned undervp run/vp execkeep the user's plugins andvp formatno longer loads them (#1939), by @fengmk2vp migrate(pnpm): add a directvitedevDep aliased to the core override wherevervite-plusis depended on, so vitest'svitepeer binds to@voidzero-dev/vite-plus-coreinstead of pulling in a second upstream vite that broke thevp testcache (#1933), by @fengmk2vp pack: bundle@tsdown/exeand@tsdown/cssinto core so--exeand CSS bundling work without a resolvable top-leveltsdown; the nativelightningcssbecomes an optional peer loaded lazily with an actionable error (#1919), by @fengmk2vp env: invalidate stale shim resolve cache entries when the project's Node.js version source changes (#1951), by @jong-kyungpackageManager/devEngines.packageManager, child processes spawned fromnoderesolve the managed npm instead of the Node-bundled one (#1938);vp env whichreports bins linked by an interceptednpm install -g(e.g.tsc) instead of "not found" (#1968); bins with uppercase names (e.g.vitePlus) dispatch correctly (#1963), by @liangmiQwQvp-setup: pass the configured npm registry to the inner pnpm install so setup works behind custom registries (#1795), by @daflyinbedengines.node >=20.0.0so engine-strict package managers (pnpm) no longer skip the optional native dependency and fail withCannot find native bindingwhen a consumer's Node floor lands in a product-policy gap (#1993), by @fengmk2vp create: rungit initwithout creating an initial commit, so commitlint-configured templates no longer reject the hardcoded message and template placeholders are not baked into history (#2008), by @forehalovp staged --debug: inline the bundled lint-staged version so debug logging no longer crashes reading apackage.jsonthat does not exist in the bundle (#1925), by @rokuosanHttpClient::get_bytes(the platform-tarball path forvp upgradeand the standalone installer) (#1940), and clean up the temp dir when a package-manager install fails instead of leaking.tmpXXXXdirectories (#1949), by @shulaodaenv.fishfallback path (#1954), by @Aalivexyinstall.ps1: detect the missing VC++ runtime (0xC0000135) and print VC++ Redistributable guidance instead of a generic failure; interactiveirm | iexinstalls keep the shell open (#1962), by @cheezonevp migrate: preserve comments, key order, and trailing commas in existing.vscode/.zedJSONC configs by patching the original text instead of re-serializing it (#1956), by @fengmk2vp info/vp view: use package-manager-native commands (pnpm view,bun info,yarn npm info) instead of routing every lookup throughnpm view(#1895), by @jong-kyungErrorConfigerror types across the codebase (#1934), by @liangmiQwQRefactor
vite_install: centralize Yarn v1/berry branching withis_yarn_berry(#1897), by @jong-kyungDocs
dependsOn: [{ task, from: "dependencies" }](#1992), by @wan9chi0.0.0-commit.<sha>npm versions, andvp migrateis the recommended way to upgrade a project or move it onto a preview build (#1965), by @fengmk2vp envhelp output (#1969), and add liangmiQwQ as a team member (#1911), by @liangmiQwQdependsOnguide link (#1883), by @jong-kyungChore
vite-plusversion so release-branch CI can pass before the new version is published (#2017), by @fengmk2VITE_PLUS_env var prefixes toVP_in the RFCs (#1984), by @liangmiQwQBundled Versions
8.1.2ba311931.1.46cbd2330.22.34.1.91.72.00.24.00.57.0Upgrade
New to Vite+? Start with the Beta announcement, then create a project with
vp createor bring an existing one over withvp migrate.New Contributors
Welcome to our new contributors @rokuosan, @Aalivexy, @cheezone, @daflyinbed, @forehalo, @kvnwolf! 🎉
Full Changelog: voidzero-dev/vite-plus@v0.2.1...v0.2.2
Published Packages
@voidzero-dev/[email protected][email protected]Installation
macOS/Linux:
curl -fsSL https://vite.plus | bashWindows:
Or download and run
vp-setup.exefrom the assets below.Docker:
docker run --rm -it -v "$PWD:/app" -w /app ghcr.io/voidzero-dev/vite-plus:0.2.2 vp buildRun any
vpcommand without installing it; see the Docker guide for more.Configuration
📅 Schedule: (in timezone Asia/Shanghai)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.