Vendor-neutral implementation of RFC-0125's datatype and synthesis tooling.
Find a file
github-actions[bot] 77d90c5bb2
flake.lock: Update (#175)
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/2631b0b7abcea6e640ce31cd78ea58910d31e650?narHash=sha256-LWqduOgLHCFxiTNYi3Uj5Lgz0SR%2BXhw3kr/3Xd0GPTM%3D' (2025-04-12)
  → 'github:nixos/nixpkgs/b024ced1aac25639f8ca8fdfc2f8c4fbd66c48ef?narHash=sha256-fusHbZCyv126cyArUwwKrLdCkgVAIaa/fQJYFlCEqiU%3D' (2025-04-17)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-04-24 11:40:26 -04:00
.github Fixes for JSON Schema (#178) 2025-04-24 11:36:21 -04:00
bootspec build(deps): bump tempfile from 3.8.1 to 3.19.1 (#165) 2025-03-20 09:38:30 -04:00
synthesize build(deps): bump clap from 4.5.36 to 4.5.37 (#174) 2025-04-18 19:58:50 -04:00
validate bootspec: use our own error type 2023-05-04 15:13:21 -07:00
.editorconfig Add JSON Schema for bootspec (#176) 2025-04-22 17:03:57 -04:00
.envrc Add JSON Schema for bootspec (#176) 2025-04-22 17:03:57 -04:00
.gitignore Add JSON Schema for bootspec (#176) 2025-04-22 17:03:57 -04:00
Cargo.lock build(deps): bump clap from 4.5.36 to 4.5.37 (#174) 2025-04-18 19:58:50 -04:00
Cargo.toml Cargo.lock: update dependencies 2023-12-18 15:21:16 -08:00
default.nix Initial import 2022-05-10 12:23:21 -04:00
flake.lock flake.lock: Update (#175) 2025-04-24 11:40:26 -04:00
flake.nix Add JSON Schema for bootspec (#176) 2025-04-22 17:03:57 -04:00
LICENSE Initial import 2022-05-10 12:23:21 -04:00
README.md Remove the idea that the synthesis tool writes out a dir 2022-05-18 16:16:49 -04:00
rustfmt.toml Initial import 2022-05-10 12:23:21 -04:00
schema.json Fixes for JSON Schema (#178) 2025-04-24 11:36:21 -04:00
shell.nix Initial import 2022-05-10 12:23:21 -04:00

bootspec

This repository implements datatypes for NixOS RFC-0125 "bootspec" and a synthesis tool to generate bootspec documents for generations which don't have one.

Crates

bootspec

The bootspec crate provides various structures and constants useful for interacting with the NixOS boot specification.

synthesize

The synthesize crate provides a CLI that, when provided a path to a NixOS generation and an output file, will synthesize a boot specification document from the available information.

Verify changes to the synthesis tool with cargo test and also by running ./synthesize/integration-test-cases/verify.sh to ensure it generates the same results as before.

License

MIT