Update to horizon-flake-parts 0.10.0
Summary
Modernizes the flake configuration to use horizon-flake-parts 0.10.0, which provides reusable modules for CI, systems, and formatting. This replaces the old flake-to-gitlab-ci pattern with the new modular approach while preserving all existing functionality.
Changes
-
Add horizon-flake-parts 0.10.0: Provides integrated CI, systems, and formatting modules
-
Modular configuration structure:
- Switch to import-tree pattern for nix/ directory
- Create
nix/configuration.nixwith horizon module configuration - Move perSystem configuration to
nix/horizon-gen-nix.nix - Remove
nix/default.nix(replaced by modular structure)
-
GitLab CI modernization:
- Update
.gitlab-ci.ymlto use new gitlab-ci 0.9.0 remote include - Remove old flake-to-gitlab-ci 0.3.0.0 pattern
- Preserve impure-tests and cachix jobs
- Update
-
Systems configuration:
- Replace hardcoded systems list with
horizon.systems.supported.enable - Automatic system detection for all supported platforms
- Replace hardcoded systems list with
-
Formatting checks:
- Add
horizon.formatting.enablefor treefmt-based formatting - Preserve existing lint-utils checks (cabal-fmt, dhall-format, hlint, nixpkgs-fmt, stylish-haskell, werror)
- Add
-
Updated flake.lock with new dependency tree