@zackees/soldr 0.8.16 → 0.8.17
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
|
@@ -56,6 +56,10 @@ The npm package is a small launcher that downloads the matching `soldr` GitHub
|
|
|
56
56
|
Release binary for your OS and architecture during install, verifies it against
|
|
57
57
|
the published `SHA256SUMS` file, and exposes the `soldr` command.
|
|
58
58
|
|
|
59
|
+
Published npm archives and PyPI wheels support both Intel (`x86_64`) and Apple
|
|
60
|
+
Silicon (`arm64`) macOS. Intel artifacts are cross-built through soldr's
|
|
61
|
+
blessed Apple SDK path and smoke-tested on an Intel macOS runner before release.
|
|
62
|
+
|
|
59
63
|
## GitHub Actions setup
|
|
60
64
|
|
|
61
65
|
The current GitHub Actions entry point is the public `setup-soldr` action:
|
|
@@ -129,7 +133,8 @@ soldr cargo build --target aarch64-pc-windows-msvc
|
|
|
129
133
|
The canonical multi-platform GitHub Actions tutorial lives in [`zackees/setup-soldr#90`](https://github.com/zackees/setup-soldr/issues/90).
|
|
130
134
|
|
|
131
135
|
For Windows x64 → Windows GNU builds via managed MinGW-w64 GCC, and Linux →
|
|
132
|
-
Windows MSVC cross-compilation via `
|
|
136
|
+
Windows MSVC cross-compilation via the blessed `soldr build` surface (with
|
|
137
|
+
`soldr cargo xwin` retained as an explicit legacy fallback),
|
|
133
138
|
see [docs/CROSS_COMPILE.md](./docs/CROSS_COMPILE.md).
|
|
134
139
|
|
|
135
140
|
### CI cache lineage
|
|
@@ -10,14 +10,14 @@
|
|
|
10
10
|
},
|
|
11
11
|
"validation_commands": [
|
|
12
12
|
{
|
|
13
|
-
"id": "rust-
|
|
13
|
+
"id": "rust-embedded-runtime-topology",
|
|
14
14
|
"gate": "hard",
|
|
15
|
-
"command": "soldr --no-cache cargo test -p soldr-cli --test
|
|
15
|
+
"command": "soldr --no-cache cargo test -p soldr-cli --test no_standalone_spawn_lint --locked"
|
|
16
16
|
},
|
|
17
17
|
{
|
|
18
|
-
"id": "rust-
|
|
18
|
+
"id": "rust-zccache-entry",
|
|
19
19
|
"gate": "hard",
|
|
20
|
-
"command": "soldr --no-cache cargo test -p soldr-cli --test
|
|
20
|
+
"command": "soldr --no-cache cargo test -p soldr-cli --test zccache_trampoline_gate --locked"
|
|
21
21
|
},
|
|
22
22
|
{
|
|
23
23
|
"id": "rust-wrapper-env",
|
|
@@ -25,14 +25,24 @@
|
|
|
25
25
|
"command": "soldr --no-cache cargo test -p soldr-cli --test cli_cargo_wrappers --locked"
|
|
26
26
|
},
|
|
27
27
|
{
|
|
28
|
-
"id": "rust-
|
|
28
|
+
"id": "rust-rust-plan",
|
|
29
|
+
"gate": "hard",
|
|
30
|
+
"command": "soldr --no-cache cargo test -p soldr-cli --test cli_rust_plan --locked"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"id": "rust-cache-cli",
|
|
29
34
|
"gate": "hard",
|
|
30
|
-
"command": "soldr --no-cache cargo test -p soldr-cli --
|
|
35
|
+
"command": "soldr --no-cache cargo test -p soldr-cli --test cli_cache --locked"
|
|
31
36
|
},
|
|
32
37
|
{
|
|
33
|
-
"id": "rust-
|
|
38
|
+
"id": "rust-cache-session",
|
|
39
|
+
"gate": "hard",
|
|
40
|
+
"command": "soldr --no-cache cargo test -p soldr-cli --lib --locked cache::session::tests"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"id": "rust-native-cache-unit",
|
|
34
44
|
"gate": "hard",
|
|
35
|
-
"command": "soldr --no-cache cargo test -p soldr-cli --
|
|
45
|
+
"command": "soldr --no-cache cargo test -p soldr-cli --lib --locked native_cc::tests"
|
|
36
46
|
},
|
|
37
47
|
{
|
|
38
48
|
"id": "rust-native-cache-integration",
|
|
@@ -52,7 +62,7 @@
|
|
|
52
62
|
{
|
|
53
63
|
"id": "python-setup-contracts",
|
|
54
64
|
"gate": "hard",
|
|
55
|
-
"command": "uv run pytest tests/test_zccache_integration_guardrails.py tests/test_zccache_runtime_contract.py tests/test_setup_soldr_action.py tests/test_setup_soldr_exporter.py tests/test_setup_soldr_ensure_soldr.py -q"
|
|
65
|
+
"command": "uv run --no-sync pytest tests/test_zccache_integration_guardrails.py tests/test_zccache_runtime_contract.py tests/test_setup_soldr_action.py tests/test_setup_soldr_exporter.py tests/test_setup_soldr_ensure_soldr.py -q"
|
|
56
66
|
},
|
|
57
67
|
{
|
|
58
68
|
"id": "node-npm-contract",
|
|
@@ -72,46 +82,46 @@
|
|
|
72
82
|
],
|
|
73
83
|
"guardrails": [
|
|
74
84
|
{
|
|
75
|
-
"id": "
|
|
76
|
-
"axis": "
|
|
85
|
+
"id": "embedded-runtime-topology",
|
|
86
|
+
"axis": "embedded runtime topology",
|
|
77
87
|
"gate": "hard",
|
|
78
88
|
"covers": [
|
|
79
|
-
"
|
|
80
|
-
"
|
|
81
|
-
"
|
|
82
|
-
"
|
|
89
|
+
"zccache compile service stays embedded in soldr-daemon",
|
|
90
|
+
"soldr zccache uses the gated in-process entry point",
|
|
91
|
+
"standalone zccache-daemon spawn paths remain unreachable",
|
|
92
|
+
"runtime packaging declares no standalone zccache binaries"
|
|
83
93
|
],
|
|
84
94
|
"test_files": [
|
|
85
|
-
"crates/soldr-cli/tests/
|
|
86
|
-
"crates/soldr-cli/
|
|
95
|
+
"crates/soldr-cli/tests/no_standalone_spawn_lint.rs",
|
|
96
|
+
"crates/soldr-cli/tests/zccache_trampoline_gate.rs",
|
|
97
|
+
"contracts/zccache-runtime.v1.json",
|
|
87
98
|
"tests/test_zccache_runtime_contract.py"
|
|
88
99
|
],
|
|
89
100
|
"validation_command_ids": [
|
|
90
|
-
"rust-
|
|
101
|
+
"rust-embedded-runtime-topology",
|
|
102
|
+
"rust-zccache-entry",
|
|
91
103
|
"python-setup-contracts"
|
|
92
104
|
]
|
|
93
105
|
},
|
|
94
106
|
{
|
|
95
|
-
"id": "
|
|
96
|
-
"axis": "session lifecycle and child env",
|
|
107
|
+
"id": "embedded-session-env",
|
|
108
|
+
"axis": "embedded session lifecycle and child env",
|
|
97
109
|
"gate": "hard",
|
|
98
110
|
"covers": [
|
|
99
|
-
"
|
|
100
|
-
"session
|
|
101
|
-
"ZCCACHE_SESSION_ID propagation",
|
|
102
|
-
"ZCCACHE_CACHE_DIR propagation",
|
|
111
|
+
"RUSTC_WRAPPER routes through soldr",
|
|
112
|
+
"legacy external zccache binary and session env is cleared",
|
|
103
113
|
"ZCCACHE_PATH_REMAP propagation",
|
|
104
114
|
"ZCCACHE_WORKTREE_ROOT propagation",
|
|
105
|
-
"
|
|
115
|
+
"embedded compile-stat session baselines and summaries"
|
|
106
116
|
],
|
|
107
117
|
"test_files": [
|
|
108
|
-
"crates/soldr-cli/tests/
|
|
109
|
-
"crates/soldr-cli/
|
|
110
|
-
"crates/soldr-cli/src/
|
|
118
|
+
"crates/soldr-cli/tests/cli_cargo_wrappers.rs",
|
|
119
|
+
"crates/soldr-cli/src/cargo_front_door/cache_plan.rs",
|
|
120
|
+
"crates/soldr-cli/src/cache/session.rs"
|
|
111
121
|
],
|
|
112
122
|
"validation_command_ids": [
|
|
113
|
-
"rust-
|
|
114
|
-
"rust-
|
|
123
|
+
"rust-wrapper-env",
|
|
124
|
+
"rust-cache-session"
|
|
115
125
|
]
|
|
116
126
|
},
|
|
117
127
|
{
|
|
@@ -119,19 +129,19 @@
|
|
|
119
129
|
"axis": "rust artifact plan",
|
|
120
130
|
"gate": "hard",
|
|
121
131
|
"covers": [
|
|
122
|
-
"restore before cargo",
|
|
123
|
-
"save after cargo",
|
|
124
|
-
"managed daemon cache dir",
|
|
132
|
+
"in-process restore before cargo",
|
|
133
|
+
"in-process save after cargo",
|
|
125
134
|
"artifact bundle cache dir",
|
|
126
|
-
"partial restore warning"
|
|
135
|
+
"partial restore warning",
|
|
136
|
+
"embedded compile counts drive warm-save decisions"
|
|
127
137
|
],
|
|
128
138
|
"test_files": [
|
|
129
|
-
"crates/soldr-cli/tests/cli_zccache_contract_matrix.rs",
|
|
130
139
|
"crates/soldr-cli/tests/cli_rust_plan.rs",
|
|
131
|
-
"crates/soldr-cli/src/rust_plan_tests"
|
|
140
|
+
"crates/soldr-cli/src/rust_plan_tests",
|
|
141
|
+
"crates/soldr-cli/src/cargo_front_door/cache_plan.rs"
|
|
132
142
|
],
|
|
133
143
|
"validation_command_ids": [
|
|
134
|
-
"rust-
|
|
144
|
+
"rust-rust-plan"
|
|
135
145
|
]
|
|
136
146
|
},
|
|
137
147
|
{
|
|
@@ -139,58 +149,36 @@
|
|
|
139
149
|
"axis": "cache scoping",
|
|
140
150
|
"gate": "hard",
|
|
141
151
|
"covers": [
|
|
142
|
-
"--no-cache build bypasses
|
|
143
|
-
"non-build cargo commands
|
|
152
|
+
"--no-cache build bypasses the embedded compile service",
|
|
153
|
+
"non-build cargo commands preserve the documented wrapper policy",
|
|
144
154
|
"SOLDR_CACHE_ENABLED=0 reaches cargo"
|
|
145
155
|
],
|
|
146
156
|
"test_files": [
|
|
147
|
-
"crates/soldr-cli/tests/
|
|
148
|
-
"crates/soldr-cli/
|
|
157
|
+
"crates/soldr-cli/tests/cli_cargo_wrappers.rs",
|
|
158
|
+
"crates/soldr-cli/src/cargo_front_door/cache_plan.rs"
|
|
149
159
|
],
|
|
150
160
|
"validation_command_ids": [
|
|
151
|
-
"rust-contract-matrix",
|
|
152
161
|
"rust-wrapper-env"
|
|
153
162
|
]
|
|
154
163
|
},
|
|
155
164
|
{
|
|
156
|
-
"id": "
|
|
157
|
-
"axis": "
|
|
158
|
-
"gate": "hard",
|
|
159
|
-
"platforms": [
|
|
160
|
-
"windows"
|
|
161
|
-
],
|
|
162
|
-
"covers": [
|
|
163
|
-
"one retry after zccache unknown session",
|
|
164
|
-
"fresh session allocation for retry",
|
|
165
|
-
"non-session errors do not retry"
|
|
166
|
-
],
|
|
167
|
-
"test_files": [
|
|
168
|
-
"crates/soldr-cli/tests/cli_unknown_session_retry.rs",
|
|
169
|
-
"crates/soldr-cli/src/wrapper.rs",
|
|
170
|
-
"crates/soldr-cli/src/zccache_lifecycle.rs"
|
|
171
|
-
],
|
|
172
|
-
"validation_command_ids": [
|
|
173
|
-
"rust-unknown-session-retry",
|
|
174
|
-
"rust-watchdog-lint"
|
|
175
|
-
]
|
|
176
|
-
},
|
|
177
|
-
{
|
|
178
|
-
"id": "shutdown-scoping",
|
|
179
|
-
"axis": "daemon shutdown",
|
|
165
|
+
"id": "embedded-flush-shutdown",
|
|
166
|
+
"axis": "embedded cache flush and shutdown",
|
|
180
167
|
"gate": "hard",
|
|
181
168
|
"covers": [
|
|
182
|
-
"command-lifetime
|
|
183
|
-
"
|
|
184
|
-
"shutdown
|
|
185
|
-
"daemon-down diagnostics"
|
|
169
|
+
"command-lifetime durability uses embedded flush",
|
|
170
|
+
"session summaries are finalized from embedded compile stats",
|
|
171
|
+
"cache shutdown targets soldr-daemon",
|
|
172
|
+
"daemon-down diagnostics remain bounded"
|
|
186
173
|
],
|
|
187
174
|
"test_files": [
|
|
188
|
-
"crates/soldr-cli/tests/cli_zccache_contract_matrix.rs",
|
|
189
175
|
"crates/soldr-cli/tests/cli_cache.rs",
|
|
190
|
-
"crates/soldr-cli/
|
|
176
|
+
"crates/soldr-cli/src/cache/session.rs",
|
|
177
|
+
"crates/soldr-cli/src/cargo_front_door/cache_plan.rs"
|
|
191
178
|
],
|
|
192
179
|
"validation_command_ids": [
|
|
193
|
-
"rust-
|
|
180
|
+
"rust-cache-cli",
|
|
181
|
+
"rust-cache-session"
|
|
194
182
|
]
|
|
195
183
|
},
|
|
196
184
|
{
|
|
@@ -223,7 +211,7 @@
|
|
|
223
211
|
"embedded zccache runtime",
|
|
224
212
|
"crgx binary",
|
|
225
213
|
"setup-soldr manifest validation",
|
|
226
|
-
"npm
|
|
214
|
+
"npm exported contract files"
|
|
227
215
|
],
|
|
228
216
|
"test_files": [
|
|
229
217
|
"contracts/zccache-runtime.v1.json",
|
|
@@ -254,6 +242,7 @@
|
|
|
254
242
|
],
|
|
255
243
|
"validation_command_ids": [
|
|
256
244
|
"rust-wrapper-env",
|
|
245
|
+
"rust-wrapper-perf",
|
|
257
246
|
"perf-cold-warm"
|
|
258
247
|
]
|
|
259
248
|
},
|
|
@@ -331,18 +320,20 @@
|
|
|
331
320
|
"axis": "test ownership",
|
|
332
321
|
"gate": "hard",
|
|
333
322
|
"covers": [
|
|
334
|
-
"
|
|
335
|
-
"new tests use timed_test watchdog",
|
|
336
|
-
"
|
|
323
|
+
"zccache integration tests live outside monolithic source modules",
|
|
324
|
+
"new tests use the timed_test watchdog",
|
|
325
|
+
"embedded-runtime contract tests remain discoverable"
|
|
337
326
|
],
|
|
338
327
|
"test_files": [
|
|
339
328
|
"crates/soldr-cli/tests/timed_test_lint.rs",
|
|
340
|
-
"crates/soldr-cli/
|
|
341
|
-
"crates/soldr-cli/
|
|
342
|
-
"crates/soldr-cli/src/
|
|
329
|
+
"crates/soldr-cli/tests/no_standalone_spawn_lint.rs",
|
|
330
|
+
"crates/soldr-cli/tests/zccache_trampoline_gate.rs",
|
|
331
|
+
"crates/soldr-cli/src/cargo_front_door/cache_plan.rs"
|
|
343
332
|
],
|
|
344
333
|
"validation_command_ids": [
|
|
345
|
-
"rust-watchdog-lint"
|
|
334
|
+
"rust-watchdog-lint",
|
|
335
|
+
"rust-embedded-runtime-topology",
|
|
336
|
+
"rust-zccache-entry"
|
|
346
337
|
]
|
|
347
338
|
}
|
|
348
339
|
]
|
package/package.json
CHANGED
package/scripts/install.js
CHANGED
|
@@ -26,16 +26,12 @@ const TARGETS = {
|
|
|
26
26
|
"linux-x64-musl": { triple: "x86_64-unknown-linux-musl", binary: "soldr" },
|
|
27
27
|
"linux-arm64-gnu": { triple: "aarch64-unknown-linux-gnu", binary: "soldr" },
|
|
28
28
|
"linux-arm64-musl": { triple: "aarch64-unknown-linux-musl", binary: "soldr" },
|
|
29
|
+
"darwin-x64": { triple: "x86_64-apple-darwin", binary: "soldr" },
|
|
29
30
|
"darwin-arm64": { triple: "aarch64-apple-darwin", binary: "soldr" },
|
|
30
31
|
"win32-x64": { triple: "x86_64-pc-windows-msvc", binary: "soldr.exe" },
|
|
31
32
|
"win32-arm64": { triple: "aarch64-pc-windows-msvc", binary: "soldr.exe" },
|
|
32
33
|
};
|
|
33
34
|
|
|
34
|
-
const UNSUPPORTED_TARGETS = {
|
|
35
|
-
"darwin-x64":
|
|
36
|
-
"x86_64-apple-darwin release archives are intentionally not published; install from PyPI sdist or build from source",
|
|
37
|
-
};
|
|
38
|
-
|
|
39
35
|
// Files we expect to find at the root of every extracted release
|
|
40
36
|
// archive. Names line up with what `release-auto.yml`'s
|
|
41
37
|
// `Stage soldr release binaries`, `Build crgx from pinned source`, and
|
|
@@ -90,8 +86,7 @@ function platformTarget(platform = process.platform, arch = process.arch, libc =
|
|
|
90
86
|
: `${platform}-${arch}`;
|
|
91
87
|
const target = TARGETS[key];
|
|
92
88
|
if (!target) {
|
|
93
|
-
|
|
94
|
-
throw new Error(`unsupported platform for soldr npm package: ${key}${detail}`);
|
|
89
|
+
throw new Error(`unsupported platform for soldr npm package: ${key}`);
|
|
95
90
|
}
|
|
96
91
|
return target;
|
|
97
92
|
}
|
|
@@ -100,10 +100,7 @@ assert.strictEqual(
|
|
|
100
100
|
// Default (no libc arg) falls back to detectLibc; on most CI hosts that's
|
|
101
101
|
// gnu. We don't assert the triple here — just that the call resolves.
|
|
102
102
|
assert.ok(install.platformTarget("linux", "x64").triple.startsWith("x86_64-unknown-linux-"));
|
|
103
|
-
assert.
|
|
104
|
-
() => install.platformTarget("darwin", "x64"),
|
|
105
|
-
/x86_64-apple-darwin release archives are intentionally not published/,
|
|
106
|
-
);
|
|
103
|
+
assert.strictEqual(install.platformTarget("darwin", "x64").triple, "x86_64-apple-darwin");
|
|
107
104
|
assert.strictEqual(install.platformTarget("darwin", "arm64").triple, "aarch64-apple-darwin");
|
|
108
105
|
assert.strictEqual(install.platformTarget("win32", "x64").triple, "x86_64-pc-windows-msvc");
|
|
109
106
|
assert.strictEqual(install.platformTarget("win32", "arm64").triple, "aarch64-pc-windows-msvc");
|