@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.
Files changed (2) hide show
  1. package/README.md +45 -1
  2. 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 share are where soldr's wrapper architecture pays off. 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).
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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zackees/soldr",
3
- "version": "0.8.18",
3
+ "version": "0.8.20",
4
4
  "description": "Instant Rust tools and builds from one command.",
5
5
  "license": "BSD-3-Clause",
6
6
  "homepage": "https://github.com/zackees/soldr",