Use haskell-make-package-set.flakeModule for lts/ghc-9.6.x
Summary
Convert horizon-build-packages lts/ghc-9.6.x to use haskell-make-package-set.flakeModule for consistent package set building across all Horizon package sets.
Changes
Infrastructure
- Add haskell-make-package-set.flakeModule
- Add horizon-supported-systems for standardized system definitions
- Add gitlab-ci-omnix for CI integration
- Add treefmt-nix for code formatting
- Use import-tree for modular flake-parts configuration
Directory Structure
Created modular nix/ directory:
-
nix/systems.nix- horizon-supported-systems integration -
nix/ci.nix- gitlab-ci-omnix integration -
nix/haskell.nix- haskell-make-package-set configuration -
nix/treefmt.nix- code formatting (deadnix, statix, dhall, nixpkgs-fmt)
Cleanup
- Remove develop/ folder (use remote tools instead)
Input Updates
- Update gitlab-ci-omnix: 0.4.0 → 0.5.0
- Update flake-parts, treefmt-nix to latest
- Alphabetize inputs
Package Set
The package set remains minimal (3 packages: cabal-doctest, hscolour, jailbreak-cabal) and serves its bootstrapping purpose unchanged.
Testing
-
✅ nix flake checkpasses -
✅ All packages build successfully -
✅ Treefmt formatting works
Notes
- horizon-hoogle is intentionally NOT included because this minimal bootstrap set doesn't contain the hoogle package itself
- Treefmt configuration matches horizon-ghc pattern for consistency