@zackees/soldr 0.8.19 → 0.8.21

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 +28 -7
  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
 
@@ -169,13 +169,13 @@ When you run `soldr`, the tool should do the obvious thing:
169
169
  - pick MSVC on Windows by default
170
170
  - fetch the tool you asked for
171
171
  - cache it locally
172
- - fetch and manage zccache so Rust builds get transparent caching without manual wrapper setup
172
+ - run the built-in zccache service so Rust builds get transparent caching without manual wrapper setup
173
173
 
174
174
  If soldr solves that one problem well, it becomes a super tool: the command you reach for first, because it makes the rest of the stack behave.
175
175
 
176
176
  - **Tool acquisition** (the crgx half): Need `maturin`, `cargo-dylint`, or any crate binary? soldr fetches a pre-built binary from GitHub Releases in seconds. No `cargo install` from source. Cached locally for instant reuse. On `0.5.x`, this is still an upstream trust decision rather than a repo-side trust guarantee; see [docs/TRUST_BOUNDARIES.md](./docs/TRUST_BOUNDARIES.md).
177
177
 
178
- - **Compilation caching** (the zccache half): `soldr cargo ...` now fetches and manages a pinned `zccache` release for Rust builds. soldr owns the zccache daemon/session wiring and keeps managed zccache artifacts under Soldr's cache root.
178
+ - **Compilation caching** (the zccache half): `soldr cargo ...` uses the zccache service compiled into Soldr. soldr owns the daemon/session wiring and keeps its object store under the active Soldr root at `cache/zccache/daemon-state/embedded-v1/<zccache-version>/objects`, so production and development roots remain isolated.
179
179
 
180
180
  ```bash
181
181
  # Build through soldr's front door:
@@ -240,11 +240,26 @@ 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 a lightweight `dev` profile by default: line-table
244
- debug information, no LTO, and incremental compilation. Explicit maturin/Cargo
245
- profiles and `SOLDR_PEP517_PROFILE` remain authoritative; release pipelines
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
246
247
  should select their release profile explicitly.
247
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
+ `<effective-soldr-root>/pep517/wheels/`. The backend asks the selected soldr
256
+ binary for this root, so official (`.soldr`), development (`.soldr-dev`), and
257
+ custom roots remain separate even when `SOLDR_CACHE_DIR` was initially unset.
258
+ Before packaging it scans source and staged-artifact
259
+ metadata (relative path, size, and modification time); an unchanged tree
260
+ hardlinks the cached wheel into pip's requested output directory and skips
261
+ wheel rebuilding/compression. Set `SOLDR_PEP517_WHEEL_CACHE=off` to opt out.
262
+
248
263
  Projects whose packaging backend is not maturin can use soldr as a managed
249
264
  wrapper by selecting a delegate in `pyproject.toml`:
250
265
 
@@ -367,7 +382,13 @@ If you also have many separate test binaries, consider consolidating them under
367
382
  - **Front-door builds**: `soldr cargo ...` is the primary build UX.
368
383
  - **Invisible caching**: `soldr cargo ...` uses a soldr-managed zccache by default, with `soldr --no-cache cargo ...` as the opt-out.
369
384
  - **Real cache controls**: `soldr status`, `soldr cache`, and `soldr clean` report and manage the soldr-managed zccache state, while `soldr purge` removes all Soldr-managed cache artifacts for bug clearing and benchmarking.
370
- - **One cache boundary**: soldr keeps its own tools, zccache session state, and managed zccache artifacts under `~/.soldr/` by default. Use `SOLDR_CACHE_DIR` to move that root.
385
+ - **One cache boundary**: official soldr keeps its tools and cache state under `~/.soldr/`; development builds use `~/.soldr-dev/`. Use `SOLDR_CACHE_DIR` to select an explicit root.
386
+ - **Bounded while idle**: the long-lived daemon owns only its selected root,
387
+ checks pressure every five minutes, expires old state daily, and installs no
388
+ OS scheduler. Embedded zccache defaults to 5% of the filesystem clamped to
389
+ 40–200 GiB, becomes aggressive for entries older than four days near full,
390
+ and expires artifacts after 30 days. Production, development (`.soldr-dev`),
391
+ custom, and standalone `.zccache` roots never sweep one another.
371
392
  - **Disposable-worktree friendly on Windows**: for build orchestration, soldr can relocate itself under `~/.soldr/runtime/soldr-self/` so `RUSTC_WRAPPER` does not keep using a worktree-local `soldr.exe`; stale runtime copies are cleaned up periodically.
372
393
  - **Pre-built first**: Download a pre-built binary before compiling from source. Fall back gracefully.
373
394
  - **Cargo-compatible**: soldr preserves normal cargo arguments instead of forcing a separate workflow.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zackees/soldr",
3
- "version": "0.8.19",
3
+ "version": "0.8.21",
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",