diff --git a/README.md b/README.md index 875170e..72e7489 100644 --- a/README.md +++ b/README.md @@ -244,7 +244,8 @@ E.g., `8.10` will be resolved to `8.10.7`, and so will `8`. - `latest-nightly` (requires the resp. `ghcup-release-channel`, e.g. `https://ghc.gitlab.haskell.org/ghcup-metadata/ghcup-nightlies-0.0.7.yaml`) - `latest` (default) -- `9.8.1` `9.8` +- `9.8.2` `9.8` +- `9.8.1` - `9.6.4` `9.6` - `9.6.3` - `9.6.2` @@ -297,7 +298,8 @@ Suggestion: Try to support at least the three latest major versions of GHC. - `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.10.2.0` `3.10` +- `3.10.2.1` `3.10` +- `3.10.2.0` - `3.10.1.0` - `3.8.1.0` `3.8` - `3.6.2.0` `3.6` @@ -313,6 +315,7 @@ Recommendation: Use the latest available version if possible. **Stack:** (with `enable-stack: true`) - `latest` (default, recommended) +- `2.15.1` `2.15` - `2.13.1` `2.13` - `2.11.1` `2.11` - `2.9.3` `2.9` diff --git a/dist/index.js b/dist/index.js index 10d5f2b..eee2974 100644 --- a/dist/index.js +++ b/dist/index.js @@ -14040,6 +14040,15 @@ async function cabalConfig() { silent: true, listeners: { stdout: append, stderr: append } }); + // The last line of the cabal help text is printing the config file, e.g.: + // + // > You can edit the cabal configuration file to set defaults: + // > <>/.cabal/config + // + // So trimming the last line will give us the name of the config file. + // + // Needless to say this is very brittle, but we secure this by a test + // in Cabal's testsuite: https://github.com/haskell/cabal/pull/9614 return out.toString().trim().split('\n').slice(-1)[0].trim(); } async function run(inputs) { @@ -14331,7 +14340,7 @@ module.exports = JSON.parse('{"win32":{"ghc":[{"from":"9.4.3","to":"9.4.3.1"},{" /***/ ((module) => { "use strict"; -module.exports = JSON.parse('{"ghc":["9.8.1","9.6.4","9.6.3","9.6.2","9.6.1","9.4.8","9.4.7","9.4.6","9.4.5","9.4.4","9.4.3","9.4.2","9.4.1","9.2.8","9.2.7","9.2.6","9.2.5","9.2.4","9.2.3","9.2.2","9.2.1","9.0.2","9.0.1","8.10.7","8.10.6","8.10.5","8.10.4","8.10.3","8.10.2","8.10.1","8.8.4","8.8.3","8.8.2","8.8.1","8.6.5","8.6.4","8.6.3","8.6.2","8.6.1","8.4.4","8.4.3","8.4.2","8.4.1","8.2.2","8.0.2","7.10.3"],"cabal":["3.10.2.0","3.10.1.0","3.8.1.0","3.6.2.0","3.6.0.0","3.4.1.0","3.4.0.0","3.2.0.0","3.0.0.0","2.4.1.0"],"stack":["2.13.1","2.11.1","2.9.3","2.9.1","2.7.5","2.7.3","2.7.1","2.5.1","2.3.3","2.3.1","2.1.3","2.1.1","1.9.3","1.9.1","1.7.1","1.6.5","1.6.3","1.6.1","1.5.1","1.5.0","1.4.0","1.3.2","1.3.0","1.2.0"],"ghcup":["0.1.20.0"]}'); +module.exports = JSON.parse('{"ghc":["9.8.2","9.8.1","9.6.4","9.6.3","9.6.2","9.6.1","9.4.8","9.4.7","9.4.6","9.4.5","9.4.4","9.4.3","9.4.2","9.4.1","9.2.8","9.2.7","9.2.6","9.2.5","9.2.4","9.2.3","9.2.2","9.2.1","9.0.2","9.0.1","8.10.7","8.10.6","8.10.5","8.10.4","8.10.3","8.10.2","8.10.1","8.8.4","8.8.3","8.8.2","8.8.1","8.6.5","8.6.4","8.6.3","8.6.2","8.6.1","8.4.4","8.4.3","8.4.2","8.4.1","8.2.2","8.0.2","7.10.3"],"cabal":["3.10.2.1","3.10.2.0","3.10.1.0","3.8.1.0","3.6.2.0","3.6.0.0","3.4.1.0","3.4.0.0","3.2.0.0","3.0.0.0","2.4.1.0"],"stack":["2.15.1","2.13.1","2.11.1","2.9.3","2.9.1","2.7.5","2.7.3","2.7.1","2.5.1","2.3.3","2.3.1","2.1.3","2.1.1","1.9.3","1.9.1","1.7.1","1.6.5","1.6.3","1.6.1","1.5.1","1.5.0","1.4.0","1.3.2","1.3.0","1.2.0"],"ghcup":["0.1.20.0"]}'); /***/ }) diff --git a/lib/setup-haskell.js b/lib/setup-haskell.js index f74417e..db71ead 100644 --- a/lib/setup-haskell.js +++ b/lib/setup-haskell.js @@ -42,6 +42,15 @@ async function cabalConfig() { silent: true, listeners: { stdout: append, stderr: append } }); + // The last line of the cabal help text is printing the config file, e.g.: + // + // > You can edit the cabal configuration file to set defaults: + // > <>/.cabal/config + // + // So trimming the last line will give us the name of the config file. + // + // Needless to say this is very brittle, but we secure this by a test + // in Cabal's testsuite: https://github.com/haskell/cabal/pull/9614 return out.toString().trim().split('\n').slice(-1)[0].trim(); } async function run(inputs) { diff --git a/lib/versions.json b/lib/versions.json index 40d707d..492076a 100644 --- a/lib/versions.json +++ b/lib/versions.json @@ -1,5 +1,6 @@ { "ghc": [ + "9.8.2", "9.8.1", "9.6.4", "9.6.3", @@ -48,6 +49,7 @@ "7.10.3" ], "cabal": [ + "3.10.2.1", "3.10.2.0", "3.10.1.0", "3.8.1.0", @@ -60,6 +62,7 @@ "2.4.1.0" ], "stack": [ + "2.15.1", "2.13.1", "2.11.1", "2.9.3", diff --git a/src/setup-haskell.ts b/src/setup-haskell.ts index 158d6f1..b8d0134 100644 --- a/src/setup-haskell.ts +++ b/src/setup-haskell.ts @@ -16,6 +16,15 @@ async function cabalConfig(): Promise { silent: true, listeners: {stdout: append, stderr: append} }); + // The last line of the cabal help text is printing the config file, e.g.: + // + // > You can edit the cabal configuration file to set defaults: + // > <>/.cabal/config + // + // So trimming the last line will give us the name of the config file. + // + // Needless to say this is very brittle, but we secure this by a test + // in Cabal's testsuite: https://github.com/haskell/cabal/pull/9614 return out.toString().trim().split('\n').slice(-1)[0].trim(); } diff --git a/src/versions.json b/src/versions.json index 334f9ab..40546d0 100644 --- a/src/versions.json +++ b/src/versions.json @@ -1,5 +1,6 @@ { "ghc": [ + "9.8.2", "9.8.1", "9.6.4", "9.6.3", @@ -48,6 +49,7 @@ "7.10.3" ], "cabal": [ + "3.10.2.1", "3.10.2.0", "3.10.1.0", "3.8.1.0", @@ -60,6 +62,7 @@ "2.4.1.0" ], "stack": [ + "2.15.1", "2.13.1", "2.11.1", "2.9.3",