uv: persist cache, pythons, and tools under the bubblebox data dir #26

Merged
chad merged 1 commit from uv/persist-tools into main 2026-10-15 17:10:20 -04:00
Collaborator

uv was a purely ephemeral sandbox: no binds, no writable home — every invocation would re-download interpreters and lose uv tool installs, which rules it out as a replacement for a self-installed uv on a dev machine (think currently runs the standalone binary for exactly that daily use).

This mirrors pnpm's persistence pattern:

  • writable_home — project venvs in ~/… and uv-tool shims into ~/.local/bin (host-visible; they exec the ~/.local/bin/uv wrapper).
  • $BUBBLEBOX_DATA_DIR/uv → /persist bind, with UV_CACHE_DIR, UV_PYTHON_INSTALL_DIR, UV_TOOL_DIR pointed into it, so caches, interpreters, and tools survive across runs.

Two new smoke checks assert the python/tool dirs resolve into /persist (no downloads needed to check). CI's verify run exercises the rest. After merge + publish, cn can adopt uv in the thinkpad profile (replacing the self-installed binary).

`uv` was a purely ephemeral sandbox: no binds, no writable home — every invocation would re-download interpreters and lose `uv tool` installs, which rules it out as a replacement for a self-installed uv on a dev machine (think currently runs the standalone binary for exactly that daily use). This mirrors pnpm's persistence pattern: - `writable_home` — project venvs in `~/…` and uv-tool shims into `~/.local/bin` (host-visible; they exec the `~/.local/bin/uv` wrapper). - `$BUBBLEBOX_DATA_DIR/uv` → `/persist` bind, with `UV_CACHE_DIR`, `UV_PYTHON_INSTALL_DIR`, `UV_TOOL_DIR` pointed into it, so caches, interpreters, and tools survive across runs. Two new smoke checks assert the python/tool dirs resolve into `/persist` (no downloads needed to check). CI's verify run exercises the rest. After merge + publish, cn can adopt `uv` in the thinkpad profile (replacing the self-installed binary).
uv: persist cache, pythons, and tools under the bubblebox data dir
All checks were successful
verify / verify (pull_request) Successful in 26s
b6f68799ab
chad approved these changes 2026-10-15 17:10:17 -04:00
chad merged commit 0dbce5146d into main 2026-10-15 17:10:20 -04:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
chad/bubblebox-pkgs!26
No description provided.