- Shell 84.8%
- Nix 15.2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
All checks were successful
Check / validate (push) Successful in 4s
Reviewed-on: #2 |
||
| .forgejo/workflows | ||
| modules | ||
| packages/nixos-auto-update | ||
| schema | ||
| src | ||
| tests | ||
| flake.lock | ||
| flake.nix | ||
| LICENSE | ||
| README.md | ||
nixos-auto-update
Standalone NixOS flake update, validation, and deployment automation.
Licensed under the EUPL-1.2-or-later. This licence applies to this project's own source, schema, tests, and documentation. Dependencies, including Nixpkgs and the programs packaged into the runtime, remain under their own licences.
This flake exports:
packages.x86_64-linux.nixos-auto-update— thenixos-auto-updateandnixos-auto-update-controlcommands.nixosModules.default— the NixOS systemd module.checks.x86_64-linux.auto-update-state-machine— hermetic VM coverage for detached activation, holds, failure state, and convergence.share/nixos-auto-update/nixos-update-incident-bundle.sh— the generic, sourceable schema-v1 rejected-update incident emitter and fingerprint API.share/nixos-auto-update/rejected-update-incident-v1.schema.json— the machine-readable incident bundle contract.bin/nixos-update-incident-verify INCIDENT_JSON— validates the canonical incident fingerprint and bundle-directory identity, then prints the fingerprint.
The module deliberately consumes host policy and secret paths from its caller; it does not own a SOPS layout or any particular NixOS configuration repository. Callers retain ownership of the incident directory, publication workflow, remediation policy, and any issue or pull-request integration.
Producers should request --show-trace for Nix evaluation failures. Diagnostic
excerpts reserve one third of the line budget for the last source locations and
the rest for the last errors and named attribute/derivation/option contexts.
Locations precede diagnostics; selected lines are not necessarily adjacent in
the original trace. Generic builtin frames cannot displace all named context.
Shared redaction, per-line limits, and the total byte limit still apply, with
the final diagnostic retained when the byte limit truncates the excerpt.
Failing derivations come only from explicit Nix builder-failure diagnostics
(legacy one-line errors, modern Cannot build / Reason: builder failed
blocks, and fixed-output hash mismatches). Build plans, output paths and
dependent-failure summaries are excluded. Multiple distinct failed builders
remain distinct; unknown diagnostics provide no inferred culprit.