Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
94 changes: 29 additions & 65 deletions .github/workflows/workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,10 @@ jobs:

# Recent releases

- ghc: "9.12"
cabal: "3.14"
cabal_update: "true"

- ghc: "9.10"
cabal: "3.12"
cabal_update: "true"
Expand All @@ -73,127 +77,87 @@ jobs:
# Test #210 (XDG): is the cabal store-dir set to something meaningful?

- ghc: "9.4"
cabal: "3.8"
cabal: "3.10.2.1"
cabal_update: "false"

- ghc: "9.2"
cabal: "3.6"
cabal: "3.10.2.0"
cabal_update: "false"

# The following tests do not set 'cabal-update', which defaults to 'true' then.

include:

# Some previously recommended releases of ghc with matching cabal
# Future macos

- os: macos-15
plan:
ghc: latest
cabal: latest
cabal_update: "true"

# Some previously recommended releases of ghc with supported cabal

- os: macos-13
# GHC 9.0 does not work on macos-14 (LLVM problem #77)
plan:
ghc: "9.0"
cabal: "3.4"
cabal: "3.10"

- os: ubuntu-latest
plan:
ghc: "8.10"
cabal: "3.2"
cabal: "3.14.1.1"

- os: ubuntu-latest
plan:
ghc: "8.8"
cabal: "3.0"
cabal: "3.14.1.0"
# cabal-3.0 install might have the Windows symlinking problem
# https://github.com/haskell/cabal/issues/5748

- os: ubuntu-latest
plan:
ghc: "8.6"
cabal: "2.4"
cabal_update: "false"
# Setting cabal_update to "true" will try to build the test project
# with hackage dependencies, but something goes wrong.
# TODO: figure out what.
# cabal update needed here since cabal-2.4 is still v1
cabal: "3.12.1.0"
cabal_update: "true"

# Test on ubuntu-24.04 with older ghc
- os: ubuntu-24.04
plan:
ghc: "8.0"
cabal: "2.4.1.0"
cabal: "3.10.3.0"
cabal_update: "false"

- os: ubuntu-22.04
plan:
ghc: "8.0"
cabal: "2.4.1.0"
cabal: "3.10.2.1"
cabal_update: "false"

# Test some old versions
- os: ubuntu-latest
plan:
ghc: "8.2.2"
cabal: "2.4.1.0"
cabal: "3.10.2.0"
cabal_update: "false"

# Test ghcup pre-release channel
- os: ubuntu-latest
ghcup_release_channel: "https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-prereleases-0.0.7.yaml"
ghcup_release_channel: "https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-prereleases-0.0.9.yaml"
plan:
ghc: "9.6.0.20230111"
cabal: "3.8"
ghc: "9.12.1.20250219"
# 2025-07-29: just not out yet: "9.10.2.20250725"
cabal: "latest"

# Test ghc nightly
- os: ubuntu-latest
ghcup_release_channel: "https://ghc.gitlab.haskell.org/ghcup-metadata/ghcup-nightlies-0.0.7.yaml"
# 2025-07-29: 0.0.8 and 0.0.9 do not exist
plan:
ghc: "latest-nightly"
cabal: "latest"

## Andreas, 2024-05-03, deprecate GHC 7, do not test it any longer
#
# - os: ubuntu-20.04
# plan:
# ghc: "7.4.2"
# cabal: "3.4"
# # ubuntu-20.04/hvr has of GHC 7 just 7.0.1, 7.0.4, 7.2.2, 7.4.2, 7.10.3
# # and of cabal just 2.4, 3.0, 3.2, 3.4
# # according to https://launchpad.net/~hvr/+archive/ubuntu/ghc?field.series_filter=focal
#
# # setup does something special for 7.10.3 (issue #79)
# - os: ubuntu-20.04
# plan:
# ghc: "7.10.3"
# cabal: "3.6"
# - os: macOS-latest
# plan:
# ghc: "7.10.3"
# cabal: "3.4"
#
# # Andreas 2022-12-29, issue #98: GHC 7.10 failed to install on windows (choco)
# - os: windows-latest
# plan:
# ghc: "7.10"
# cabal: "3.0"

