voidzero-dev / voidzero-dev/vite-plus

chore: remove remaining VP_HOME usage (especially snapshot tests)

Open
#2,371 0 comments 2 reactions 1 assignee Claimed by @forehalo View on GitHub
Dominant language
Rust
Stars
5.8k
Forks
262
Avg merge
1d 34m
Merged PRs (30d)
135

Description

## 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)

- [ ] **PTY snapshot suite** (`crates/vp_cli_snapshots/`): provision per-case homes with split dirs or explicit `VP_*_DIR`, not a permanent `VP_HOME=~/.vite-plus` baseline; update fixtures that expand `$VP_HOME/...`
- [ ] **CI / bootstrap**: `pnpm bootstrap-cli`, `GITHUB_PATH` entries, scripts that export `VP_HOME` only to force legacy shape
- [ ] **Docs / comments / help strings** that still describe `VP_HOME` as the default home
- [ ] **Tests** that seed `~/.vite-plus` solely to trigger grandfathering (replace with split targets or explicit `VP_*_DIR`)
- [ ] Audit remaining `set_var("VP_HOME")` / `VP_HOME:` in Rust, TS, shell, and workflow YAML

## 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

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.