Skip to content

Commit f89e5ca

Browse files
montfortclaude
andauthored
docs: update README with all installation channels and update command (#10)
Rewrite installation section with four methods: shell/PowerShell installer, cargo binstall, cargo install, and from source. Add updating section with per-method instructions. Document the new `arborist update` subcommand. Add releasing reference. Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 1336e4e commit f89e5ca

1 file changed

Lines changed: 65 additions & 6 deletions

File tree

README.md

Lines changed: 65 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,39 @@ Code complexity metrics for your codebase, powered by [arborist-metrics](https:/
66

77
## Installation
88

9-
### From source
9+
### Pre-built binaries (recommended)
10+
11+
Download the latest release for your platform — no Rust toolchain required.
12+
13+
**Linux / macOS:**
14+
15+
```bash
16+
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/StrangeDaysTech/arborist-cli/releases/latest/download/arborist-cli-installer.sh | sh
17+
```
18+
19+
**Windows (PowerShell):**
20+
21+
```powershell
22+
powershell -ExecutionPolicy ByPass -c "irm https://github.com/StrangeDaysTech/arborist-cli/releases/latest/download/arborist-cli-installer.ps1 | iex"
23+
```
24+
25+
### cargo binstall (pre-compiled, no build)
26+
27+
If you have [cargo-binstall](https://github.com/cargo-bins/cargo-binstall) installed:
28+
29+
```bash
30+
cargo binstall arborist-cli
31+
```
32+
33+
### cargo install (from source)
34+
35+
Requires Rust 1.85+ (Edition 2024):
1036

1137
```bash
1238
cargo install arborist-cli
1339
```
1440

15-
### Build locally
41+
### From source
1642

1743
```bash
1844
git clone https://github.com/StrangeDaysTech/arborist-cli.git
@@ -21,6 +47,23 @@ cargo build --release
2147
# Binary at ./target/release/arborist-cli
2248
```
2349

50+
## Updating
51+
52+
The update method depends on how you installed:
53+
54+
| Installed via | Update command |
55+
|---------------|----------------|
56+
| Shell/PowerShell installer | `arborist update` |
57+
| Direct binary download | `arborist update` |
58+
| cargo binstall | `cargo binstall arborist-cli` |
59+
| cargo install | `cargo install arborist-cli` |
60+
61+
Check for updates without installing:
62+
63+
```bash
64+
arborist update --check
65+
```
66+
2467
## Quick start
2568

2669
```bash
@@ -40,9 +83,16 @@ arborist src/ --threshold 15
4083
## Usage
4184

4285
```
43-
arborist [OPTIONS] [PATHS]...
86+
arborist [OPTIONS] [PATHS]... [COMMAND]
4487
```
4588

89+
### Commands
90+
91+
| Command | Description |
92+
|---------|-------------|
93+
| `update` | Check for updates and install the latest version |
94+
| `update --check` | Check for available updates without installing |
95+
4696
### Arguments
4797

4898
| Argument | Description |
@@ -187,19 +237,20 @@ arborist src/ --threshold 10 --exceeds-only --format csv
187237

188238
```
189239
src/
190-
main.rs Entry point — parses args, calls lib::run(), maps exit codes
240+
main.rs Entry point — parses args, dispatches to analyze or update
191241
lib.rs Orchestration — stdin detection, path analysis, output dispatch
192-
cli.rs CLI argument definitions (clap derive)
242+
cli.rs CLI argument definitions (clap derive) with optional subcommands
193243
analysis.rs arborist-metrics wrapper, threshold filtering, sorting
194244
traversal.rs Directory walking (ignore crate), language detection by extension
195245
error.rs Error types (thiserror), ExitReport with exit code logic
246+
update.rs Self-update from GitHub Releases (self_update crate)
196247
output/
197248
mod.rs Format dispatcher (grouped vs. flat mode)
198249
table.rs Human-readable table output (comfy-table)
199250
json.rs JSON serialization (serde_json)
200251
csv_output.rs CSV output (csv crate)
201252
tests/
202-
cli/ 22 integration tests organized by feature area
253+
cli/ Integration tests organized by feature area
203254
fixtures/ Test input files (Rust, Python, multi-file projects)
204255
```
205256

@@ -229,6 +280,14 @@ cargo clippy -- -D warnings
229280

230281
The project enforces `clippy::all = "deny"` in `Cargo.toml`.
231282

283+
### Releasing
284+
285+
See [RELEASING.md](RELEASING.md) for the full release procedure. In short:
286+
287+
1. Bump version in `Cargo.toml`
288+
2. `git tag v0.2.0 && git push origin main --tags`
289+
3. CI builds binaries for all platforms and creates the GitHub Release
290+
232291
### Reporting issues
233292

234293
File bugs and feature requests at [GitHub Issues](https://github.com/StrangeDaysTech/arborist-cli/issues). See [CONTRIBUTING.md](CONTRIBUTING.md) for details.

0 commit comments

Comments
 (0)