## Andreas, 2024-05-03, stop testing old minor versions
#
# # Test for issue #129: GHC 9.4.3 failed to install on windows (choco)
# - os: windows-latest
# plan:
# ghc: "9.4.3"
# cabal: "3.8.1.0"

# # Test ghcup on windows (PR #206) which choco does not have 9.4.5
# - os: windows-latest
# plan:
# ghc: "9.4.5"
# cabal: "3.8"

# # Test GHC 9.4.4 on windows (Issue #245)
# - os: windows-latest
# plan:
# ghc: "9.4.4"
# cabal: "3.10.1.0"

steps:
- uses: actions/checkout@v4

Expand Down Expand Up @@ -306,7 +270,7 @@ jobs:
fail-fast: false
matrix:
os: [ubuntu-latest, macOS-latest, windows-latest]
stack: ["latest", "2.15.5"]
stack: ["latest", "3.3.1"]
# test latest and recommended version of stack

steps:
Expand Down
14 changes: 4 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -128,36 +128,30 @@ E.g., `8.10` will be resolved to `8.10.7`, and so will `8`.
- `8.4.1`
- `8.2.2` `8.2`
- `8.0.2` `8.0`
- `7.10.3` `7.10` (deprecated, not on `ubuntu-22.04` or up)

Suggestion: Try to support at least the three latest major versions of GHC.

**Cabal:**

- `head` (the [cabal-head](https://github.com/haskell/cabal/releases/tag/cabal-head) release of the most recent build of the `master` branch)
- `latest` (default, recommended)
- `3.16.0.0` `3.16`
- `3.14.2.0` `3.14`
- `3.14.1.1`
- `3.14.1.0`
- `3.12.1.0` `3.12`
- `3.10.3.0` `3.10`
- `3.10.2.1`
- `3.10.2.0`
- `3.10.1.0`
- `3.8.1.0` `3.8`
- `3.6.2.0` `3.6`
- `3.6.0.0`
- `3.4.1.0` `3.4`
- `3.4.0.0`
- `3.2.0.0` `3.2`
- `3.0.0.0` `3.0`
- `2.4.1.0` `2.4`

Older versions of `cabal` are not supported due to vulnerability [HSEC-2023-0015](https://github.com/haskell/security-advisories/blob/cea5781acfc2adb9bc02486497d782072c613bb6/advisories/hackage/cabal-install/HSEC-2023-0015.md).

Recommendation: Use the latest available version if possible.

**Stack:** (with `enable-stack: true`)

- `latest` (default, recommended)
- `3.7.1` `3.7`
- `3.5.1` `3.5`
- `3.3.1` `3.3`
- `3.1.1` `3.1`
Expand Down
2 changes: 1 addition & 1 deletion dist/index.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 7 additions & 0 deletions docs/contributors.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,10 @@ Finally, it will make sure these changes are appropriately included in your comm
Cabal does not follow SemVer and Stack has both SemVer compatible version numbers as well as PVP-style versions; due to this, support for "resolving" a version like `X.X` into the latest `X.X.Y` or `X.X.Y.Y` version is tricky.
To avoid complications, all recognized versions of GHC, Cabal, and Stack are in `src/versions.json`; these versions are supported across all three operating systems.
When a new release of GHC, Cabal, or Stack comes out, the `src/versions.json` file will need to be updated accordingly.

### Adding new versions

- Add new versions to `src/versions.json` and `README.md`.
- Take a look at `.github/workflows/workflow.yml`.
The new versions should be covered by the `latest` jobs there, however they can bump the next-to-latest versions out of CI.
Make sure all recent versions are covered by the CI.
2 changes: 2 additions & 0 deletions lib/versions.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions src/versions.json
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@
"7.10.3"
],
"cabal": [
"3.16.0.0",
"3.14.2.0",
"3.14.1.1",
"3.14.1.0",
Expand All @@ -75,6 +76,7 @@
"2.4.1.0"
],
"stack": [
"3.7.1",
"3.5.1",
"3.3.1",
"3.1.1",
Expand Down
Loading