@zackees/soldr 0.8.18 → 0.8.20
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 +45 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -18,7 +18,7 @@ Third-party comparison (soldr vs Swatinem/rust-cache vs ...): published from `za
|
|
|
18
18
|
|
|
19
19
|
*[performance details](https://zackees.github.io/soldr/)*
|
|
20
20
|
|
|
21
|
-
Cold builds are a wash; warm and cross-worktree
|
|
21
|
+
Cold builds are a wash; clean-target reconstruction from a warm compiler cache and cross-worktree sharing are where soldr's wrapper architecture pays off. The README chart's clean-target row intentionally deletes `target/`; it does not claim Cargo's intact-target freshness fast path. Full historical trend + interactive view: [zackees.github.io/soldr](https://zackees.github.io/soldr/). For the swatinem/rust-cache comparison (GHA target-dir caching, a different layer) see [PERF.md](PERF.md#readme-comparison-bars-issue-785).
|
|
22
22
|
|
|
23
23
|
**Instant tools. Instant builds. One command.**
|
|
24
24
|
|
|
@@ -240,6 +240,50 @@ files touched. What you get over `build-backend = "maturin"`:
|
|
|
240
240
|
- **Compilation caching** — rustc invocations run under soldr's
|
|
241
241
|
`RUSTC_WRAPPER`, so repeat builds hit the cache.
|
|
242
242
|
|
|
243
|
+
Local PEP 517 builds use an explicit fast `dev` profile by default:
|
|
244
|
+
`opt-level = 0`, 256 codegen units, line-table debug information, no LTO, and
|
|
245
|
+
incremental compilation. Explicit Maturin/Cargo settings and
|
|
246
|
+
`SOLDR_PEP517_PROFILE` remain authoritative per setting; release pipelines
|
|
247
|
+
should select their release profile explicitly.
|
|
248
|
+
|
|
249
|
+
Successful wheel and editable builds print a one-line cache and timing summary
|
|
250
|
+
to stderr. Set `SOLDR_PEP517_STATS=off` to silence it; `SOLDR_PEP517_STATS=full`
|
|
251
|
+
(and detected verbose `pip`/`uv` frontends) also prints the complete session
|
|
252
|
+
statistics payload.
|
|
253
|
+
|
|
254
|
+
Soldr also caches the last successful wheel for each project/build mode under
|
|
255
|
+
`~/.soldr/pep517/wheels/`. Before packaging it scans source and staged-artifact
|
|
256
|
+
metadata (relative path, size, and modification time); an unchanged tree
|
|
257
|
+
hardlinks the cached wheel into pip's requested output directory and skips
|
|
258
|
+
wheel rebuilding/compression. Set `SOLDR_PEP517_WHEEL_CACHE=off` to opt out.
|
|
259
|
+
|
|
260
|
+
Projects whose packaging backend is not maturin can use soldr as a managed
|
|
261
|
+
wrapper by selecting a delegate in `pyproject.toml`:
|
|
262
|
+
|
|
263
|
+
```toml
|
|
264
|
+
[build-system]
|
|
265
|
+
requires = ["soldr", "setuptools>=64"]
|
|
266
|
+
build-backend = "soldr"
|
|
267
|
+
|
|
268
|
+
[tool.soldr.pep517]
|
|
269
|
+
delegate-backend = "setuptools.build_meta"
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
The delegate receives the normal PEP 517/660 hooks and return values while
|
|
273
|
+
soldr supplies its target, profile, linker, and cache environment. This is
|
|
274
|
+
intended for projects with custom staging such as native CLI scripts plus a
|
|
275
|
+
PyO3 extension. Maturin remains the default when no delegate is configured.
|
|
276
|
+
The same explicit profile settings work for delegates as for maturin; for
|
|
277
|
+
example, `pip install . --config-settings profile=release` selects the
|
|
278
|
+
release profile, while an ordinary install uses the fast local `dev` profile.
|
|
279
|
+
|
|
280
|
+
The backend also asks soldr to try its fastest supported linker locally. If
|
|
281
|
+
that linker fails with a linker-availability error, soldr retries once with
|
|
282
|
+
the platform linker and remembers the successful fallback in its cache. An
|
|
283
|
+
equivalent later build uses the fallback immediately and prints a warning.
|
|
284
|
+
Set `SOLDR_PEP517_LINKER=none` to disable this policy. An explicit
|
|
285
|
+
`SOLDR_LINKER=fast` is treated as a deliberate choice: it reports the failure
|
|
286
|
+
without silently downgrading to the system linker.
|
|
243
287
|
Note: soldr's own wheel is built with plain `build-backend = "maturin"`,
|
|
244
288
|
not with itself — using soldr as its own build backend created a
|
|
245
289
|
bootstrap cycle where a broken installed soldr made the fix in this
|