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 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::*;