From 0a333187640acfe4bb1fb8c3298909e4c5d7d3e1 Mon Sep 17 00:00:00 2001 From: BootIntel Agent Date: Sat, 26 Sep 2026 08:37:30 +0000 Subject: [PATCH] Offer cargo install now that the crates are published bootintel-detectors and bootintel-cli are both on crates.io at 0.4.1. Verified end to end rather than from the workflow's exit code: cargo install bootintel-cli --locked into a clean root produces a 0.4.1 binary that exits 2 on an empty capture, 3 on unrecognized input, detects a timestamped U-Boot banner, and survives a pipe into head. That is the fix set, reached through the public index. The README keeps the install one-liner first and notes that the cargo path builds from source, so it needs a toolchain and takes minutes where the prebuilt binary takes seconds. Both are real options and the faster one leads. This is the step docs/releasing.md held back until a publish had actually succeeded, for the reason that made three advertised channels dead ends: an install command that fails reads as an abandoned project. Co-Authored-By: Claude Opus 5 (1M context) --- README.md | 7 +++++-- docs/releasing.md | 7 ++++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 512498e..c6e3ed9 100644 --- a/README.md +++ b/README.md @@ -92,7 +92,10 @@ docker run --rm -i ghcr.io/bootintel/cli:latest scan - < boot.log # Nix flake (in-repo): nix run github:bootintel/cli -- version -# Cargo (from source): +# Cargo (from crates.io): +cargo install bootintel-cli + +# Cargo (from a source checkout): cargo install --path crates/cli --features tui ``` @@ -112,7 +115,7 @@ Pin to a release tag (`@cli-v0.4.0`) or a commit SHA — **never `@main`** (a co **Homebrew:** the formula template lives at `packaging/homebrew/bootintel.rb`. A public `bootintel/homebrew-tap` for `brew install bootintel` is planned. -**crates.io:** `cargo install bootintel-cli` is not available yet. The crates are publishable and the release workflow has the job wired, pending a registry token. See [docs/releasing.md](docs/releasing.md). +**crates.io:** `cargo install bootintel-cli` installs the latest published release. Note that this builds from source, so it needs a Rust toolchain and takes a few minutes; the one-liner above drops a prebuilt binary in seconds. See [docs/releasing.md](docs/releasing.md) for how releases are cut. **Windows:** the one-liner above downloads + SHA256-verifies the latest release, extracts `bootintel.exe` into `$env:USERPROFILE\.local\bin`, and prints a `setx PATH` line if that dir isn't already on your PATH. Override with `$env:BOOTINTEL_VERSION` / `$env:BOOTINTEL_INSTALL_DIR`, or use `$env:BOOTINTEL_TARBALL` for offline installs. Currently x86_64 only — ARM64 users need `cargo install --path crates/cli --features tui`. diff --git a/docs/releasing.md b/docs/releasing.md index af4ab7d..ed9a081 100644 --- a/docs/releasing.md +++ b/docs/releasing.md @@ -80,6 +80,7 @@ cargo publish -p bootintel-detectors cargo publish -p bootintel-cli ``` -After the first successful publish, update the Install section of `README.md` -to offer `cargo install bootintel-cli` instead of the from-source line. Do not -add it before then. +The README's Install section offers `cargo install bootintel-cli` as of +0.4.1, the first published version. Keep the caveat that it builds from +source and therefore needs a toolchain: the install one-liner is faster +for anyone who just wants the binary.