Context
VpDirs resolution still honors deprecated VP_HOME as a full legacy-root pin for compatibility, but much of the repo still sets or assumes VP_HOME as the primary install root. That fights the split layout (VP_*_DIR / XDG_* / platform defaults) and keeps fixtures on a monolithic shape.
Follow-up to #2346 / #827.
Goal
Stop using VP_HOME except where it is required as a read-only deprecated override (custom roots). Prefer VP_BIN_DIR / VP_DATA_DIR / VP_CACHE_DIR and XDG/platform defaults everywhere else.
Scope (high signal)
Non-goals
- Removing the deprecated read of
VP_HOME in VpDirs resolution (keep until a later deprecation cut)
- Auto-migrating on-disk
~/.vite-plus trees (tracked separately)
Acceptance
- Snapshot runner and fixtures do not require
VP_HOME for the default happy path
- New tests document layout via
VP_*_DIR / XDG / platform defaults
- Grep for product code that sets
VP_HOME is limited to documented custom-root / trampoline edge cases
Context
VpDirsresolution still honors deprecatedVP_HOMEas a full legacy-root pin for compatibility, but much of the repo still sets or assumesVP_HOMEas the primary install root. That fights the split layout (VP_*_DIR/XDG_*/ platform defaults) and keeps fixtures on a monolithic shape.Follow-up to #2346 / #827.
Goal
Stop using
VP_HOMEexcept where it is required as a read-only deprecated override (custom roots). PreferVP_BIN_DIR/VP_DATA_DIR/VP_CACHE_DIRand XDG/platform defaults everywhere else.Scope (high signal)
crates/vp_cli_snapshots/): provision per-case homes with split dirs or explicitVP_*_DIR, not a permanentVP_HOME=~/.vite-plusbaseline; update fixtures that expand$VP_HOME/...pnpm bootstrap-cli,GITHUB_PATHentries, scripts that exportVP_HOMEonly to force legacy shapeVP_HOMEas the default home~/.vite-plussolely to trigger grandfathering (replace with split targets or explicitVP_*_DIR)set_var("VP_HOME")/VP_HOME:in Rust, TS, shell, and workflow YAMLNon-goals
VP_HOMEinVpDirsresolution (keep until a later deprecation cut)~/.vite-plustrees (tracked separately)Acceptance
VP_HOMEfor the default happy pathVP_*_DIR/ XDG / platform defaultsVP_HOMEis limited to documented custom-root / trampoline edge cases