Skip to content

Shall we use head.hackage in CI for the newest GHC (or all GHCs?) #9808

Open
@Mikolaj

Description

@Mikolaj

We discussed

#9610 (comment)

on a cabal fortnightly chat and during the discussion @ulysses4ever proposed a somehow related idea to move our CI (at least for the newest GHC) to https://ghc.gitlab.haskell.org/head.hackage/. I think this should have a higher priority than the original proposal to fix --index-state in our github CI. Let's discuss (and volunteer for subtasks). E.g.,

  1. Whether to fix the index state of head.hackage or just follow the HEAD of head.hackage, which is quite a bit curated and fixed often.
  2. Whether to use head.hackage for other GHCs and, if so, exclusively or in addition to newest Hackage and/or fixed index state.
  3. Maybe add to the mixture --dry-run or some other policy, e.g., to run short tests in many configurations and long ones only in one (but we don't only worry about CI time, but also information overload, especially for new contributors that have to read CI results).
  4. The same on our release CI that is located on Haskell gitlab instance.

In addition, let's discuss the original proposal, which included the --index-state proposal for the whole github CI and more. Here's are some remarks about the proposal from the cabal fortnightly chat:

Agree with Bryan's points from the discussion that fixing the index state is useful for a more robust CI.

There is no argument against it, but it is not high priority. Accomodating head.hackage would be a higher priority. Fixing the index state wouldn't save you from dealing with failures due to Hackage updates, it just puts you on a more predictable schedule of when you deal with those failures (points where you update the state).

Unless the failures are already fixed by the point we update our fixed index. But by then we may be inundated by user reports that we can't reproduce in our CI, which is yet another way in which we can't escape the failures some of the time, but they don't disrupt our regular PR merging process at least. There is also the related issue of isolating ourselves from GHA (via containers or custom ghcup invocations). Similar considerations apply. I estimate each has bitten us ~5 times in the last couple of years. That's not many times, but that kind of firefighting tends to burn out maintainers (however, nothing fully isolates us from this, because stack and cabal are the go-to bug trackers for affected users).

CC: @chreekat @philderbeast

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions