0471ccf394723dec877ae6f6edc35f817a0faf53
Related: * https://github.com/haskell/ghcup-hs/issues/966 We bump this, although 'cabal run' is known to be broken on windows: https://github.com/haskell/cabal/issues/9334 However, backporting more patches to 3.6 is not sustainable. Initially, I tried to backport https://github.com/haskell/cabal/pull/8071, but it's not clear whether that is the only thing that causes compatibility issues with GHC 9.4 and might drive us into an awkward situation as well.
GHCup metadata
For end users
Metadata variants (distribution channels)
ghcup-A.B.C.yaml: this is the main metadata and what ghcup uses by defaultghcup-vanilla-A.B.C.yaml: this is similar toghcup-A.B.C.yaml, but only uses upstream bindists (no patches/fixes are applied, no missing platforms added)ghcup-prereleases-A.B.C.yaml: this contains pre-releases of all toolsghcup-cross-A.B.C.yaml: this contains experimental cross compilers. See https://www.haskell.org/ghcup/guide/#cross-support for details.
Using the metadata
If you want access to both pre-releases and cross compilers, run:
ghcup config add-release-channel https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-prereleases-0.0.7.yaml
ghcup config add-release-channel https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-cross-0.0.8.yaml
If you want only vanilla upstream bindists and opt out of all unofficial stuff, you'd run:
ghcup config set url-source https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-vanilla-0.0.8.yaml
Also check the config.yaml documentation.
For contributors
Adding a new GHC version
- open the latest
ghcup-<yaml-ver>.yaml - find the latest ghc version (in yaml tree e.g.
ghcupDownloads -> GHC -> 8.10.7) - copy-paste it
- adjust the version, tags, changelog, source url
- adjust the various bindist urls (make sure to also change the yaml anchors)
- run
cabal run ghcup-gen -- check -f ghcup-<yaml-ver>.yaml - run
cabal run ghcup-gen -- check-tarballs -f ghcup-<yaml-ver>.yaml -u 'ghc-8\.10\.8' - run
cabal run ghcup-gen -- generate-hls-ghcs -f ghcup-<yaml-ver>.yaml --format json -o hls-metadata-0.0.1.json - run
cabal run ghcup-gen -- generate-table -f ghcup-<yaml-ver>.yaml --stdoutand adjust docs/install tables
During a pull request
- make sure to always add new versions to both
ghcup-A.B.C.yamlandghcup-vanilla-A.B.C.yaml - make sure to run the bindist action to check tool installation on all platforms: https://github.com/haskell/ghcup-metadata/actions/workflows/bindists.yaml
- this is a manual pipeline
- set the appropriate parameters
- make sure to sign the yaml files you edited, e.g.:
gpg --detach-sign -u <your-email> ghcup-0.0.7.yamlor ask a GHCup developer to sign- PGP pubkeys need to be cross-signed by the GHCup team
- they need to be added to the CI: https://github.com/haskell/ghcup-metadata/blob/develop/.github/workflows/sigs
- and need to be documented on the homepage
Understanding tags
Tags are documented here. Search for data Tag.
Some tags are unique. Uniqueness is checked by cabal run ghcup-gen -- check -f ghcup-<yaml-ver>.yaml.
If you want to check prereleases, do: cabal run ghcup-gen -- check -f ghcup-prereleases-<yaml-ver>.yaml --channel=prerelease
Description
Languages
Haskell
74.1%
Standard ML
25.9%