There aren’t really strict criteria at the moment, which is something that I think the README
should clarify.
One informal criterion that has developed over time is “don’t submit a patch unless it’s needed”. For example, if a package foo-0.1
fails to build with GHC HEAD, but foo-0.2
does, then it’s usually not worth submitting a head.hackage
patch for foo-0.1
, given that you can just build foo-0.2
. This isn’t a hard-and-fast rule, however—it can sometimes be worthwhile to have head.hackage
patches for old versions of a library (e.g., if it takes the Haskell ecosystem a long time to upgrade to foo-0.2
).
The main head.hackage
use case is making it easier to build Hackage libraries with pre-release or HEAD versions of GHC. Some secondary use cases are:
- Acting as an “extended GHC test suite” by making it easier to run the test suites for packages like
bytestring
, which are difficult to run in the standard GHC test suite as-is - Making it easier to test in-flight GHC changes against a subset of Hackage libraries to find possible regressions
It occurs to me that this discussion, while useful, sidetracks a bit from the original discussion in this thread. I’d be happy to continue this discussion elsewhere if it’s deemed too off-topic.