Thank you to everyone who used this fork, reported issues, or contributed. Snowfall Lib served me well for a long time, and I kept this fork going when upstream updates slowed.
I have since moved to Clan in my current configuration, which better fits my needs. This fork is now archived and will receive no further updates or support.
The code remains available for reference and forking. If you want to help maintain upstream Snowfall Lib, see the call for maintainers.
Unified configuration for systems, packages, modules, shells, templates, and more with Nix Flakes.
Snowfall Lib is built on top of flake-utils-plus.
See the Snowfall Lib Quickstart guide to start using Snowfall Lib.
Looking for Snowfall Lib documentation? See the Snowfall Lib Reference.
./scripts/ci/check-flake.sh runs the same formatting and flake checks locally and in GitHub Actions.
Pull requests, pushes to main, and merge-queue candidates are checked on Linux and macOS.
The weekly lock updater first validates an atomic update of every root input. If that fails, it uses a bounded divide-and-conquer search to retain compatible inputs without exponential subset enumeration. Run it manually with Integrate disabled to validate and retain the candidate artifact without publishing it.
On an unprotected branch, a validated candidate is integrated with an atomic fast-forward. On a protected
branch, the workflow leaves the pull request to the configured auto-merge or merge-queue policy. Set the
optional SNOWFALL_AUTOMATION_TOKEN secret to a fine-grained PAT when automated pull
requests must trigger CI without manual workflow approval.