Nix 2.34 memoizes primop errors by default. RecoverableError uses NIX_ERR_RECOVERABLE so transient errors allow the thunk to be retried.
3.6 KiB
3.6 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
Added
primop::RecoverableErrorfor primop errors that should not be memoized in the thunk, allowing retry on next force. Required by Nix >= 2.34 (release note) for recoverable errors to remain recoverable, as Nix 2.34 memoizes errors by default.
0.2.0 - 2026-01-13
Added
- Workaround for automatic C library input propagation in downstream Nix builds. (#27 by @roberth)
EvalStateBuilder::load_ambient_settings()to control whether global Nix settings are loaded. (#36 by @roberth)
Fixed
- Path coercion failing with "path does not exist" errors due to missing
eval_state_builder_load()call. (#36 by @aanderse)
Changed
- Split
nix-bindings-util-sys(which contained all low-level FFI bindings) into separate per-library*-syscrates. (#27 by @Ericson2314) This allows downstream crates to depend on just the low-level bindings they need without pulling in higher-level crates.
0.1.0 - 2026-01-12
Initial release, extracted from the nixops4 repository.
Added
nix-bindings-store: Rust bindings for Nix store operations- Store opening (auto, from URI, from environment)
- Store path parsing and manipulation
Store::get_fs_closure(#12 by @RossComputerGuy, @roberth)CloneforDerivation(#25 by @Ericson2314)- Store deduplication workaround for nix#11979
- aarch64 ABI support (#26 by @RossComputerGuy)
nix-bindings-expr: Rust bindings for Nix expression evaluationEvalStatefor evaluating Nix expressions- Value creation (int, string, attrs, thunks, primops, etc.)
- Value inspection/extraction (
require_*functions) - Attribute selection and manipulation
- Thread registration for GC safety
nix-bindings-fetchers: Rust bindings for Nix fetchersnix-bindings-flake: Rust bindings for Nix flake operations- Flake locking
- Flake overriding
nix-bindings-util: Shared utilities- Context management for Nix C API error handling
- Settings access
nix-bindings-util-sys: Low-level FFI bindings for all Nix C libraries
Contributors
Thanks to everyone who contributed to the initial development, some of whom may not be listed with individual changes above: