Seeded target directories are registered again, and a seeded build-script binary stays executable on a reflink filesystem. kache clean leaves a target alone while Cargo or a test run still holds it.
cargo install kache
kache initPrebuilt packages are on the install page.
Highlights
- A target directory that seeding creates is tagged, so
kache targetslists it and a later checkout can use it as a donor. - Seeded files keep their mode. A build-script binary copied by reflink is still executable.
- Cleanup skips a target that a Cargo command or
kache test-runneris using, and releases that lease before the next target.
Fixed
- seed: With the daemon running, seeding created
<target>/debugbefore Cargo created<target>, so Cargo never wroteCACHEDIR.TAG. The directory was then missing fromkache targetsand could not seed anything else. Seeding now writes that tag when it creates the directory, and leaves an existing untagged directory alone. #1347 by @AlJohri - seed: A reflink of a seeded file came out mode
0644. The next rebuild of a build-script binary failed withEACCES. The copy now keeps the source mode. #1348 by @AlJohri - identity: Cargo's legacy build-script output lives under
<profile>/build/<unit>. Profile detection treatedbuildas the profile, so the build-intent identity was wrong. #1341 by @jleni - clean: The target-use lease could stay held by a descriptor inherited at process start, so cleanup skipped the next target as still in use. The lease is unlocked before that descriptor is closed. #1343 by @jleni
Changed
- clean:
kache install-shimsadds acargoshim. While it is ahead of the realcargoonPATH, the shim holds a target-use lease until the Cargo command exits.kache cleanand automatic cleanup skip a pass while that lease is held.kache test-runnerholds the same lease across the test binaries. #1342 by @jleni
Performance
- daemon: Detached startup waits for a readiness notification, then checks a fresh authenticated health response, instead of probing health in a loop. #1344 by @jleni
Contributors
Full changelog: v0.28.0...v0.28.1