github kunobi-ninja/kache v0.28.1
v0.28.1: seeded targets stay registered and executable

3 hours ago

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 init

Prebuilt packages are on the install page.

Highlights

  • A target directory that seeding creates is tagged, so kache targets lists 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-runner is using, and releases that lease before the next target.

Fixed

  • seed: With the daemon running, seeding created <target>/debug before Cargo created <target>, so Cargo never wrote CACHEDIR.TAG. The directory was then missing from kache targets and 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 with EACCES. The copy now keeps the source mode. #1348 by @AlJohri
  • identity: Cargo's legacy build-script output lives under <profile>/build/<unit>. Profile detection treated build as 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-shims adds a cargo shim. While it is ahead of the real cargo on PATH, the shim holds a target-use lease until the Cargo command exits. kache clean and automatic cleanup skip a pass while that lease is held. kache test-runner holds 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

AlJohri jleni

Full changelog: v0.28.0...v0.28.1

Don't miss a new kache release

NewReleases is sending notifications on new releases.