Define requiredPackages for all lts/ branches
Problem
The new horizon.packageSet module (from horizon-flake-parts 0.19.1) includes a requiredPackages option, but none of the lts/ branches currently set it. This means CI builds everything via omnix, making pipelines fragile — any single package failure breaks the whole build.
Without well-defined requiredPackages, there is no clear contract for what each package set actually guarantees to downstream consumers.
Current build status
| Branch | CI Status |
|---|---|
lts/ghc-9.6.x |
Passing |
lts/ghc-9.8.x |
Passing |
lts/ghc-9.4.x |
Failing (flake-show validation) |
lts/ghc-9.10.x |
Failing (build:omnix) |
lts/ghc-9.12.x |
Failing (build:omnix) |
What needs to happen
- Extract the required packages lists from the existing READMEs (as noted in nix/horizon-flake-parts#13)
- Populate
horizon.packageSet.requiredPackagesinnix/default.nixfor each lts/ branch - Fix the build failures on 9.4.x, 9.10.x, and 9.12.x — some may be resolved once we are building a curated set rather than everything
- Establish a policy for what it means for a package set to be "building" (cc @nastypants)
This is a key blocker for Horizon Haskell 1.0 — we cannot ship a handbook-by-construction if the package sets do not have well-defined build contracts.