Compare commits
19 Commits
bryans-pgp
...
issue-99
| Author | SHA1 | Date | |
|---|---|---|---|
| 493c2c81f4 | |||
| 041f8b1421 | |||
| b62f7ffa3b | |||
| 6ee7342fe3 | |||
| 1d43217082 | |||
| 4ffadfdda4 | |||
| 3e2ab12988 | |||
| 68731892cc | |||
| b2843da016 | |||
| 53ef921fe1 | |||
| 20916def87 | |||
| 335bc378aa | |||
|
|
1d366edea6 | ||
|
|
971e013861 | ||
|
|
397fd411af | ||
|
|
124f62c0a2 | ||
|
|
e93e21835e | ||
| 2d5701d480 | |||
|
|
cca4a2386d |
63
.github/workflows/bindists.yaml
vendored
63
.github/workflows/bindists.yaml
vendored
@@ -18,6 +18,11 @@ on:
|
||||
required: true
|
||||
default: ghcup-0.0.7.yaml
|
||||
type: string
|
||||
channel:
|
||||
description: Distribution channel (main|prerelease|nightly)
|
||||
required: true
|
||||
default: Main
|
||||
type: string
|
||||
env:
|
||||
BOOTSTRAP_HASKELL_NONINTERACTIVE: 1
|
||||
BOOTSTRAP_HASKELL_MINIMAL: 1
|
||||
@@ -25,6 +30,7 @@ env:
|
||||
TOOL: ${{ github.event.inputs.tool }}
|
||||
VERSION: ${{ github.event.inputs.version }}
|
||||
METADATA_FILE: ${{ github.event.inputs.metadataFile }}
|
||||
CHANNEL: ${{ github.event.inputs.channel }}
|
||||
jobs:
|
||||
bindist-install:
|
||||
name: linux-${{ matrix.image }}
|
||||
@@ -143,6 +149,63 @@ jobs:
|
||||
with:
|
||||
args: sh -c '.github/workflows/install-bindist.sh'
|
||||
|
||||
validate:
|
||||
name: ghcup-gen check
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
GHC: 9.2.8
|
||||
CABAL: 3.10.1.0
|
||||
steps:
|
||||
- name: create ~/.local/bin
|
||||
run: mkdir -p "$HOME/.local/bin"
|
||||
shell: bash
|
||||
|
||||
- name: Add ~/.local/bin to PATH
|
||||
run: echo "$HOME/.local/bin" >> $GITHUB_PATH
|
||||
shell: bash
|
||||
|
||||
- name: install yamllint
|
||||
run: pip install yamllint
|
||||
|
||||
- name: Update cabal cache
|
||||
run: cabal update
|
||||
shell: bash
|
||||
|
||||
- name: Install requirements
|
||||
shell: sh
|
||||
run: |
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
export TZ=Asia/Singapore
|
||||
sudo apt-get update && sudo apt-get install -y curl bash git gnupg libarchive-dev
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Cache Cabal
|
||||
uses: actions/cache@v2
|
||||
env:
|
||||
cache-name: cache-cabal
|
||||
with:
|
||||
path: |
|
||||
~/.cabal/store
|
||||
~/.cabal/packages
|
||||
key: v2-${{ runner.os }}-${{ env.GHC }}-${{ env.CABAL }}-build-${{ hashFiles('cabal.project') }}
|
||||
restore-keys: |
|
||||
v2-${{ runner.os }}-${{ env.GHC }}-${{ env.CABAL }}-build-${{ hashFiles('cabal.project') }}
|
||||
v2-${{ runner.os }}-${{ env.GHC }}-${{ env.CABAL }}-build-
|
||||
v2-${{ runner.os }}-${{ env.GHC }}
|
||||
|
||||
- name: Install ghcup-gen
|
||||
run: |
|
||||
ghcup run --cabal 3.10.1.0 --ghc 9.2.8 --install -- cabal install --installdir="$HOME/.local/bin" --overwrite-policy=always --install-method=copy ghcup-gen
|
||||
shell: bash
|
||||
|
||||
- name: Check yaml
|
||||
run: |
|
||||
ghcup-gen -- check -f ${{ env.METADATA_FILE }} --channel ${{ env.CHANNEL }}
|
||||
yamllint ${{ env.METADATA_FILE }}
|
||||
python3 -c "import yaml ; stream = open('${{ env.METADATA_FILE }}', 'r') ; yaml.safe_load(stream)"
|
||||
shell: bash
|
||||
|
||||
signature-test:
|
||||
name: Test signatures
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
43
README.md
43
README.md
@@ -1,6 +1,26 @@
|
||||
# GHCup metadata
|
||||
|
||||
## Adding a new GHC version
|
||||
## For end users
|
||||
|
||||
### Metadata variants (distribution channels)
|
||||
|
||||
* `ghcup-A.B.C.yaml`: this is the main metadata and what ghcup uses by default
|
||||
* `ghcup-vanilla-A.B.C.yaml`: this is similar to `ghcup-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 tools
|
||||
* `ghcup-cross-A.B.C.yaml`: this contains (usually experimental) cross compilers
|
||||
|
||||
### 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
|
||||
```
|
||||
|
||||
## For contributors
|
||||
|
||||
### Adding a new GHC version
|
||||
|
||||
1. open the latest `ghcup-<yaml-ver>.yaml`
|
||||
2. find the latest ghc version (in yaml tree e.g. `ghcupDownloads -> GHC -> 8.10.7`)
|
||||
@@ -11,3 +31,24 @@
|
||||
7. run `cabal run ghcup-gen -- check-tarballs -f ghcup-<yaml-ver>.yaml -u 'ghc-8\.10\.8'`
|
||||
8. run `cabal run ghcup-gen -- generate-hls-ghcs -f ghcup-<yaml-ver>.yaml --format json -o hls-metadata-0.0.1.json`
|
||||
9. run `cabal run ghcup-gen -- generate-table -f ghcup-<yaml-ver>.yaml --stdout` and adjust [docs/install](https://gitlab.haskell.org/haskell/ghcup-hs/-/blob/master/docs/install.md) tables
|
||||
|
||||
### During a pull request
|
||||
|
||||
* make sure to always add new versions to both `ghcup-A.B.C.yaml` and `ghcup-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.yaml` or 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
|
||||
* https://github.com/haskell/ghcup-hs/blob/master/docs/guide.md#gpg-verification
|
||||
* https://github.com/haskell/ghcup-hs/blob/master/docs/install.md#unix
|
||||
|
||||
### Understanding tags
|
||||
|
||||
Tags are documented [here](https://github.com/haskell/ghcup-hs/blob/master/lib/GHCup/Types.hs). 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`
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ package ghcup
|
||||
source-repository-package
|
||||
type: git
|
||||
location: https://github.com/haskell/ghcup-hs.git
|
||||
tag: fd6ff9f8ece147bb4527843822462c72824e8ba7
|
||||
tag: e27fed09f3eb4b0b72ce7825c65f16a4202a2399
|
||||
|
||||
constraints: http-io-streams -brotli,
|
||||
any.aeson >= 2.0.1.0
|
||||
|
||||
@@ -2851,7 +2851,6 @@ ghcupDownloads:
|
||||
9.2.8:
|
||||
viTags:
|
||||
- base-4.16.4.0
|
||||
- Recommended
|
||||
viChangeLog: https://downloads.haskell.org/~ghc/9.2.8/docs/html/users_guide/index.html
|
||||
viSourceDL:
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.2.8/ghc-9.2.8-src.tar.xz
|
||||
@@ -3497,6 +3496,7 @@ ghcupDownloads:
|
||||
9.4.7:
|
||||
viTags:
|
||||
- base-4.17.2.0
|
||||
- Recommended
|
||||
viChangeLog: https://downloads.haskell.org/~ghc/9.4.7/docs/users_guide/9.4.7-notes.html
|
||||
viSourceDL:
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.4.7/ghc-9.4.7-src.tar.xz
|
||||
@@ -5707,8 +5707,7 @@ ghcupDownloads:
|
||||
dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/stack/2.9.1/stack-2.9.1-linux-armv7.tar.gz
|
||||
dlHash: fa53c58d8d00a6d49ec26624aa7f817f5ece3c4df339fa6e4fccf1038b7f1fa5
|
||||
2.9.3:
|
||||
viTags:
|
||||
- Recommended
|
||||
viTags: []
|
||||
viChangeLog: https://github.com/commercialhaskell/stack/blob/master/ChangeLog.md#v293
|
||||
viPostInstall: *stack-post
|
||||
viArch:
|
||||
@@ -5757,7 +5756,7 @@ ghcupDownloads:
|
||||
dlHash: a56d2cd37611eccf00ab8df38c3718923cf5677f3aeacd250394e79b676dcb98
|
||||
2.11.1:
|
||||
viTags:
|
||||
- Latest
|
||||
- Recommended
|
||||
viChangeLog: https://github.com/commercialhaskell/stack/blob/master/ChangeLog.md#v2111---2023-05-18
|
||||
viPostInstall: *stack-post
|
||||
viArch:
|
||||
@@ -5799,3 +5798,47 @@ ghcupDownloads:
|
||||
dlHash: 3ea56c5885c9c6d7e2dce927e44f48f6024a4a5a039f7acad79b19654a6f95b5
|
||||
dlSubdir:
|
||||
RegexDir: "stack-.*"
|
||||
2.13.1:
|
||||
viTags:
|
||||
- Latest
|
||||
viChangeLog: https://github.com/commercialhaskell/stack/blob/master/ChangeLog.md#v2131---2023-09-29
|
||||
viPostInstall: *stack-post
|
||||
viArch:
|
||||
A_64:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning: &stack-2131-64
|
||||
dlUri: https://github.com/commercialhaskell/stack/releases/download/v2.13.1/stack-2.13.1-linux-x86_64.tar.gz
|
||||
dlHash: 45281bb2385e928916ec8bcbc7ab790ce8721bbf805f3d0752544ada22ad5ea3
|
||||
dlSubdir:
|
||||
RegexDir: "stack-.*"
|
||||
Darwin:
|
||||
unknown_versioning:
|
||||
dlUri: https://github.com/commercialhaskell/stack/releases/download/v2.13.1/stack-2.13.1-osx-x86_64.tar.gz
|
||||
dlHash: b7d46382edb17230d21943844550d3aaeacee8b6fb1fcc7980ca59bee500b2a5
|
||||
dlSubdir:
|
||||
RegexDir: "stack-.*"
|
||||
Windows:
|
||||
unknown_versioning:
|
||||
dlUri: https://github.com/commercialhaskell/stack/releases/download/v2.13.1/stack-2.13.1-windows-x86_64.tar.gz
|
||||
dlHash: 728be2371e257c6960341167192fa704ff1f92ab61657dd4781710a257fae7c1
|
||||
dlSubdir:
|
||||
RegexDir: "stack-.*"
|
||||
# FreeBSD:
|
||||
# unknown_versioning:
|
||||
# dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/stack/2.13.1/stack-2.13.1-freebsd-x86_64.tar.xz
|
||||
# dlHash: <replace_me>
|
||||
Linux_Alpine:
|
||||
unknown_versioning: *stack-2131-64
|
||||
A_ARM64:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning:
|
||||
dlUri: https://github.com/commercialhaskell/stack/releases/download/v2.13.1/stack-2.13.1-linux-aarch64.tar.gz
|
||||
dlHash: 37b1dbf39131eea629a6e3685fd1153fdfd2f0cd2179db92bb33784987b4ddb8
|
||||
dlSubdir:
|
||||
RegexDir: "stack-.*"
|
||||
Darwin:
|
||||
unknown_versioning:
|
||||
dlUri: https://github.com/commercialhaskell/stack/releases/download/v2.13.1/stack-2.13.1-osx-aarch64.tar.gz
|
||||
dlHash: 18ececd7112b1aad01ab0f88cb68ae63f2dc74aa9b8b5319828979f43cba9907
|
||||
dlSubdir:
|
||||
RegexDir: "stack-.*"
|
||||
|
||||
Binary file not shown.
@@ -105,11 +105,30 @@ inputP :: Parser Input
|
||||
inputP = fileInput <|> stdInput
|
||||
|
||||
data ValidateYAMLOpts = ValidateYAMLOpts
|
||||
{ vInput :: Maybe Input
|
||||
{ vChannel :: DistributionChannel
|
||||
, vInput :: Maybe Input
|
||||
}
|
||||
|
||||
validateYAMLOpts :: Parser ValidateYAMLOpts
|
||||
validateYAMLOpts = ValidateYAMLOpts <$> optional inputP
|
||||
validateYAMLOpts = ValidateYAMLOpts <$> channelParser <*> optional inputP
|
||||
|
||||
channelParser :: Parser DistributionChannel
|
||||
channelParser =
|
||||
option
|
||||
(eitherReader chanP)
|
||||
(long "channel" <> metavar "CHANNEL" <> help
|
||||
"Signal which distribution channel the YAML denotes: (main | prerelease | nightly). Main is defaul."
|
||||
<> value MainChan
|
||||
)
|
||||
where
|
||||
chanP :: String -> Either String DistributionChannel
|
||||
chanP s' | t == T.pack "main" = Right MainChan
|
||||
| t == T.pack "prerelease" = Right PrereleaseChan
|
||||
| t == T.pack "prereleases" = Right PrereleaseChan
|
||||
| t == T.pack "nightly" = Right NightlyChan
|
||||
| t == T.pack "nightlies" = Right NightlyChan
|
||||
| otherwise = Left ("Unknown channel value: " <> s')
|
||||
where t = T.toLower (T.pack s')
|
||||
|
||||
tarballFilterP :: Parser TarballFilter
|
||||
tarballFilterP = option readm $
|
||||
@@ -205,7 +224,7 @@ main = do
|
||||
|
||||
_ <- customExecParser (prefs showHelpOnError) (info (opts <**> helper) idm)
|
||||
>>= \Options {..} -> case optCommand of
|
||||
ValidateYAML vopts -> withValidateYamlOpts vopts validate
|
||||
ValidateYAML vopts@ValidateYAMLOpts{ .. } -> withValidateYamlOpts vopts (validate vChannel)
|
||||
ValidateTarballs vopts tarballFilter -> withValidateYamlOpts vopts (validateTarballs tarballFilter)
|
||||
GenerateHlsGhc vopts format output -> withValidateYamlOpts vopts (generateHLSGhc format output)
|
||||
GenerateToolTable vopts output -> withValidateYamlOpts vopts (generateTable output)
|
||||
|
||||
@@ -51,6 +51,11 @@ data ValidationError = InternalError String
|
||||
|
||||
instance Exception ValidationError
|
||||
|
||||
data DistributionChannel = MainChan
|
||||
| PrereleaseChan
|
||||
| NightlyChan
|
||||
deriving (Show, Eq)
|
||||
|
||||
|
||||
addError :: (MonadReader (IORef Int) m, MonadIO m, Monad m) => m ()
|
||||
addError = do
|
||||
@@ -66,8 +71,9 @@ validate :: ( Monad m
|
||||
, MonadUnliftIO m
|
||||
, HasGHCupInfo env
|
||||
)
|
||||
=> m ExitCode
|
||||
validate = do
|
||||
=> DistributionChannel
|
||||
-> m ExitCode
|
||||
validate distroChannel = do
|
||||
GHCupInfo { _ghcupDownloads = dls } <- getGHCupInfo
|
||||
|
||||
ref <- liftIO $ newIORef 0
|
||||
@@ -95,33 +101,36 @@ validate = do
|
||||
lift $ logInfo "All good"
|
||||
pure ExitSuccess
|
||||
where
|
||||
checkHasRequiredPlatforms t v tags arch pspecs = do
|
||||
let v' = prettyVer v
|
||||
arch' = prettyShow arch
|
||||
when (Linux UnknownLinux `notElem` pspecs) $ do
|
||||
lift $ logError $
|
||||
"Linux UnknownLinux missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch'
|
||||
addError
|
||||
when ((Darwin `notElem` pspecs) && arch == A_64) $ do
|
||||
lift $ logError $ "Darwin missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch'
|
||||
addError
|
||||
when ((FreeBSD `notElem` pspecs) && arch == A_64) $ lift $ logWarn $
|
||||
"FreeBSD missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch'
|
||||
when (Windows `notElem` pspecs && arch == A_64) $ do
|
||||
lift $ logError $ "Windows missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch'
|
||||
addError
|
||||
checkHasRequiredPlatforms t v tags arch pspecs
|
||||
-- relax requirements for prerelease and nightly channels
|
||||
| distroChannel `elem` [PrereleaseChan, NightlyChan] = pure ()
|
||||
| otherwise = do
|
||||
let v' = prettyVer v
|
||||
arch' = prettyShow arch
|
||||
when (Linux UnknownLinux `notElem` pspecs) $ do
|
||||
lift $ logError $
|
||||
"Linux UnknownLinux missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch'
|
||||
addError
|
||||
when ((Darwin `notElem` pspecs) && arch == A_64) $ do
|
||||
lift $ logError $ "Darwin missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch'
|
||||
addError
|
||||
when ((FreeBSD `notElem` pspecs) && arch == A_64) $ lift $ logWarn $
|
||||
"FreeBSD missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch'
|
||||
when (Windows `notElem` pspecs && arch == A_64) $ do
|
||||
lift $ logError $ "Windows missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch'
|
||||
addError
|
||||
|
||||
-- alpine needs to be set explicitly, because
|
||||
-- we cannot assume that "Linux UnknownLinux" runs on Alpine
|
||||
-- (although it could be static)
|
||||
when (Linux Alpine `notElem` pspecs) $
|
||||
case t of
|
||||
GHCup | arch `elem` [A_64, A_32] -> lift (logError $ "Linux Alpine missing for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack (prettyShow arch)) >> addError
|
||||
Cabal | v > [vver|2.4.1.0|]
|
||||
, arch `elem` [A_64, A_32] -> lift (logError $ "Linux Alpine missing for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack (prettyShow arch)) >> addError
|
||||
GHC | Latest `elem` tags || Recommended `elem` tags
|
||||
, arch `elem` [A_64, A_32] -> lift (logError $ "Linux Alpine missing for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack (prettyShow arch))
|
||||
_ -> lift $ logWarn $ "Linux Alpine missing for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack (prettyShow arch)
|
||||
-- alpine needs to be set explicitly, because
|
||||
-- we cannot assume that "Linux UnknownLinux" runs on Alpine
|
||||
-- (although it could be static)
|
||||
when (Linux Alpine `notElem` pspecs) $
|
||||
case t of
|
||||
GHCup | arch `elem` [A_64, A_32] -> lift (logError $ "Linux Alpine missing for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack (prettyShow arch)) >> addError
|
||||
Cabal | v > [vver|2.4.1.0|]
|
||||
, arch `elem` [A_64, A_32] -> lift (logError $ "Linux Alpine missing for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack (prettyShow arch)) >> addError
|
||||
GHC | Latest `elem` tags || Recommended `elem` tags
|
||||
, arch `elem` [A_64, A_32] -> lift (logError $ "Linux Alpine missing for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack (prettyShow arch))
|
||||
_ -> lift $ logWarn $ "Linux Alpine missing for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack (prettyShow arch)
|
||||
|
||||
checkUniqueTags tool = do
|
||||
GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo
|
||||
@@ -145,12 +154,15 @@ validate = do
|
||||
lift $ logError $ "Tags not unique for " <> T.pack (prettyShow tool) <> ": " <> T.pack (prettyShow xs)
|
||||
addError
|
||||
where
|
||||
isUniqueTag Latest = True
|
||||
isUniqueTag Recommended = True
|
||||
isUniqueTag Old = False
|
||||
isUniqueTag Prerelease = False
|
||||
isUniqueTag (Base _) = False
|
||||
isUniqueTag (UnknownTag _) = False
|
||||
isUniqueTag Latest = True
|
||||
isUniqueTag Recommended = True
|
||||
isUniqueTag Old = False
|
||||
isUniqueTag Prerelease = False
|
||||
isUniqueTag LatestPrerelease = True
|
||||
isUniqueTag Nightly = False
|
||||
isUniqueTag LatestNightly = True
|
||||
isUniqueTag (Base _) = False
|
||||
isUniqueTag (UnknownTag _) = False
|
||||
|
||||
checkGHCVerIsValid = do
|
||||
GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo
|
||||
@@ -166,12 +178,21 @@ validate = do
|
||||
checkMandatoryTags tool = do
|
||||
GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo
|
||||
let allTags = _viTags =<< M.elems (availableToolVersions dls tool)
|
||||
forM_ [Latest, Recommended] $ \t -> case t `elem` allTags of
|
||||
forM_ (mandatoryTags tool) $ \t -> case t `elem` allTags of
|
||||
False -> do
|
||||
lift $ logError $ "Tag " <> T.pack (prettyShow t) <> " missing from " <> T.pack (prettyShow tool)
|
||||
addError
|
||||
True -> pure ()
|
||||
|
||||
mandatoryTags tool
|
||||
-- due to a quirk, even for ghcup prereleases we need the 'latest' tag
|
||||
-- https://github.com/haskell/ghcup-hs/issues/891
|
||||
| tool == GHCup = [Latest, Recommended]
|
||||
| otherwise = case distroChannel of
|
||||
MainChan -> [Latest, Recommended]
|
||||
PrereleaseChan -> [LatestPrerelease]
|
||||
NightlyChan -> [LatestNightly]
|
||||
|
||||
-- all GHC versions must have a base tag
|
||||
checkGHCHasBaseVersion = do
|
||||
GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo
|
||||
|
||||
@@ -13,11 +13,11 @@ ghcupDownloads:
|
||||
viArch:
|
||||
A_64:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning: &cabal-3720-32
|
||||
unknown_versioning: &cabal-3720-64
|
||||
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/3.7.0.0-pre20220407/cabal-install-3.7-x86_64-linux-alpine.tar.xz
|
||||
dlHash: c9e28e1578dfb851918e523040cb0f913df747fe95e24d089bcf7cd821c21885
|
||||
Linux_Alpine:
|
||||
unknown_versioning: *cabal-3720-32
|
||||
unknown_versioning: *cabal-3720-64
|
||||
Darwin:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/3.7.0.0-pre20220407/cabal-install-3.7-x86_64-darwin.tar.xz
|
||||
@@ -59,11 +59,11 @@ ghcupDownloads:
|
||||
viArch:
|
||||
A_64:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning: &cabal-3810-32
|
||||
unknown_versioning: &cabal-3810-64
|
||||
dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.8.1.0-rc1/cabal-install-3.8.0.20220526-x86_64-linux-alpine.tar.xz
|
||||
dlHash: a4e6cb7990d7150c4e64cbd3ebd0a62fb6b00f96f0f9bc3fb751ff6d1f898fdb
|
||||
Linux_Alpine:
|
||||
unknown_versioning: *cabal-3810-32
|
||||
unknown_versioning: *cabal-3810-64
|
||||
Darwin:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.8.1.0-rc1/cabal-install-3.8.0.20220526-x86_64-darwin.tar.xz
|
||||
@@ -100,11 +100,11 @@ ghcupDownloads:
|
||||
viArch:
|
||||
A_64:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning: &cabal-3900-32
|
||||
unknown_versioning: &cabal-3900-64
|
||||
dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.9.0.0/cabal-install-3.9-x86_64-linux-alpine.tar.xz
|
||||
dlHash: 0374716dc33f255e1fb9ec38d83fdd3a3dc81ecf38af0a94b8ab0e1ba1a1ac1c
|
||||
Linux_Alpine:
|
||||
unknown_versioning: *cabal-3900-32
|
||||
unknown_versioning: *cabal-3900-64
|
||||
Darwin:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.9.0.0/cabal-install-3.9-x86_64-darwin.tar.xz
|
||||
@@ -210,7 +210,7 @@ ghcupDownloads:
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.4.1-alpha2/ghc-9.4.0.20220523-src.tar.xz
|
||||
dlSubdir: ghc-9.4.0.20220523
|
||||
dlHash: 3bcac9a2043bbc99cd8113547d92fdcad7d7bb4c286a9222ccbcbd4b4a26b635
|
||||
viPostRemove: &ghc-post-remove "After removing GHC you might also want to clean up your cabal store at: ~/.cabal/store/ghc-<ghcver>"
|
||||
viPostRemove: *ghc-post-remove
|
||||
viArch:
|
||||
A_64:
|
||||
Linux_Debian:
|
||||
@@ -549,11 +549,11 @@ ghcupDownloads:
|
||||
viArch:
|
||||
A_32:
|
||||
Linux_Debian:
|
||||
<10: &ghc-961alpha2-64-deb9
|
||||
<10: &ghc-961alpha2-32-deb9
|
||||
dlHash: e2f3e622f1aecfe0b6a305d0fb997e83453ecbc2949cb2b393549e35f2b062e1
|
||||
dlSubdir: ghc-9.6.0.20230128-i386-unknown-linux
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.6.0.20230128/ghc-9.6.0.20230128-i386-deb9-linux.tar.xz
|
||||
unknown_versioning: *ghc-961alpha2-64-deb9
|
||||
unknown_versioning: *ghc-961alpha2-32-deb9
|
||||
A_64:
|
||||
Darwin:
|
||||
unknown_versioning:
|
||||
@@ -1290,7 +1290,7 @@ ghcupDownloads:
|
||||
dlSubdir: ghc-9.8.0.20230919
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.8.0.20230919/ghc-9.8.0.20230919-src.tar.xz
|
||||
viTags:
|
||||
- LatestPrerelease
|
||||
- Prerelease
|
||||
- base-4.19.0.0
|
||||
viTestDL:
|
||||
dlHash: a586567b51ce856d15cc4bdde2316aa0aaf7381d80896d2fdcc4f13757b303e6
|
||||
@@ -1298,6 +1298,121 @@ ghcupDownloads:
|
||||
dlSubdir: ghc-9.8.0.20230919
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.8.0.20230919/ghc-9.8.0.20230919-src.tar.xz
|
||||
|
||||
9.8.0.20230929:
|
||||
viArch:
|
||||
A_32:
|
||||
Linux_Debian:
|
||||
unknown_versioning: &ghc-981rc1-i386-deb10
|
||||
dlHash: 972ecaadafff7d4a65fa5c328d4f9b5210001c75534f3ba123fe51039643ab09
|
||||
dlOutput: ghc-9.8.0.20230929-i386-linux-deb10.tar.xz
|
||||
dlSubdir: ghc-9.8.0.20230929-i386-unknown-linux
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.8.0.20230929/ghc-9.8.0.20230929-i386-deb10-linux.tar.xz
|
||||
Linux_Mint:
|
||||
unknown_versioning: *ghc-981rc1-i386-deb10
|
||||
Linux_Ubuntu:
|
||||
unknown_versioning: *ghc-981rc1-i386-deb10
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning: *ghc-981rc1-i386-deb10
|
||||
A_64:
|
||||
Darwin:
|
||||
unknown_versioning:
|
||||
dlHash: 95ff4a6fe3202e14311bfd22b2ef166d47e8cc8a848cf9cfd5d66734e4dac919
|
||||
dlOutput: ghc-9.8.0.20230929-x86_64-darwin.tar.xz
|
||||
dlSubdir: ghc-9.8.0.20230929-x86_64-apple-darwin
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.8.0.20230929/ghc-9.8.0.20230929-x86_64-apple-darwin.tar.xz
|
||||
Linux_Alpine:
|
||||
unknown_versioning:
|
||||
dlHash: 4f73dbe0967d831252744d59a238d4a49aa474ea04b4cc8683fe06847f6b071d
|
||||
dlOutput: ghc-9.8.0.20230929-x86_64-linux-alpine3_12.tar.xz
|
||||
dlSubdir: ghc-9.8.0.20230929-x86_64-unknown-linux
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.8.0.20230929/ghc-9.8.0.20230929-x86_64-alpine3_12-linux.tar.xz
|
||||
Linux_CentOS:
|
||||
( >= 7 && < 8 ): &ghc-981rc1-x86_64-centos7
|
||||
dlHash: ca3526b013b9889f4b43074dcdb0cc213facb55db9f0e6de9c2365bb0365b664
|
||||
dlOutput: ghc-9.8.0.20230929-x86_64-linux-centos7.tar.xz
|
||||
dlSubdir: ghc-9.8.0.20230929-x86_64-unknown-linux
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.8.0.20230929/ghc-9.8.0.20230929-x86_64-centos7-linux.tar.xz
|
||||
unknown_versioning: *ghc-981rc1-x86_64-centos7
|
||||
Linux_Debian:
|
||||
(>= 10 && < 11):
|
||||
dlHash: abd39667c4227614c3f2c6a58a911837eb08f2664ca8dcc06389f6e2fe88d576
|
||||
dlOutput: ghc-9.8.0.20230929-x86_64-linux-deb10.tar.xz
|
||||
dlSubdir: ghc-9.8.0.20230929-x86_64-unknown-linux
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.8.0.20230929/ghc-9.8.0.20230929-x86_64-deb10-linux.tar.xz
|
||||
< 10:
|
||||
dlHash: 9d5c85c58b4f35125c6ff62974e935d035ff42ef7e4bb366007982127f9b4312
|
||||
dlOutput: ghc-9.8.0.20230929-x86_64-linux-deb9.tar.xz
|
||||
dlSubdir: ghc-9.8.0.20230929-x86_64-unknown-linux
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.8.0.20230929/ghc-9.8.0.20230929-x86_64-deb9-linux.tar.xz
|
||||
'>= 11': &ghc-981rc1-x86_64-deb11
|
||||
dlHash: 4be779e74afb510de27f7d9ed3b2a63044e678d2bdf8356a42f2232dcd4bc332
|
||||
dlOutput: ghc-9.8.0.20230929-x86_64-linux-deb11.tar.xz
|
||||
dlSubdir: ghc-9.8.0.20230929-x86_64-unknown-linux
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.8.0.20230929/ghc-9.8.0.20230929-x86_64-deb11-linux.tar.xz
|
||||
unknown_versioning: *ghc-981rc1-x86_64-deb11
|
||||
Linux_Fedora:
|
||||
'>= 33':
|
||||
dlHash: a85cfaee4b3d3a9900282a01f473e5520e31c405cd3319a30a8ab06321cd90e0
|
||||
dlOutput: ghc-9.8.0.20230929-x86_64-linux-fedora33.tar.xz
|
||||
dlSubdir: ghc-9.8.0.20230929-x86_64-unknown-linux
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.8.0.20230929/ghc-9.8.0.20230929-x86_64-fedora33-linux.tar.xz
|
||||
unknown_versioning: *ghc-981rc1-x86_64-centos7
|
||||
Linux_Mint:
|
||||
< 20: &ghc-981rc1-x86_64-ubuntu18_04
|
||||
dlHash: d07a57858490dfa5ed1299939eacf068f52603b4ab55a5cc68b3fe19b0bb81da
|
||||
dlOutput: ghc-9.8.0.20230929-x86_64-linux-ubuntu18_04.tar.xz
|
||||
dlSubdir: ghc-9.8.0.20230929-x86_64-unknown-linux
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.8.0.20230929/ghc-9.8.0.20230929-x86_64-ubuntu18_04-linux.tar.xz
|
||||
'>= 20': &ghc-981rc1-x86_64-ubuntu20_04
|
||||
dlHash: 433e70733015c64fd967ee2f6c93ac519a0a72455463dac76030a8b2aa54c021
|
||||
dlOutput: ghc-9.8.0.20230929-x86_64-linux-ubuntu20_04.tar.xz
|
||||
dlSubdir: ghc-9.8.0.20230929-x86_64-unknown-linux
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.8.0.20230929/ghc-9.8.0.20230929-x86_64-ubuntu20_04-linux.tar.xz
|
||||
Linux_RedHat:
|
||||
unknown_versioning: *ghc-981rc1-x86_64-centos7
|
||||
Linux_Ubuntu:
|
||||
( >= 16 && < 19 ): *ghc-981rc1-x86_64-ubuntu18_04
|
||||
unknown_versioning: *ghc-981rc1-x86_64-ubuntu20_04
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning:
|
||||
dlHash: aaaeb2c1a0bc111676b240bb171e622532cafab2b8d9fb98da181d8df799cf32
|
||||
dlOutput: ghc-9.8.0.20230929-x86_64-linux-rocky8.tar.xz
|
||||
dlSubdir: ghc-9.8.0.20230929-x86_64-unknown-linux
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.8.0.20230929/ghc-9.8.0.20230929-x86_64-rocky8-linux.tar.xz
|
||||
Windows:
|
||||
unknown_versioning:
|
||||
dlHash: 89960b8e52b21c455369025a6ba9f7445ad763cd8ea924771ef65052d3b0caf6
|
||||
dlOutput: ghc-9.8.0.20230929-x86_64-windows.tar.xz
|
||||
dlSubdir: ghc-9.8.0.20230929-x86_64-unknown-mingw32
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.8.0.20230929/ghc-9.8.0.20230929-x86_64-unknown-mingw32.tar.xz
|
||||
A_ARM64:
|
||||
Darwin:
|
||||
unknown_versioning:
|
||||
dlHash: 62f66aa167ff08e862549750511fe4c7a1b789ac82a1203e5154ddaa62e0a0e6
|
||||
dlOutput: ghc-9.8.0.20230929-aarch64-darwin.tar.xz
|
||||
dlSubdir: ghc-9.8.0.20230929-aarch64-apple-darwin
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.8.0.20230929/ghc-9.8.0.20230929-aarch64-apple-darwin.tar.xz
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning:
|
||||
dlHash: cf212fc580fd881dbf80c8a2d7df355cc8728c94b8bab2217a3257247d4b459a
|
||||
dlOutput: ghc-9.8.0.20230929-aarch64-linux-deb10.tar.xz
|
||||
dlSubdir: ghc-9.8.0.20230929-aarch64-unknown-linux
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.8.0.20230929/ghc-9.8.0.20230929-aarch64-deb10-linux.tar.xz
|
||||
viChangeLog: https://downloads.haskell.org/~ghc/9.8.0.20230929/docs/users_guide/9.8.1-notes.html
|
||||
viReleaseDay: '2023-09-29'
|
||||
viSourceDL:
|
||||
dlHash: 93bda13ca9e612210147210c23c2d565b9a4cfafa0f4d8a033ec533a8d07fd4b
|
||||
dlOutput: ghc-9.8.0.20230929-src.tar.xz
|
||||
dlSubdir: ghc-9.8.0.20230929
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.8.0.20230929/ghc-9.8.0.20230929-src.tar.xz
|
||||
viTags:
|
||||
- LatestPrerelease
|
||||
- base-4.19.0.0
|
||||
viTestDL:
|
||||
dlHash: b0afd2912ba91914519739907ede6008857871668a138829410d72948c3c359e
|
||||
dlOutput: ghc-9.8.0.20230929-testsuite.tar.xz
|
||||
dlSubdir: ghc-9.8.0.20230929
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.8.0.20230929/ghc-9.8.0.20230929-src.tar.xz
|
||||
|
||||
Stack:
|
||||
2.9.2.1:
|
||||
|
||||
Binary file not shown.
@@ -5378,9 +5378,7 @@ ghcupDownloads:
|
||||
dlUri: https://github.com/commercialhaskell/stack/releases/download/v2.9.3/stack-2.9.3-linux-aarch64.tar.gz
|
||||
dlHash: 161e1638da9efc56319f7225b3652ca3f339bcda9eadc7d6ce512f325b0f014a
|
||||
2.11.1:
|
||||
viTags:
|
||||
- Recommended
|
||||
- Latest
|
||||
viTags: []
|
||||
viChangeLog: https://github.com/commercialhaskell/stack/blob/master/ChangeLog.md#v2111---2023-05-18
|
||||
viPostInstall: *stack-post
|
||||
viArch:
|
||||
@@ -5410,4 +5408,49 @@ ghcupDownloads:
|
||||
unknown_versioning:
|
||||
dlUri: https://github.com/commercialhaskell/stack/releases/download/v2.11.1/stack-2.11.1-linux-aarch64.tar.gz
|
||||
dlHash: c7733d07ed78d6f4d82e0ebf6d260eb693c6c9df2208003d60caba69766f9c15
|
||||
2.13.1:
|
||||
viTags:
|
||||
- Recommended
|
||||
- Latest
|
||||
viChangeLog: https://github.com/commercialhaskell/stack/blob/master/ChangeLog.md#v2131---2023-09-29
|
||||
viPostInstall: *stack-post
|
||||
viArch:
|
||||
A_64:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning: &stack-2131-64
|
||||
dlUri: https://github.com/commercialhaskell/stack/releases/download/v2.13.1/stack-2.13.1-linux-x86_64.tar.gz
|
||||
dlHash: 45281bb2385e928916ec8bcbc7ab790ce8721bbf805f3d0752544ada22ad5ea3
|
||||
dlSubdir:
|
||||
RegexDir: "stack-.*"
|
||||
Darwin:
|
||||
unknown_versioning:
|
||||
dlUri: https://github.com/commercialhaskell/stack/releases/download/v2.13.1/stack-2.13.1-osx-x86_64.tar.gz
|
||||
dlHash: b7d46382edb17230d21943844550d3aaeacee8b6fb1fcc7980ca59bee500b2a5
|
||||
dlSubdir:
|
||||
RegexDir: "stack-.*"
|
||||
Windows:
|
||||
unknown_versioning:
|
||||
dlUri: https://github.com/commercialhaskell/stack/releases/download/v2.13.1/stack-2.13.1-windows-x86_64.tar.gz
|
||||
dlHash: 728be2371e257c6960341167192fa704ff1f92ab61657dd4781710a257fae7c1
|
||||
dlSubdir:
|
||||
RegexDir: "stack-.*"
|
||||
# FreeBSD:
|
||||
# unknown_versioning:
|
||||
# dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/stack/2.13.1/stack-2.13.1-freebsd-x86_64.tar.xz
|
||||
# dlHash: <replace_me>
|
||||
Linux_Alpine:
|
||||
unknown_versioning: *stack-2131-64
|
||||
A_ARM64:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning:
|
||||
dlUri: https://github.com/commercialhaskell/stack/releases/download/v2.13.1/stack-2.13.1-linux-aarch64.tar.gz
|
||||
dlHash: 37b1dbf39131eea629a6e3685fd1153fdfd2f0cd2179db92bb33784987b4ddb8
|
||||
dlSubdir:
|
||||
RegexDir: "stack-.*"
|
||||
Darwin:
|
||||
unknown_versioning:
|
||||
dlUri: https://github.com/commercialhaskell/stack/releases/download/v2.13.1/stack-2.13.1-osx-aarch64.tar.gz
|
||||
dlHash: 18ececd7112b1aad01ab0f88cb68ae63f2dc74aa9b8b5319828979f43cba9907
|
||||
dlSubdir:
|
||||
RegexDir: "stack-.*"
|
||||
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user