@@ -275,14 +275,33 @@ updates with your pull request.
275
275
276
276
## Backwards Compatability
277
277
278
- The Stack executable does not need to, and does not, strive for the same broad
279
- compatibility with versions of GHC that a library package (such as ` pantry ` )
280
- would seek. Instead, Stack aims to define a well-known combination of
281
- dependencies on which its executable relies. That applies in particular to the
282
- ` Cabal ` package, where Stack aims to support one, and only one, version of
283
- ` Cabal ` with each release of its executable. At the time of writing (September
284
- 2022 ) that combination is defined by resolver ` nightly-2022-11-14 ` (for
285
- GHC 9.2.4, and including ` Cabal-3.6.3.0 ` ) - see ` stack.yaml ` .
278
+ The Stack package provides a library and an executable (` stack ` ) that depends on
279
+ the library. The library is intended for use only by the executable.
280
+
281
+ Consequently, the Stack package does not need to, and does not, strive for the
282
+ compatibility with a range of versions of GHC that a library package (such as
283
+ ` pantry ` ) would seek.
284
+
285
+ Stack aims to depend on well-known packages. The specific versions on which it
286
+ depends at any time are specified by ` package.yaml ` and ` stack.yaml ` . It does
287
+ not aim to be compatible with more than one version of the ` Cabal ` package at
288
+ any time. At the time of writing (January 2023) the package versions are
289
+ primarily ones in Stackage snapshot LTS Haskell 20.8 (for GHC 9.2.5), together
290
+ with extra-dep ` Cabal-3.8.1.0 ` .
291
+
292
+ A Stack executable makes use of Cabal (the library) through a small 'Setup'
293
+ executable that it compiles from Haskell source code. The executable compiles
294
+ that code with a dependency on the version of Cabal that ships with the
295
+ specified GHC compiler. Each release of Stack will aim to support all versions
296
+ of GHC and the Cabal package in Stackage snapshots published within seven years
297
+ of the release. For example, snapshot LTS Haskell 2.22, published on
298
+ 9 August 2015, was the last to provide GHC 7.8.4 which comes with
299
+ ` Cabal-1.18.1.5 ` . Until, at least, 9 August 2022, Stack releases would aim
300
+ to support GHC 7.8.4 and ` Cabal-1.18.1.5 ` .
301
+
302
+ When a version of the Stack executable actually ceases to support a version of
303
+ GHC and ` Cabal ` , that should be recorded in Stack's
304
+ [ ChangeLog] ( https://github.com/commercialhaskell/stack/blob/master/ChangeLog.md ) .
286
305
287
306
## Code Quality
288
307
0 commit comments