Skip to content

Commit 2ea78b8

Browse files
authored
Add prebuilt installers and cargo-binstall metadata (#379)
## Summary - add verified prebuilt installers for `cargo-mono` and `with-watch` on Bash and PowerShell - add first-party-only `cargo-binstall` metadata for `cargo-mono`, `with-watch`, and `nodeup` - update internal contracts, crate READMEs, and public docs for direct install and CI usage ## Testing - `cargo test` - `pnpm --filter public-docs test` - `git diff --check` - smoke-tested `scripts/install/cargo-mono.sh --help` - smoke-tested `scripts/install/with-watch.sh --help` ## Notes - `pwsh`, `cosign`, and `cargo-binstall` were not available in the local environment, so their smoke tests were not run here.
1 parent a528613 commit 2ea78b8

21 files changed

+951
-4
lines changed

apps/public-docs/cargo-mono.mdx

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,39 @@
1616
- Dependency-aware publish flow with optional release tag creation: `publish`
1717
- Stable output contract: `--output human|json`
1818

19+
## Install
20+
21+
Tag contract:
22+
23+
- `cargo-mono@v<semver>`
24+
25+
Direct installers:
26+
27+
```bash
28+
./scripts/install/cargo-mono.sh --version latest --method direct
29+
```
30+
31+
```powershell
32+
./scripts/install/cargo-mono.ps1 -Version latest -Method direct
33+
```
34+
35+
`cargo-binstall`:
36+
37+
```bash
38+
cargo binstall cargo-mono --no-confirm
39+
```
40+
41+
GitHub Actions:
42+
43+
```yaml
44+
- uses: taiki-e/install-action@v2
45+
with:
46+
tool: cargo-binstall
47+
- run: cargo binstall cargo-mono --no-confirm
48+
```
49+
50+
Direct installers verify Sigstore bundle sidecars (`*.sigstore.json`) and require `cosign`.
51+
1952
## Common workflows
2053

2154
List publishable workspace crates:

apps/public-docs/nodeup.mdx

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,22 @@ Script installer:
4242
./scripts/install/nodeup.ps1 -Version latest -Method direct
4343
```
4444

45-
Direct installers verify Sigstore bundle sidecars (`*.sigstore.json`) and only support bundle-enabled releases.
45+
`cargo-binstall`:
46+
47+
```bash
48+
cargo binstall nodeup --no-confirm
49+
```
50+
51+
GitHub Actions:
52+
53+
```yaml
54+
- uses: taiki-e/install-action@v2
55+
with:
56+
tool: cargo-binstall
57+
- run: cargo binstall nodeup --no-confirm
58+
```
59+
60+
Direct installers verify Sigstore bundle sidecars (`*.sigstore.json`), require `cosign`, and only support bundle-enabled releases.
4661
`nodeup toolchain install` supports `macOS`, `Linux`, and `Windows` x64/arm64 hosts.
4762

4863
## Common workflows

apps/public-docs/with-watch.mdx

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,39 @@ Package manager:
2121
- macOS/Linux: `brew install delinoio/tap/with-watch`
2222
- Homebrew installs prebuilt archives on macOS Intel, macOS Apple Silicon, Linux amd64, and Linux arm64
2323

24+
Direct installers:
25+
26+
```bash
27+
./scripts/install/with-watch.sh --version latest --method package-manager
28+
```
29+
30+
```powershell
31+
./scripts/install/with-watch.ps1 -Version latest -Method direct
32+
```
33+
34+
`cargo-binstall`:
35+
36+
```bash
37+
cargo binstall with-watch --no-confirm
38+
```
39+
40+
GitHub Actions:
41+
42+
```yaml
43+
- uses: taiki-e/install-action@v2
44+
with:
45+
tool: cargo-binstall
46+
- run: cargo binstall with-watch --no-confirm
47+
```
48+
2449
Cargo:
2550
2651
```bash
2752
cargo install with-watch
2853
```
2954

55+
Direct installers verify Sigstore bundle sidecars (`*.sigstore.json`) and require `cosign`.
56+
3057
## Quick start
3158

3259
Rerun a file reader when its input changes:

crates/AGENTS.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
- Preserve rustup-like shim behavior: symlink strategy plus executable-name dispatch.
3131
- Keep channel and command identifiers stable and documented.
3232
- Record storage and download behavior in project docs whenever changed.
33+
- Keep direct installers and `cargo-binstall` metadata aligned with release asset names, signing contracts, and install docs.
3334

3435
### cargo-mono-Specific Rules
3536

@@ -39,6 +40,7 @@
3940
- Keep `publish` delegation aligned with the documented contract: `cargo mono publish` must invoke `cargo publish --no-verify` in both execute and dry-run modes.
4041
- Ensure release automation (`bump`, `publish`) logs include structured operational context.
4142
- Keep runtime error output on the fixed `Summary/Context/Hint` three-line contract and include only safe debugging context values.
43+
- Keep direct installers and `cargo-binstall` metadata aligned with release asset names, signing contracts, and install docs.
4244

4345
### with-watch-Specific Rules
4446

@@ -48,6 +50,7 @@
4850
- Keep shell support scoped to command-line expressions and do not silently broaden into shell-script control-flow without updating docs first.
4951
- Keep logs sufficient to explain inferred inputs, watcher anchors, snapshot counts, and rerun causes.
5052
- Keep public release contracts aligned across root publish-tag allowlist, `.github/workflows/release-with-watch.yml`, and Homebrew packaging assets.
53+
- Keep direct installers and `cargo-binstall` metadata aligned with release asset names, signing contracts, and install docs.
5154

5255
### serde-feather-Specific Rules
5356

crates/cargo-mono/Cargo.toml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,40 @@ version = "0.6.6"
44
edition = "2021"
55
license = "MIT"
66
description = "Cargo subcommand for Rust monorepo management"
7+
repository = "https://github.com/delinoio/oss"
8+
9+
[package.metadata.binstall]
10+
disabled-strategies = ["quick-install", "compile"]
11+
12+
[package.metadata.binstall.overrides.x86_64-unknown-linux-gnu]
13+
pkg-url = "{ repo }/releases/download/cargo-mono@v{ version }/cargo-mono-linux-amd64.tar.gz"
14+
pkg-fmt = "tgz"
15+
bin-dir = "cargo-mono"
16+
17+
[package.metadata.binstall.overrides.aarch64-unknown-linux-gnu]
18+
pkg-url = "{ repo }/releases/download/cargo-mono@v{ version }/cargo-mono-linux-arm64.tar.gz"
19+
pkg-fmt = "tgz"
20+
bin-dir = "cargo-mono"
21+
22+
[package.metadata.binstall.overrides.x86_64-apple-darwin]
23+
pkg-url = "{ repo }/releases/download/cargo-mono@v{ version }/cargo-mono-darwin-amd64.tar.gz"
24+
pkg-fmt = "tgz"
25+
bin-dir = "cargo-mono"
26+
27+
[package.metadata.binstall.overrides.aarch64-apple-darwin]
28+
pkg-url = "{ repo }/releases/download/cargo-mono@v{ version }/cargo-mono-darwin-arm64.tar.gz"
29+
pkg-fmt = "tgz"
30+
bin-dir = "cargo-mono"
31+
32+
[package.metadata.binstall.overrides.x86_64-pc-windows-msvc]
33+
pkg-url = "{ repo }/releases/download/cargo-mono@v{ version }/cargo-mono-windows-amd64.zip"
34+
pkg-fmt = "zip"
35+
bin-dir = "cargo-mono.exe"
36+
37+
[package.metadata.binstall.overrides.aarch64-pc-windows-msvc]
38+
pkg-url = "{ repo }/releases/download/cargo-mono@v{ version }/cargo-mono-windows-arm64.zip"
39+
pkg-fmt = "zip"
40+
bin-dir = "cargo-mono.exe"
741

842
[dependencies]
943
cargo_metadata = "0.19.2"

crates/cargo-mono/README.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,39 @@
22

33
`cargo-mono` is the external Cargo subcommand that powers `cargo mono` for Rust monorepo workflows.
44

5+
## Install
6+
7+
Tag contract:
8+
9+
- `cargo-mono@v<semver>`
10+
11+
Direct installers:
12+
13+
```bash
14+
./scripts/install/cargo-mono.sh --version latest --method direct
15+
```
16+
17+
```powershell
18+
./scripts/install/cargo-mono.ps1 -Version latest -Method direct
19+
```
20+
21+
`cargo-binstall`:
22+
23+
```bash
24+
cargo binstall cargo-mono --no-confirm
25+
```
26+
27+
GitHub Actions:
28+
29+
```yaml
30+
- uses: taiki-e/install-action@v2
31+
with:
32+
tool: cargo-binstall
33+
- run: cargo binstall cargo-mono --no-confirm
34+
```
35+
36+
Direct installers verify Sigstore bundle sidecars (`*.sigstore.json`) and require `cosign`.
37+
538
## Commands
639

740
```bash

crates/nodeup/Cargo.toml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,40 @@ edition = "2021"
55
license = "MIT"
66
description = "Rustup-like Node.js version manager"
77
readme = "README.md"
8+
repository = "https://github.com/delinoio/oss"
9+
10+
[package.metadata.binstall]
11+
disabled-strategies = ["quick-install", "compile"]
12+
13+
[package.metadata.binstall.overrides.x86_64-unknown-linux-gnu]
14+
pkg-url = "{ repo }/releases/download/nodeup@v{ version }/nodeup-linux-amd64.tar.gz"
15+
pkg-fmt = "tgz"
16+
bin-dir = "nodeup"
17+
18+
[package.metadata.binstall.overrides.aarch64-unknown-linux-gnu]
19+
pkg-url = "{ repo }/releases/download/nodeup@v{ version }/nodeup-linux-arm64.tar.gz"
20+
pkg-fmt = "tgz"
21+
bin-dir = "nodeup"
22+
23+
[package.metadata.binstall.overrides.x86_64-apple-darwin]
24+
pkg-url = "{ repo }/releases/download/nodeup@v{ version }/nodeup-darwin-amd64.tar.gz"
25+
pkg-fmt = "tgz"
26+
bin-dir = "nodeup"
27+
28+
[package.metadata.binstall.overrides.aarch64-apple-darwin]
29+
pkg-url = "{ repo }/releases/download/nodeup@v{ version }/nodeup-darwin-arm64.tar.gz"
30+
pkg-fmt = "tgz"
31+
bin-dir = "nodeup"
32+
33+
[package.metadata.binstall.overrides.x86_64-pc-windows-msvc]
34+
pkg-url = "{ repo }/releases/download/nodeup@v{ version }/nodeup-windows-amd64.zip"
35+
pkg-fmt = "zip"
36+
bin-dir = "nodeup-windows-amd64.exe"
37+
38+
[package.metadata.binstall.overrides.aarch64-pc-windows-msvc]
39+
pkg-url = "{ repo }/releases/download/nodeup@v{ version }/nodeup-windows-arm64.zip"
40+
pkg-fmt = "zip"
41+
bin-dir = "nodeup-windows-arm64.exe"
842

943
[dependencies]
1044
clap = { version = "4.5.32", features = ["derive"] }

crates/nodeup/README.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,43 @@
99
- Use human-friendly output for operators and JSON output for automation.
1010
- Run `node`, `npm`, `npx`, `yarn`, and `pnpm` through one binary by executable-name dispatch.
1111

12+
## Install
13+
14+
Tag contract:
15+
16+
- `nodeup@v<semver>`
17+
18+
Package manager:
19+
20+
- macOS/Linux: `brew install delinoio/tap/nodeup`
21+
22+
Direct installers:
23+
24+
```bash
25+
./scripts/install/nodeup.sh --version latest --method package-manager
26+
```
27+
28+
```powershell
29+
./scripts/install/nodeup.ps1 -Version latest -Method direct
30+
```
31+
32+
`cargo-binstall`:
33+
34+
```bash
35+
cargo binstall nodeup --no-confirm
36+
```
37+
38+
GitHub Actions:
39+
40+
```yaml
41+
- uses: taiki-e/install-action@v2
42+
with:
43+
tool: cargo-binstall
44+
- run: cargo binstall nodeup --no-confirm
45+
```
46+
47+
Direct installers verify Sigstore bundle sidecars (`*.sigstore.json`) and require `cosign`.
48+
1249
## Quick Command Reference
1350

1451
- `nodeup toolchain list [--quiet|--verbose]`

crates/with-watch/Cargo.toml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,39 @@ description = "Watch command inputs and rerun commands when they change"
77
readme = "README.md"
88
repository = "https://github.com/delinoio/oss"
99

10+
[package.metadata.binstall]
11+
disabled-strategies = ["quick-install", "compile"]
12+
13+
[package.metadata.binstall.overrides.x86_64-unknown-linux-gnu]
14+
pkg-url = "{ repo }/releases/download/with-watch@v{ version }/with-watch-linux-amd64.tar.gz"
15+
pkg-fmt = "tgz"
16+
bin-dir = "with-watch"
17+
18+
[package.metadata.binstall.overrides.aarch64-unknown-linux-gnu]
19+
pkg-url = "{ repo }/releases/download/with-watch@v{ version }/with-watch-linux-arm64.tar.gz"
20+
pkg-fmt = "tgz"
21+
bin-dir = "with-watch"
22+
23+
[package.metadata.binstall.overrides.x86_64-apple-darwin]
24+
pkg-url = "{ repo }/releases/download/with-watch@v{ version }/with-watch-darwin-amd64.tar.gz"
25+
pkg-fmt = "tgz"
26+
bin-dir = "with-watch"
27+
28+
[package.metadata.binstall.overrides.aarch64-apple-darwin]
29+
pkg-url = "{ repo }/releases/download/with-watch@v{ version }/with-watch-darwin-arm64.tar.gz"
30+
pkg-fmt = "tgz"
31+
bin-dir = "with-watch"
32+
33+
[package.metadata.binstall.overrides.x86_64-pc-windows-msvc]
34+
pkg-url = "{ repo }/releases/download/with-watch@v{ version }/with-watch-windows-amd64.zip"
35+
pkg-fmt = "zip"
36+
bin-dir = "with-watch.exe"
37+
38+
[package.metadata.binstall.overrides.aarch64-pc-windows-msvc]
39+
pkg-url = "{ repo }/releases/download/with-watch@v{ version }/with-watch-windows-arm64.zip"
40+
pkg-fmt = "zip"
41+
bin-dir = "with-watch.exe"
42+
1043
[dependencies]
1144
blake3 = "1.8.4"
1245
clap = { version = "4.5.32", features = ["derive"] }

crates/with-watch/README.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,29 @@ cargo install with-watch
1717
brew install delinoio/tap/with-watch
1818
```
1919

20+
```sh
21+
./scripts/install/with-watch.sh --version latest --method package-manager
22+
```
23+
24+
```powershell
25+
./scripts/install/with-watch.ps1 -Version latest -Method direct
26+
```
27+
28+
```sh
29+
cargo binstall with-watch --no-confirm
30+
```
31+
32+
GitHub Actions:
33+
34+
```yaml
35+
- uses: taiki-e/install-action@v2
36+
with:
37+
tool: cargo-binstall
38+
- run: cargo binstall with-watch --no-confirm
39+
```
40+
41+
Direct installers verify Sigstore bundle sidecars (`*.sigstore.json`) and require `cosign`.
42+
2043
## Command modes
2144

2245
- Passthrough mode: `with-watch [--no-hash] [--clear] <utility> [args...]`

0 commit comments

Comments
 (0)