I’m definitely not the first person to think of this, but I can’t find any discussion of this in ghc-proposals, tech-proposals, or this Discourse board, so I’ll just put it out here.
Why don’t we set up GHC to release untested nightly builds? This solves a similar problem to the GHC.X.hackage proposal, but in a slightly different way. I personally don’t mind the percolation of adoption through package dependencies; the only problem is that it takes time, and that time (for everyone) starts when a version is released. But if we had nightly GHC releases, package maintainers who cared could set up CI to run tests against the nightly version of GHC and fix issues that come up, so that when the stable version of GHC is released, packages are either already working or are nearly close to working with it.
What I’d imagine this would involve:
- GHC adds a nightly pipeline (or co-opts an existing pipeline) that builds the binaries for all OSes + uploads to
https://downloads.haskell.org/~ghc/nightly/YYYY-MM-DD/ghc-YYYY.MM.DD-...
- Also symlinks
https://downloads.haskell.org/~ghc/nightly/latest/
to the latestYYYY-MM-DD/
directory - Update GHCup + Stack (+ HLS?) to allow specifying nightly GHC versions (I believe right now it’s a static list that gets updated with each release? This would perhaps involve allowing for GHC versions not on the list)
I’m not trying to say this would be a quick + easy change, but I think this is a conceptually simpler change to the ecosystem than GHC.X.hackage (while not precluding that change either).