# sccache 0.16.0

## Summary

sccache 0.16.0 is a smaller, stabilizing release on top of 0.15.0's multi-tier caching work, with a few new capabilities:

- **Read-only backends**: Any storage backend can now be marked read-only, not just a select few (#2705).
- **Remote execution on aarch64**: Distributed/remote execution now works on Linux aarch64, including fixes for `ldd` output parsing and toolchain packaging on non-x86_64 Linux (#2668).
- **CUDA**: `nvcc`'s `--dependency-output` argument is now handled (#2708).
- **Resilience**: Fall back to a direct cache write when tempfile creation on the same filesystem fails (#2369), and give a meaningful error when a multi-level chain references a backend that wasn't compiled in (#2695).
- **Client efficiency**: The client and dist-client now use a single-threaded tokio runtime, avoiding a thread explosion when many short-lived clients run on many-core hosts (#2704).
- **Correctness**: Strip `SCCACHE_BASEDIRS` from escaped-backslash paths on Windows (#2736), ignore empty-set environment values in config (#2639), and avoid the sccache wrapper when resolving the real compiler (#2720).
- **Security/logging**: JWT keys and cert digests are now base64-encoded in logs (#2712), plus general logging improvements (#2734).

Welcome to 4 new contributors!

## Features
* feat: all backends support making them as read-only by @AJIOB in https://github.com/mozilla/sccache/pull/2705
* Enable RE on Linux-aarch64 by @malfet in https://github.com/mozilla/sccache/pull/2668
* feat(nvcc): support argument: `--dependency-output` by @ZRHann in https://github.com/mozilla/sccache/pull/2708
* feat: avoid sccache wrapper when resolving compiler by @iTrooz in https://github.com/mozilla/sccache/pull/2720
* Fall back to direct cache write if tempfile creation on the same fs fails by @myzhang1029 in https://github.com/mozilla/sccache/pull/2369
* Don't wait depfiles for gcc/clang preprocessed inputs by @AJIOB in https://github.com/mozilla/sccache/pull/2665

## Fixes
* fix: strip SCCACHE_BASEDIRS from escaped-backslash paths on Windows by @rconde01 in https://github.com/mozilla/sccache/pull/2736
* fix: ignore empty-set environment values for config by @AJIOB in https://github.com/mozilla/sccache/pull/2639
* fix: handle disabled cache backend features in multilevel chain by @cryptomilk in https://github.com/mozilla/sccache/pull/2695
* fix: use single-threaded tokio runtime in sccache (dist-)client by @AJIOB in https://github.com/mozilla/sccache/pull/2704
* fix: add newline when printing dist-status to stdout by @iTrooz in https://github.com/mozilla/sccache/pull/2710

## Logging
* chore: encode jwt key and cert digest with base64 in logs by @iTrooz in https://github.com/mozilla/sccache/pull/2712
* Slightly improve logging by @glandium in https://github.com/mozilla/sccache/pull/2734

## Cleanup
* chore: make clippy happy by @AJIOB in https://github.com/mozilla/sccache/pull/2727
* Extract new_client_runtime() helper to DRY up client runtime creation by @sylvestre in https://github.com/mozilla/sccache/pull/2744

## New Contributors
* @ZRHann made their first contribution in https://github.com/mozilla/sccache/pull/2708
* @myzhang1029 made their first contribution in https://github.com/mozilla/sccache/pull/2369
* @malfet made their first contribution in https://github.com/mozilla/sccache/pull/2668
* @rconde01 made their first contribution in https://github.com/mozilla/sccache/pull/2736

**Full Changelog**: https://github.com/mozilla/sccache/compare/v0.15.0...v0.16.0
