Dependency management policy¶
This policy applies to the reusable Nix modules, deployed examples, nested flakes, GitHub Actions, and documentation tooling in nix-conf. Dependency changes are reviewed as changes to the code and configuration trust boundary.
Inventory and provenance¶
The authoritative dependency records are flake.lock, nested lockfiles under
flake/, templates/, and packages/, package source hashes, and immutable
action references in .github/workflows/. Each update identifies the source,
new revision, and material transitive or generated changes. Consumers are
expected to use the committed lockfiles when reproducing the examples.
Dependabot and the repository's lock-health checks keep supported inputs visible. Dependency-review and CodeQL run in CI where GitHub supports the repository's manifests and languages. The flake checks and repository hooks cover the Nix-specific dependency surface and generated documentation.
Selection and review¶
Maintainers review upstream provenance, maintenance status, security advisories, licensing, platform compatibility, and configuration behavior. Lockfiles and source hashes are updated together with their declarations. Action updates use immutable commit SHAs. A change that alters a module interface or deployed default includes a migration note and an affected example or test.
Release gate and exceptions¶
Before a future release, applicable dependency-review, CodeQL, lock-health,
flake, hook, and test checks must pass. A high- or critical-severity finding,
an unreviewed license problem, or a failed provenance check blocks release.
The only exception is a reviewed, time-bounded pull-request record that names
the component, explains why it is not exploitable here, assigns an owner, and
sets a remediation date. security/vex.json records reviewed
non-affectability statements in OpenVEX form; it does not waive an affectable
finding.
Update and rollback¶
Updates are evaluated on the supported systems and representative examples. A regression is rolled back by reverting the lockfile and declaration change, then tracked with a follow-up issue. Emergency security updates use the smallest safe change and receive normal review retrospectively if immediate action is required.