@zackees/soldr 0.9.10 → 0.9.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -46,20 +46,90 @@ Current release line:
|
|
|
46
46
|
- the supported external integration boundary remains the `soldr` executable, not the internal Rust crates; see [docs/API_BOUNDARY.md](./docs/API_BOUNDARY.md)
|
|
47
47
|
- practical integration examples for local builds and GitHub Actions live in [INTEGRATION.md](./INTEGRATION.md)
|
|
48
48
|
|
|
49
|
-
##
|
|
49
|
+
## Quick start
|
|
50
50
|
|
|
51
51
|
```bash
|
|
52
|
-
|
|
53
|
-
|
|
52
|
+
# 1. Install or upgrade (same command)
|
|
53
|
+
uv tool install --upgrade soldr
|
|
54
|
+
|
|
55
|
+
# 2. Put `soldr` in front of every Rust command
|
|
56
|
+
soldr cargo build --release
|
|
57
|
+
soldr cargo test
|
|
58
|
+
soldr cargo clippy --workspace
|
|
59
|
+
|
|
60
|
+
# 3. See what the cache is doing
|
|
61
|
+
soldr status
|
|
54
62
|
```
|
|
55
63
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
64
|
+
That is the whole integration. The first cacheable compile starts the
|
|
65
|
+
`soldr-daemon` sidecar, pins the toolchain from `rust-toolchain.toml`, and
|
|
66
|
+
every later build on any branch or worktree hits the shared cache.
|
|
67
|
+
|
|
68
|
+
<details>
|
|
69
|
+
<summary><b>Command reference</b></summary>
|
|
70
|
+
|
|
71
|
+
### Everyday
|
|
72
|
+
|
|
73
|
+
| Command | What it does |
|
|
74
|
+
|---|---|
|
|
75
|
+
| `soldr cargo <args>` | Run cargo through the cache with the pinned toolchain |
|
|
76
|
+
| `soldr build --target <triple\|alias>` | Blessed cross-compile with a managed SDK (`win-x64`, `mac-arm64`, `linux-x64-musl`, ...) |
|
|
77
|
+
| `soldr cc` / `soldr c++` | Compile C / C++ with a catalogue-backed toolchain |
|
|
78
|
+
| `soldr lint` | Unified Rust and dependency lint suites |
|
|
79
|
+
| `soldr ci-test` | The prescribed host-validation DAG used in CI |
|
|
80
|
+
| `soldr <tool>` | Fetch and run a pre-built ecosystem tool: `nextest`, `deny`, `audit`, `mdbook`, `just`, ... |
|
|
81
|
+
|
|
82
|
+
### Toolchain
|
|
83
|
+
|
|
84
|
+
| Command | What it does |
|
|
85
|
+
|---|---|
|
|
86
|
+
| `soldr rustc`, `rustfmt`, `clippy-driver`, `rustdoc` | Pinned-toolchain passthroughs |
|
|
87
|
+
| `soldr rustup <args>` | Passthrough to rustup, toolchain-aware |
|
|
88
|
+
| `soldr toolchain ensure` | Bootstrap rustup, install the pinned channel, components, and targets |
|
|
89
|
+
| `soldr toolchain link --shim-dir <dir>` | Write PATH shims that re-enter soldr |
|
|
90
|
+
| `soldr doctor` | Report drift between `rust-toolchain.toml` and rustup |
|
|
91
|
+
| `soldr rust-analyzer`, `rust-gdb`, `rust-lldb` | Language server and debuggers |
|
|
92
|
+
|
|
93
|
+
### Cache
|
|
94
|
+
|
|
95
|
+
| Command | What it does |
|
|
96
|
+
|---|---|
|
|
97
|
+
| `soldr status` | Cache status and active toolchain |
|
|
98
|
+
| `soldr cache` | Inspect compilation cache entries |
|
|
99
|
+
| `soldr cook` | Prebuild dependencies via bundled cargo-chef |
|
|
100
|
+
| `soldr save` / `soldr load` | Bundle a build cache to `.tar.zst` and restore it on a fresh checkout |
|
|
101
|
+
| `soldr gc` | Review reclaimable cargo `target/` directories |
|
|
102
|
+
| `soldr clean` / `soldr purge` | Clear the build cache / purge every soldr-managed artifact |
|
|
103
|
+
| `soldr config` | Show or set configuration in `~/.soldr/config.toml` |
|
|
104
|
+
|
|
105
|
+
### Ops
|
|
106
|
+
|
|
107
|
+
| Command | What it does |
|
|
108
|
+
|---|---|
|
|
109
|
+
| `soldr daemon start\|stop` | Manage the long-lived `soldr-daemon` process |
|
|
110
|
+
| `soldr optimize` | Platform-specific hot-cache tuning |
|
|
111
|
+
| `soldr defender-exclusions` | Manage Windows Defender exclusions for soldr caches |
|
|
112
|
+
| `soldr help <command>` | Full help for any command |
|
|
113
|
+
|
|
114
|
+
</details>
|
|
115
|
+
|
|
116
|
+
Also on npm as `@zackees/soldr`: a small launcher that downloads the matching
|
|
117
|
+
GitHub Release binary during install and verifies it against the published
|
|
118
|
+
`SHA256SUMS` file.
|
|
59
119
|
|
|
60
120
|
Published npm archives and PyPI wheels support both Intel (`x86_64`) and Apple
|
|
61
|
-
Silicon (`arm64`) macOS.
|
|
62
|
-
|
|
121
|
+
Silicon (`arm64`) macOS. Both are cross-built through soldr's blessed Apple
|
|
122
|
+
SDK path on Linux; Intel artifacts are then smoke-tested inside a
|
|
123
|
+
[zackees/docker-mac-x64](https://github.com/zackees/docker-mac-x64) macOS
|
|
124
|
+
Recovery guest hosted on an ordinary Linux runner before release (no GitHub
|
|
125
|
+
Actions job runs on a native macOS runner). The same Recovery guest also
|
|
126
|
+
replays the real `x86_64-apple-darwin` nextest archive -- toolchain
|
|
127
|
+
provisioning included -- on every pull request and again at the release
|
|
128
|
+
commit before publish, so Intel macOS gets the same positively-owned native
|
|
129
|
+
test coverage every other cross-built target gets, without a native macOS
|
|
130
|
+
runner anywhere in the pipeline. Apple Silicon artifacts are cross-built the
|
|
131
|
+
same way but are not executed anywhere in CI until a follow-up issue
|
|
132
|
+
re-enables that before release.
|
|
63
133
|
|
|
64
134
|
## GitHub Actions setup
|
|
65
135
|
|
|
@@ -76,6 +146,8 @@ The current GitHub Actions entry point is the public `setup-soldr` action:
|
|
|
76
146
|
|
|
77
147
|
That action:
|
|
78
148
|
|
|
149
|
+
> **Deprecated (soldr#2996).** soldr no longer implements a target cache, so the `target-cache` / `target-cache-mode` / `target-dir` inputs and the `target-cache-hit` / `target-cache-mode` outputs are inert: nothing on the soldr side reads the environment they export. They remain listed because the pinned action still declares them; retiring the inputs themselves is an upstream change. Use `soldr cook`, which is the only durable compiler cache.
|
|
150
|
+
|
|
79
151
|
- installs `soldr`
|
|
80
152
|
- bootstraps `rustup` into the cached runner-local root when the runner does not already have it
|
|
81
153
|
- preinstalls the exact Rust toolchain from `rust-toolchain.toml` by default via `rustup`
|
|
@@ -12,27 +12,22 @@
|
|
|
12
12
|
{
|
|
13
13
|
"id": "rust-embedded-runtime-topology",
|
|
14
14
|
"gate": "hard",
|
|
15
|
-
"command": "soldr --no-cache cargo nextest run -p soldr-cli --test no_standalone_spawn_lint"
|
|
15
|
+
"command": "soldr --no-cache cargo nextest run -p soldr-cli --test guards -E 'test(/^no_standalone_spawn_lint::/)'"
|
|
16
16
|
},
|
|
17
17
|
{
|
|
18
18
|
"id": "rust-zccache-entry",
|
|
19
19
|
"gate": "hard",
|
|
20
|
-
"command": "soldr --no-cache cargo nextest run -p soldr-cli --test zccache_trampoline_gate"
|
|
20
|
+
"command": "soldr --no-cache cargo nextest run -p soldr-cli --test cargo_front_door -E 'test(/^zccache_trampoline_gate::/)'"
|
|
21
21
|
},
|
|
22
22
|
{
|
|
23
23
|
"id": "rust-wrapper-env",
|
|
24
24
|
"gate": "hard",
|
|
25
|
-
"command": "soldr --no-cache cargo nextest run -p soldr-cli --test cli_cargo_wrappers"
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
"id": "rust-rust-plan",
|
|
29
|
-
"gate": "hard",
|
|
30
|
-
"command": "soldr --no-cache cargo nextest run -p soldr-cli --test cli_rust_plan"
|
|
25
|
+
"command": "soldr --no-cache cargo nextest run -p soldr-cli --test cargo_front_door -E 'test(/^cli_cargo_wrappers::/)'"
|
|
31
26
|
},
|
|
32
27
|
{
|
|
33
28
|
"id": "rust-cache-cli",
|
|
34
29
|
"gate": "hard",
|
|
35
|
-
"command": "soldr --no-cache cargo nextest run -p soldr-cli --test cli_cache"
|
|
30
|
+
"command": "soldr --no-cache cargo nextest run -p soldr-cli --test cache_gc -E 'test(/^cli_cache::/)'"
|
|
36
31
|
},
|
|
37
32
|
{
|
|
38
33
|
"id": "rust-cache-session",
|
|
@@ -47,17 +42,17 @@
|
|
|
47
42
|
{
|
|
48
43
|
"id": "rust-native-cache-integration",
|
|
49
44
|
"gate": "hard",
|
|
50
|
-
"command": "soldr --no-cache cargo nextest run -p soldr-cli --test cli_cargo_native_cc"
|
|
45
|
+
"command": "soldr --no-cache cargo nextest run -p soldr-cli --test cargo_front_door -E 'test(/^cli_cargo_native_cc::/)'"
|
|
51
46
|
},
|
|
52
47
|
{
|
|
53
48
|
"id": "rust-wrapper-perf",
|
|
54
49
|
"gate": "hard",
|
|
55
|
-
"command": "soldr --no-cache cargo nextest run -p soldr-cli --test cli_wrapper_perf"
|
|
50
|
+
"command": "soldr --no-cache cargo nextest run -p soldr-cli --test cargo_front_door -E 'test(/^cli_wrapper_perf::/)'"
|
|
56
51
|
},
|
|
57
52
|
{
|
|
58
53
|
"id": "rust-watchdog-lint",
|
|
59
54
|
"gate": "hard",
|
|
60
|
-
"command": "soldr --no-cache cargo nextest run -p soldr-cli --test no_timed_test_guard"
|
|
55
|
+
"command": "soldr --no-cache cargo nextest run -p soldr-cli --test guards -E 'test(/^no_timed_test_guard::/)'"
|
|
61
56
|
},
|
|
62
57
|
{
|
|
63
58
|
"id": "python-setup-contracts",
|
|
@@ -87,13 +82,13 @@
|
|
|
87
82
|
"gate": "hard",
|
|
88
83
|
"covers": [
|
|
89
84
|
"zccache compile service stays embedded in soldr-daemon",
|
|
90
|
-
"soldr zccache uses
|
|
85
|
+
"soldr zccache uses Soldr-owned compatibility adapters only",
|
|
91
86
|
"standalone zccache-daemon spawn paths remain unreachable",
|
|
92
87
|
"runtime packaging declares no standalone zccache binaries"
|
|
93
88
|
],
|
|
94
89
|
"test_files": [
|
|
95
|
-
"crates/soldr-cli/tests/no_standalone_spawn_lint.rs",
|
|
96
|
-
"crates/soldr-cli/tests/zccache_trampoline_gate.rs",
|
|
90
|
+
"crates/soldr-cli/tests/guards/no_standalone_spawn_lint.rs",
|
|
91
|
+
"crates/soldr-cli/tests/cargo_front_door/zccache_trampoline_gate.rs",
|
|
97
92
|
"contracts/zccache-runtime.v1.json",
|
|
98
93
|
"tests/test_zccache_runtime_contract.py"
|
|
99
94
|
],
|
|
@@ -115,7 +110,7 @@
|
|
|
115
110
|
"embedded compile-stat session baselines and summaries"
|
|
116
111
|
],
|
|
117
112
|
"test_files": [
|
|
118
|
-
"crates/soldr-cli/tests/cli_cargo_wrappers.rs",
|
|
113
|
+
"crates/soldr-cli/tests/cargo_front_door/cli_cargo_wrappers.rs",
|
|
119
114
|
"crates/soldr-cli/src/cargo_front_door/cache_plan.rs",
|
|
120
115
|
"crates/soldr-cli/src/cache/session.rs"
|
|
121
116
|
],
|
|
@@ -124,26 +119,6 @@
|
|
|
124
119
|
"rust-cache-session"
|
|
125
120
|
]
|
|
126
121
|
},
|
|
127
|
-
{
|
|
128
|
-
"id": "rust-plan-cache",
|
|
129
|
-
"axis": "rust artifact plan",
|
|
130
|
-
"gate": "hard",
|
|
131
|
-
"covers": [
|
|
132
|
-
"in-process restore before cargo",
|
|
133
|
-
"in-process save after cargo",
|
|
134
|
-
"artifact bundle cache dir",
|
|
135
|
-
"partial restore warning",
|
|
136
|
-
"embedded compile counts drive warm-save decisions"
|
|
137
|
-
],
|
|
138
|
-
"test_files": [
|
|
139
|
-
"crates/soldr-cli/tests/cli_rust_plan.rs",
|
|
140
|
-
"crates/soldr-cli/src/rust_plan_tests",
|
|
141
|
-
"crates/soldr-cli/src/cargo_front_door/cache_plan.rs"
|
|
142
|
-
],
|
|
143
|
-
"validation_command_ids": [
|
|
144
|
-
"rust-rust-plan"
|
|
145
|
-
]
|
|
146
|
-
},
|
|
147
122
|
{
|
|
148
123
|
"id": "disabled-and-non-build",
|
|
149
124
|
"axis": "cache scoping",
|
|
@@ -154,7 +129,7 @@
|
|
|
154
129
|
"SOLDR_CACHE_ENABLED=0 reaches cargo"
|
|
155
130
|
],
|
|
156
131
|
"test_files": [
|
|
157
|
-
"crates/soldr-cli/tests/cli_cargo_wrappers.rs",
|
|
132
|
+
"crates/soldr-cli/tests/cargo_front_door/cli_cargo_wrappers.rs",
|
|
158
133
|
"crates/soldr-cli/src/cargo_front_door/cache_plan.rs"
|
|
159
134
|
],
|
|
160
135
|
"validation_command_ids": [
|
|
@@ -172,7 +147,7 @@
|
|
|
172
147
|
"daemon-down diagnostics remain bounded"
|
|
173
148
|
],
|
|
174
149
|
"test_files": [
|
|
175
|
-
"crates/soldr-cli/tests/cli_cache.rs",
|
|
150
|
+
"crates/soldr-cli/tests/cache_gc/cli_cache.rs",
|
|
176
151
|
"crates/soldr-cli/src/cache/session.rs",
|
|
177
152
|
"crates/soldr-cli/src/cargo_front_door/cache_plan.rs"
|
|
178
153
|
],
|
|
@@ -238,7 +213,7 @@
|
|
|
238
213
|
],
|
|
239
214
|
"test_files": [
|
|
240
215
|
".github/workflows/perf-cold-warm.yml",
|
|
241
|
-
"crates/soldr-cli/tests/cli_cargo_wrappers.rs"
|
|
216
|
+
"crates/soldr-cli/tests/cargo_front_door/cli_cargo_wrappers.rs"
|
|
242
217
|
],
|
|
243
218
|
"validation_command_ids": [
|
|
244
219
|
"rust-wrapper-env",
|
|
@@ -306,7 +281,7 @@
|
|
|
306
281
|
"--no-cache disables native cache"
|
|
307
282
|
],
|
|
308
283
|
"test_files": [
|
|
309
|
-
"crates/soldr-cli/tests/cli_cargo_native_cc.rs",
|
|
284
|
+
"crates/soldr-cli/tests/cargo_front_door/cli_cargo_native_cc.rs",
|
|
310
285
|
"crates/soldr-cli/src/native_cc_tests.rs",
|
|
311
286
|
"crates/soldr-cli/src/cargo_front_door/cache_plan.rs"
|
|
312
287
|
],
|
|
@@ -325,9 +300,9 @@
|
|
|
325
300
|
"embedded-runtime contract tests remain discoverable"
|
|
326
301
|
],
|
|
327
302
|
"test_files": [
|
|
328
|
-
"crates/soldr-cli/tests/no_timed_test_guard.rs",
|
|
329
|
-
"crates/soldr-cli/tests/no_standalone_spawn_lint.rs",
|
|
330
|
-
"crates/soldr-cli/tests/zccache_trampoline_gate.rs",
|
|
303
|
+
"crates/soldr-cli/tests/guards/no_timed_test_guard.rs",
|
|
304
|
+
"crates/soldr-cli/tests/guards/no_standalone_spawn_lint.rs",
|
|
305
|
+
"crates/soldr-cli/tests/cargo_front_door/zccache_trampoline_gate.rs",
|
|
331
306
|
"crates/soldr-cli/src/cargo_front_door/cache_plan.rs"
|
|
332
307
|
],
|
|
333
308
|
"validation_command_ids": [
|