nova-cache 0.3.0.0 → 0.3.1.0
raw patch · 3 files changed
+20/−11 lines, 3 filesdep +ramdep −memorydep ~crypton
Dependencies added: ram
Dependencies removed: memory
Dependency ranges changed: crypton
Files
- CHANGELOG.md +8/−0
- README.md +4/−4
- nova-cache.cabal +8/−7
CHANGELOG.md view
@@ -1,5 +1,13 @@ # Changelog +## 0.3.1.0 — 2026-03-07++### Drop `memory` dependency, use `ram`++- **`memory` → `ram`** — Replaced `memory` package with `ram` (modern, minimal replacement). Same `Data.ByteArray` API, drops the heavy `basement` transitive dependency. Fixes build failure with `crypton >= 1.1` which switched from `memory` to `ram` internally — `Data.ByteArray.ByteArrayAccess` instances were no longer compatible across packages.+- **`crypton >= 1.1` required** — Lower bound bumped from `1.0` to `1.1` so that `crypton` and `nova-cache` both link against `ram` for `ByteArrayAccess` instances. Older `crypton` versions used `memory`, causing instance mismatches at link time.+- All imports remain `Data.ByteArray` — no source-level changes needed for downstream consumers.+ ## 0.3.0.0 — 2026-02-28 ### Breaking changes
README.md view
@@ -7,7 +7,7 @@ [](https://github.com/Novavero-AI/nova-cache/actions/workflows/ci.yml) [](https://hackage.haskell.org/package/nova-cache)-+  </p>@@ -294,8 +294,8 @@ └──────────────────────────────────────────────────────┘ ``` -- **9 modules**, 7 pure + 2 at the IO boundary (Compression optional via flag)-- **58 core tests + 4 compression tests**, hand-rolled harness, no framework dependencies+- **10 modules**, 8 pure + 2 at the IO boundary (Compression optional via flag)+- **74 core tests + 4 compression tests**, hand-rolled harness, no framework dependencies - **Zero partial functions** — total by construction - **Strict by default** — bang patterns on all data fields @@ -405,7 +405,7 @@ | `paths` | no | Explicit store paths (space-separated). Defaults to all paths from `shell.nix` / `default.nix` | | `parallel` | no | Max concurrent uploads (default: 32) | -The action resolves Nix store path closures, exports them to a local binary cache, and uploads all narinfo + NAR files to the server. Works with any CI that has Nix installed.+The action fetches `GET /narinfo-hashes` to determine which paths are already cached, exports only the missing paths, and uploads narinfo + NAR files in parallel. Falls back to uploading everything if the endpoint is unavailable (servers < 0.3.0.0). Works with any CI that has Nix installed. ---
nova-cache.cabal view
@@ -1,6 +1,6 @@ cabal-version: 3.0 name: nova-cache-version: 0.3.0.0+version: 0.3.1.0 synopsis: Pure Nix binary cache protocol library description: A focused, minimal, pure-first library implementing the full Nix binary@@ -17,7 +17,7 @@ category: Nix, Distribution stability: experimental build-type: Simple-tested-with: GHC == 9.6.7+tested-with: GHC == 9.8.4 extra-doc-files: CHANGELOG.md README.md@@ -53,10 +53,10 @@ , base64-bytestring >= 1.2 && < 1.3 , bytestring >= 0.11 && < 0.13 , containers >= 0.6 && < 0.8- , crypton >= 1.0 && < 2+ , crypton >= 1.1 && < 2 , directory >= 1.3 && < 1.4 , filepath >= 1.4 && < 1.6- , memory >= 0.18 && < 1+ , ram >= 0.20 && < 1 , text >= 2.0 && < 2.2 , vector >= 0.12 && < 0.14 @@ -86,8 +86,9 @@ build-depends: base >= 4.16 && < 5 , bytestring >= 0.11 && < 0.13- , memory >= 0.18 && < 1+ , crypton >= 1.1 && < 2 , nova-cache+ , ram >= 0.20 && < 1 , http-types >= 0.12 && < 0.13 , text >= 2.0 && < 2.2 , wai >= 3.2 && < 3.3@@ -106,10 +107,10 @@ base >= 4.16 && < 5 , base64-bytestring >= 1.2 && < 1.3 , bytestring >= 0.11 && < 0.13- , crypton >= 1.0 && < 2+ , crypton >= 1.1 && < 2 , directory >= 1.3 && < 1.4 , nova-cache- , memory >= 0.18 && < 1+ , ram >= 0.20 && < 1 , text >= 2.0 && < 2.2 test-suite nova-cache-compression-test