From 44688df781370511b1ef6713b49b5efcd0cc9c04 Mon Sep 17 00:00:00 2001 From: Mike Pilgrem Date: Wed, 21 Feb 2024 19:39:03 +0000 Subject: [PATCH] Re #6490 Update CONTRIBUTING.md on backwards compatability --- CONTRIBUTING.md | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e9b01ee349..2c778f3fda 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -285,21 +285,22 @@ compatibility with a range of versions of GHC that a library package (such as Stack aims to depend on well-known packages. The specific versions on which it depends at any time are specified by `package.yaml` and `stack.yaml`. It does not aim to be compatible with more than one version of the `Cabal` package at -any time. At the time of writing (August 2023) the package versions are -primarily ones in Stackage snapshot LTS Haskell 21.8 (for GHC 9.4.5), together -with extra-deps to depend on the latest versions of `ansi-terminal`, `crypton` -(instead of `cryptonite`), `hpack`, `pantry` and `tar-conduit`. +any time. At the time of writing (February 2024) the package versions are +primarily ones in Stackage snapshot LTS Haskell 22.7 (for GHC 9.6.4), together +with extra-deps to depend on the latest version of `process`. A Stack executable makes use of Cabal (the library) through a small 'Setup' executable that it compiles from Haskell source code. The executable compiles that code with a dependency on the version of Cabal that ships with the -specified GHC compiler. Each release of Stack will aim to support all versions -of GHC and the Cabal package in Stackage snapshots published within seven years -of the release. For example, snapshot LTS Haskell 8.0, published on -12 February 2017, was the first LTS Haskell snapshot to provide GHC 8.0.2 which -comes with `base-4.9.1.0` and `Cabal-1.24.2.0`. Until, at least, -13 February 2024, Stack releases would aim to support the immediate -predecessor, GHC 8.0.1 and `base-4.9.0.0`, `Cabal-1.24.0.0` and Haddock 2.17.2. +specified GHC compiler. Each release of Stack will normally aim to support all +versions of GHC and the Cabal package in Stackage snapshots published within +seven years of the release. For example, snapshot LTS Haskell 10.0, published on +19 December 2017, was the first LTS Haskell snapshot to provide GHC 8.2.2 which +comes with `base-4.10.1.0` and `Cabal-2.0.1.1`. Normally, until, at least, +19 December 2024, Stack releases would aim to support the immediate +predecessor, GHC 8.0.2 and `base-4.9.1.0`, `Cabal-1.24.2.0` and Haddock 2.17.4. +However, the next version of Stack will drop support for versions of Cabal +before 2.2. `Cabal-2.2.0.0` was released with GHC 8.4.1 on 8 March 2018. When a version of the Stack executable actually ceases to support a version of GHC and `Cabal`, that should be recorded in Stack's