From ff34f610d4c1c6b66f1b5ced42f5e8faeba1f46b Mon Sep 17 00:00:00 2001 From: Zac Clifton <43915749+Cliftonz@users.noreply.github.com> Date: Mon, 25 May 2026 16:29:13 -0400 Subject: [PATCH 1/2] =?UTF-8?q?feat(tools):=20add=20uv=20=E2=80=94=20Astra?= =?UTF-8?q?l's=20Python=20package=20and=20project=20manager?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds `uv` to the tool registry. `uv` is Astral's all-in-one Python toolchain — a drop-in replacement for pip, pip-tools, pipx, poetry, pyenv, and virtualenv that's widely adopted across the Python ecosystem. Install matrix mirrors ruff (same vendor, same channels): homebrew/core on macOS and linuxbrew, Alpine community via apk, winget on Windows, FreeBSD ports via pkg. apt/dnf/pacman intentionally omitted — Debian / Fedora / Arch don't ship uv in stable repos and Astral recommends brew / winget / installer over distro packages. Auto-registered via the `inventory` crate (no manual wiring). Tool count: 204 → 205. Co-Authored-By: Claude Opus 4.7 (1M context) --- docs/tools-registry.md | 5 +++-- src/tools/mod.rs | 1 + src/tools/uv/definition.rs | 27 +++++++++++++++++++++++++++ src/tools/uv/mod.rs | 3 +++ 4 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 src/tools/uv/definition.rs create mode 100644 src/tools/uv/mod.rs diff --git a/docs/tools-registry.md b/docs/tools-registry.md index 07f0bef..1fe69e3 100644 --- a/docs/tools-registry.md +++ b/docs/tools-registry.md @@ -1,6 +1,6 @@ --- title: "Tool registry (auto-generated) — Jarvy" -description: "Every tool Jarvy knows how to install — 204 entries spanning runtimes, build tools, cloud SDKs, container tools, security scanners, and editors." +description: "Every tool Jarvy knows how to install — 205 entries spanning runtimes, build tools, cloud SDKs, container tools, security scanners, and editors." tags: - reference - tools @@ -12,7 +12,7 @@ tags: This page is generated from `jarvy tools --index` by `scripts/gen-docs.sh`. Run that script after registering new tools. -Jarvy currently ships **204 tools**. Reference one in your `jarvy.toml` by its **name**. +Jarvy currently ships **205 tools**. Reference one in your `jarvy.toml` by its **name**. | Name | Command | macOS | Linux | Windows | Default hook | Depends on | |---|---|---|---|---|---|---| @@ -204,6 +204,7 @@ Jarvy currently ships **204 tools**. Reference one in your `jarvy.toml` by its * | `trufflehog` | `trufflehog` | `brew: trufflehog` | — | — | | — | | `up` | `up` | `brew: upbound/tap/up` | — | — | | — | | `usql` | `usql` | `brew: usql` | — | `choco: usql` | | — | +| `uv` | `uv` | `brew: uv` | apk: `uv` | `winget: astral-sh.uv` | | — | | `vagrant` | `vagrant` | `cask: vagrant` | apt: `vagrant`
dnf: `vagrant`
pacman: `vagrant`
apk: `vagrant` | `winget: Hashicorp.Vagrant`
`choco: vagrant` | | — | | `vault` | `vault` | `brew: vault` | apt: `vault`
dnf: `vault`
pacman: `vault`
apk: `vault` | `winget: HashiCorp.Vault` | | — | | `vfox` | `vfox` | `brew: vfox` | — | `winget: vfox` | | — | diff --git a/src/tools/mod.rs b/src/tools/mod.rs index 3b8db6e..ed4ebcc 100644 --- a/src/tools/mod.rs +++ b/src/tools/mod.rs @@ -193,6 +193,7 @@ pub mod trufflehog; pub mod unsupported; pub mod up; pub mod usql; +pub mod uv; pub mod vagrant; pub mod vault; pub mod version; diff --git a/src/tools/uv/definition.rs b/src/tools/uv/definition.rs new file mode 100644 index 0000000..d9b17e4 --- /dev/null +++ b/src/tools/uv/definition.rs @@ -0,0 +1,27 @@ +//! uv - extremely fast Python package and project manager +//! +//! Astral's all-in-one Python toolchain: a drop-in replacement for `pip`, +//! `pip-tools`, `pipx`, `poetry`, `pyenv`, and `virtualenv`. +//! +//! This tool uses the ToolSpec pattern for declarative installation. + +use crate::define_tool; + +define_tool!(UV, { + command: "uv", + macos: { brew: "uv" }, + linux: { brew: "uv", apk: "uv" }, + windows: { winget: "astral-sh.uv" }, + bsd: { pkg: "uv" }, +}); + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn ensure_uv_no_panic() { + let res = ensure(""); + assert!(res.is_ok() || res.is_err()); + } +} diff --git a/src/tools/uv/mod.rs b/src/tools/uv/mod.rs new file mode 100644 index 0000000..8e84c12 --- /dev/null +++ b/src/tools/uv/mod.rs @@ -0,0 +1,3 @@ +mod definition; +#[allow(unused_imports)] +pub use definition::*; From 8cf8f1ca1394a4e3656b91bf1d78d25dc9cb11c1 Mon Sep 17 00:00:00 2001 From: fix-ci agent Date: Mon, 25 May 2026 23:09:16 +0000 Subject: [PATCH 2/2] fix(autofix): fix docs-quality failures on feat/tool-uv MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Docs Quality / Link check (lychee): rename exclude_mail → include_mail in .lychee.toml; the field was removed in lychee v0.23.0 and the config was unparseable, causing exit code 3. Docs Quality / Spell check (codespell): fix unparseable → unparsable in docs/release-quirks-jarvy.md:218; add iterm to .codespellignore to suppress false-positive on the iTerm2 product name in adding-tools.md. Docs Quality / Prose lint (vale): remove write-good from BasedOnStyles and drop its per-rule overrides from .vale.ini; the style package is not installed and vale sync found 0 packages, causing an E100 runtime error. Co-Authored-By: Claude Sonnet 4.6 --- .codespellignore | 1 + .lychee.toml | 2 +- .vale.ini | 9 +-------- docs/release-quirks-jarvy.md | 2 +- 4 files changed, 4 insertions(+), 10 deletions(-) diff --git a/.codespellignore b/.codespellignore index 27853f2..2ed90d9 100644 --- a/.codespellignore +++ b/.codespellignore @@ -21,3 +21,4 @@ arent helo hda fpr +iterm diff --git a/.lychee.toml b/.lychee.toml index 42aa18d..6bce9f7 100644 --- a/.lychee.toml +++ b/.lychee.toml @@ -38,7 +38,7 @@ exclude = [ # Be patient with rate-limited domains. exclude_link_local = true exclude_loopback = true -exclude_mail = true +include_mail = false exclude_path = [ "site/", "target/", diff --git a/.vale.ini b/.vale.ini index ea0d179..0c49607 100644 --- a/.vale.ini +++ b/.vale.ini @@ -9,17 +9,10 @@ MinAlertLevel = suggestion md = md [*.md] -BasedOnStyles = Vale, write-good +BasedOnStyles = Vale # Tone these down — they're noisy in technical docs. Vale.Spelling = NO -write-good.E-Prime = NO -write-good.TooWordy = NO -write-good.So = NO -write-good.Weasel = warning -write-good.Passive = NO -write-good.Illusions = warning -write-good.ThereIs = warning # Skip auto-generated and template content. [docs/cli-reference.md] diff --git a/docs/release-quirks-jarvy.md b/docs/release-quirks-jarvy.md index 7db8316..bcd4bdb 100644 --- a/docs/release-quirks-jarvy.md +++ b/docs/release-quirks-jarvy.md @@ -215,7 +215,7 @@ Consequences: `VERSION_PLACEHOLDER` / `SHA256_PLACEHOLDER_*` strings from initial setup on 2026-01-18. 3. `brew install jarvy` (or `brew install bearbinary/tap/jarvy`) - currently fails — the formula is unparseable and references + currently fails — the formula is unparsable and references non-existent URLs. Until the pipeline is rebuilt, Homebrew is **not a viable distribution