Add horizon.formatting module and reorganize structure
Summary
Reorganizes horizon-flake-parts structure and adds formatting module:
- Consolidates ci.nix, formatting.nix, and systems.nix into nix/configuration.nix
- Moves all flake modules to nix/modules/ directory
- Adds horizon.formatting module with support for:
- deadnix (enabled by default)
- dhall (enabled by default)
- nixpkgs-fmt (enabled by default)
- statix (enabled by default)
- Exports treefmt-nix.flakeModule for consumers
Changes
- nix/configuration.nix: New consolidated configuration for the repository itself
-
nix/modules/: All flake modules now organized here
- horizon-ci.nix
- horizon-flake-parts.nix
- horizon-formatting.nix
- flake.nix: Added treefmt-nix input
- test/flake.nix: Added treefmt-nix follows
-
test/modules/: Added deduplication tests
- ci.nix: Tests horizon-ci module deduplication
- formatting.nix: Tests horizon-formatting module deduplication
- systems.nix: Tests horizon-supported-systems module deduplication
Module Deduplication
All exported modules (horizon-ci, horizon-formatting, horizon-supported-systems) have been tested to ensure they can be imported both through horizon-flake-parts.flakeModule and directly without causing duplicate option declarations.