Commit graph

25 commits

Author SHA1 Message Date
Robert Hensing
fbf5fab083 feat(nix-bindings-expr): add RecoverableError for non-memoized primop errors
Nix 2.34 memoizes primop errors by default. RecoverableError uses
NIX_ERR_RECOVERABLE so transient errors allow the thunk to be retried.
2026-03-02 23:53:53 +01:00
Robert Hensing
ee43f37870 Add documentation links and deployment effect
- Add API documentation links to all Cargo.toml files
- Add API documentation links to all crate READMEs
- Add API Reference link to main README
- Add Hercules CI effect to push docs to gh-pages on main branch
2026-02-10 09:57:10 +01:00
Tristan Ross
4551c2b378
Replace lazy_static with LazyLock 2026-01-27 12:18:41 -08:00
Robert Hensing
c43a67478d doc: Shared Value state 2026-01-15 18:52:58 +01:00
Robert Hensing
9f2c7a2013 Bump version to 0.2.1 for development 2026-01-13 18:50:29 +01:00
Robert Hensing
0b0bd7013e nix-bindings-expr: Add version to build-dep for crates.io
cargo publish requires all dependencies to have version requirements.
The build-dependency on nix-bindings-util was missing one.
2026-01-13 16:53:56 +01:00
Robert Hensing
0266e22379 Add CHANGELOG and crate READMEs
- Add CHANGELOG.md documenting 0.1.0 and 0.2.0 releases with contributor
  credits and PR links
- Add README.md to each crate linking to the changelog
- Link READMEs in Cargo.toml files
- Add repository field to -sys crates that were missing it
- Update top-level README to reference changelog and reflect -sys crate split
- Document changelog update step in release process
2026-01-13 16:49:52 +01:00
Robert Hensing
95a8d49693
Merge pull request #27 from nixops4/split-raw
Split monolithic raw crates into sys crates
2026-01-13 15:46:37 +01:00
Robert Hensing
a669289887
Merge pull request #36 from nixops4/aanderse/main
Fix path coercion by calling eval_state_builder_load()
2026-01-13 02:03:57 +01:00
Robert Hensing
f1d15ff416 EvalStateBuilder: Allow opting out of ambient settings
The C API provides nix_eval_state_builder_load as a separate function
to allow controlling whether settings are loaded from the environment.
Add load_ambient_settings() method to expose this control, with the
default being to load them (needed in some situations to allow path
coercion to work).
2026-01-13 01:58:11 +01:00
Robert Hensing
eff76e9907 Test eval_state_builder_load() to prevent regression 2026-01-13 01:58:10 +01:00
Robert Hensing
22480afeb5 EvalStateBuilder: Specify Nix version constraint 2026-01-13 01:58:08 +01:00
Robert Hensing
7eb94b72f9 Merge remote-tracking branch 'upstream/main' into aanderse/main 2026-01-13 01:57:24 +01:00
John Ericson
dbb00333b1 Split monolithic raw crates into sys crates
Creating a crate for bwd-gc highlights the fact that it would be nice to
fix 2!

The file blocklist is a lost less unmaintainable then the more
fine-grained one we had before.

Fix #9
2026-01-12 19:48:45 -05:00
Robert Hensing
2b3ce74ef3 Bump version to 0.1.1 2026-01-13 01:25:43 +01:00
Robert Hensing
862dcd9eeb Add description and repository metadata to all crates 2026-01-12 20:45:44 +01:00
Robert Hensing
1caf7b85dd Add version requirements to workspace dependencies
cargo publish requires all dependencies to have version specifications.
2026-01-12 20:44:01 +01:00
Robert Hensing
6d941407fe Fix broken rustdoc links 2026-01-12 20:17:40 +01:00
Robert Hensing
e6148b587f Rename nix-bindings-bindgen-raw to nix-bindings-util-sys
Adopt idiomatic Rust `-sys` crate naming convention, aligning with
the direction in PR #37 without adopting the full crate splitting.
2026-01-12 19:56:04 +01:00
Aaron Andersen
8f6ec2ec5c Fix path coercion by calling eval_state_builder_load()
Without this call, settings from the global Nix configuration are never
loaded, leaving readOnlyMode = true (the default). This prevents Nix
from adding paths to the store during evaluation, causing errors like:

  error: path '/some/local/path' does not exist

This fix loads global settings before creating the EvalState, enabling
path coercion for local file references.
2026-01-05 20:59:44 -05:00
Robert Hensing
b78dd97051 Dereference workspace lints for nix-cargo-integration compatibility
Replace `[lints] workspace = true` with explicit lint configuration in
each crate's Cargo.toml. This allows nix-cargo-integration to build
individual crates in isolation, as it cannot resolve workspace-level
lint configuration when building crates independently.
2025-12-16 03:06:58 +01:00
Robert Hensing
278a1379e2 Document safety requirements for __private functions
The previous "See underlying function" text didn't provide a way to
find the underlying function, forcing users to search the codebase.
Stating the safety contracts explicitly makes the API usable.
2025-12-16 02:05:44 +01:00
John Ericson
351a206776 Fix clippy and track in CI
`flake check` will run clippy.
2025-12-15 19:48:45 -05:00
John Ericson
cfda626614 Format, and keep formatted 2025-12-05 16:55:09 -05:00
Robert Hensing
55eacf43c3 maint: Move to /rust/* to /
This makes it easier for tooling to find the Rust stuff.
Rust/non-rust is not a useful distinction in this repo anymore anyway.
2025-10-26 23:29:13 +01:00