Bkt Versions Save

a subprocess caching utility, available as a command line binary and a Rust library.

0.8.0

3 months ago

What's Changed

  • --ttl is now a required flag. Historically it arbitrarily defaulted to one minute; to preserve this behavior you can set BKT_TTL=1m in the environment that's executing bkt (#48 and #27)
  • Resolved an 'overflow when subtracting duration from instant' panic observed on certain platforms (#45)
  • Scopes now support names that don't happen to be valid file names (#51)
  • Improve error message on permission failures (#35)

API Changes

  • CacheStatus::Hit(Instant) has been replaced with CacheStatus::Hit(SystemTime)

Full Changelog: https://github.com/dimo414/bkt/compare/0.7.1...0.8.0

0.7.1

8 months ago

Patch release to pick up the fix for #44 which was a regression introduced in 0.7.0.

Full Changelog: https://github.com/dimo414/bkt/compare/0.7.0...0.7.1

0.7.0

8 months ago

What's Changed

  • stdout/stderr are now streamed as the subprocess is executing, rather than output only once the subprocess completes (#43).
  • NotFound errors during cleanup are now ignored (#42).
  • Improved error handling for malformed executables (#37).

API Changes

  • New methods Bkt::retrieve_streaming and Bkt::refresh_streaming have been added for library users that want to stream output, however these methods are subject to change and should be treated as experimental

Full Changelog: https://github.com/dimo414/bkt/compare/0.6.1...0.7.0

0.6.1

1 year ago

Patch release adjusting how --help's output is wrapped.

Full Changelog: https://github.com/dimo414/bkt/compare/0.6.0...0.6.1

0.6.0

1 year ago

What's Changed

  • Support environment variables BKT_TTL, BKT_SCOPE, and BKT_CACHE_DIR as alternatives for flags --ttl, --scope, and --cache-dir, respectively (#15).
  • Added support for keying the cache off one or more files' last-modified time via the --modtime flag (#10).
  • --discard_failures is included in the cache key, meaning bkt -- foo and bkt --discard_failures -- foo will be cached separately.
  • Updated to Clap v4 (#25).
  • Added CI test coverage of feature="debug" behavior.
  • Fixed flaky tests that relied unnecessarily on how file modtimes change (#14).

API Changes

  • Bkt::discard_failures() is now set on CommandDesc, and affects the cache key.
  • Added a CommandState type, making CommandDesc safe to persist and pass around. Environment details like the working directory and environment variables are captured when the CommandState instance is constructed.
  • Bkt::retrieve and Bkt::refresh now return more metadata about the cache state (e.g. whether there was a cache hit or miss).

Full Changelog: https://github.com/dimo414/bkt/compare/0.5.4...0.6.0

0.5.4

2 years ago

Patch release to aid packaging for Debian (see https://github.com/dimo414/bkt/issues/12). No new functionality vs. 0.5.2

0.5.3

2 years ago

Patch release to aid packaging for Debian (see #12). No new functionality vs. 0.5.2.

0.5.2

2 years ago

Handle (i.e. ignore) BrokenPipe errors, which indicate stdout/stderr were closed without reading all output.

0.5.1

2 years ago

Patch release to pick up improved --help text from #1.

Full Changelog: https://github.com/dimo414/bkt/compare/0.5.0...0.5.1

0.5.0

2 years ago

What's Changed

  • Add support for setting the cache directory via a BKT_TMPDIR environment variable
  • CLI
    • Added --discard-failures to optionally not cache invocations that fail
    • Rename flags to use hyphens instead of underscores (#2)
  • API
    • Renamed Bkt::execute() to Bkt::retrieve()
    • Moved cleanup configuration to Bkt's state, see Bkt::cleanup_on_refresh()
    • Added Bkt::discard_failures() to support --discard-failures
  • Provided a small benchmark.sh script for observing bkt's overhead

Full Changelog: https://github.com/dimo414/bkt/compare/0.4.0...0.5.0