Skip to content

Commit 9ace3fd

Browse files
committed
Bump to Stackage LTS Haskell 23.17
Depends on the existing work around for: #6711. On Windows only, for some unidentified reason, stack script can fail when using a pre-compiled package. This affects the script build-stack-installer.hs because, with LTS Haskell 23.17, syb becomes a dependency of Stack and the script sees syb as a pre-compiled package. The work around is to build the package required for that script using the same Stack configuration as used by the script.
1 parent 1380135 commit 9ace3fd

File tree

83 files changed

+152
-140
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

83 files changed

+152
-140
lines changed

.github/workflows/integration-tests.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ jobs:
4747
cache-bust: "2025-02-07b"
4848
- os: windows-latest
4949
release-args: ""
50-
cache-bust: "2024-05-17"
50+
cache-bust: "2025-04-06"
5151
- os: macos-13
5252
release-args: ""
5353
cache-bust: "2024-05-17"

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ dist-newstyle/
77
# Haskell Tool Stack-related
88
.stack-work/
99
tests/integration/tests/**/*.yaml.lock
10+
etc/scripts/stack.yaml.lock
1011

1112
# Stack's GitHub workflow-related
1213
_release/

CONTRIBUTING.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -349,8 +349,8 @@ Stack aims to depend on well-known packages. The specific versions on which it
349349
depends at any time are specified by `package.yaml` and `stack.yaml`. It does
350350
not aim to be compatible with more than one version of the `Cabal` package at
351351
any time. At the time of writing (March 2025) the package versions are
352-
primarily ones in Stackage snapshot LTS Haskell 23.14 (for GHC 9.8.4) and
353-
`hpack-0.38.0`.
352+
primarily ones in Stackage snapshot LTS Haskell 23.17 (for GHC 9.8.4) and
353+
`hpack-0.38.1`.
354354

355355
A Stack executable makes use of Cabal (the library) through a small 'Setup'
356356
executable that it compiles from Haskell source code. The executable compiles

cabal.config

+19-8
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ constraints:
5252
, contravariant ==1.5.5
5353
, cookie ==0.5.0
5454
, cryptohash-sha256 ==0.11.102.1
55-
, crypton ==1.0.1
55+
, crypton ==1.0.3
5656
, crypton-conduit ==0.2.3
5757
, crypton-connection ==0.4.3
5858
, crypton-x509 ==1.7.7
@@ -79,7 +79,7 @@ constraints:
7979
, file-embed ==0.0.16.0
8080
, filelock ==0.1.1.7
8181
, filepath ==1.4.301.0
82-
, fsnotify ==0.4.1.0
82+
, fsnotify ==0.4.2.0
8383
, generic-deriving ==1.14.6
8484
, generically ==0.1.1
8585
, ghc-bignum ==1.3
@@ -89,13 +89,17 @@ constraints:
8989
, githash ==0.1.7.0
9090
, hackage-security ==0.6.2.6
9191
, half ==0.3.2
92+
, happy ==2.0.2
93+
, happy-lib ==2.0.2
9294
, hashable ==1.4.7.0
95+
, haskell-src-exts ==1.23.1
96+
, haskell-src-meta ==0.8.15
9397
, hi-file-parser ==0.1.7.0
9498
, hourglass ==0.2.12
95-
, hpack ==0.38.0
99+
, hpack ==0.38.1
96100
, hpc ==0.7.0.0
97101
, http-api-data ==0.6.1
98-
, http-client ==0.7.18
102+
, http-client ==0.7.19
99103
, http-client-tls ==0.3.6.4
100104
, http-conduit ==2.3.9.1
101105
, http-download ==0.2.1.0
@@ -120,7 +124,7 @@ constraints:
120124
, mime-types ==0.1.2.0
121125
, mintty ==0.1.4
122126
, monad-control ==1.0.3.1
123-
, monad-logger ==0.3.41
127+
, monad-logger ==0.3.42
124128
, monad-loops ==0.4.3
125129
, mono-traversable ==1.0.21.0
126130
, mtl ==2.3.1
@@ -131,7 +135,7 @@ constraints:
131135
, network-uri ==2.6.4.2
132136
, old-locale ==1.0.0.7
133137
, old-time ==1.1.0.4
134-
, open-browser ==0.2.1.0
138+
, open-browser ==0.2.1.1
135139
, optparse-applicative ==0.18.1.0
136140
, optparse-simple ==0.1.1.4
137141
, os-string ==2.0.7
@@ -175,20 +179,26 @@ constraints:
175179
, stm-chans ==3.0.0.9
176180
, streaming-commons ==0.2.3.0
177181
, strict ==0.5.1
182+
, string-interpolate ==0.3.4.0
183+
, syb ==0.7.2.4
178184
, tagged ==0.8.8
179185
, tar ==0.6.3.0
180186
, tar-conduit ==0.4.1
181187
, tasty ==1.5.3
182188
, template-haskell ==2.21.0.0
183189
, temporary ==1.3
184190
, text ==2.1.1
191+
, text-conversions ==0.3.1.1
185192
, text-iso8601 ==0.1.1
186193
, text-metrics ==0.3.3
187194
, text-short ==0.1.6
188195
, th-abstraction ==0.7.1.0
189196
, th-compat ==0.1.6
197+
, th-expand-syns ==0.4.12.0
190198
, th-lift ==0.8.6
191199
, th-lift-instances ==0.1.20
200+
, th-orphans ==0.13.16
201+
, th-reify-many ==0.1.10
192202
, these ==1.2.1
193203
, time ==1.12.2
194204
, time-compat ==1.9.7
@@ -198,11 +208,12 @@ constraints:
198208
, transformers-compat ==0.7.2
199209
, typed-process ==0.2.12.0
200210
, unix ==2.8.6.0
201-
, unix-compat ==0.7.3
211+
, unix-compat ==0.7.4
202212
, unix-time ==0.4.16
203-
, unliftio ==0.2.25.0
213+
, unliftio ==0.2.25.1
204214
, unliftio-core ==0.2.1.0
205215
, unordered-containers ==0.2.20
216+
, utf8-string ==1.0.2
206217
, uuid-types ==1.0.6
207218
, vault ==0.3.1.5
208219
, vector ==0.13.2.0

cabal.project

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
-- specified by the snapshot specifed in Stack's project-level YAML
3434
-- configuration file (`stack.yaml`). The relevant version of GHC can be
3535
-- confirmed by reviewing the snapshot on Stackage. For example, at:
36-
-- https://www.stackage.org/lts-23.14/cabal.config.
36+
-- https://www.stackage.org/lts-23.17/cabal.config.
3737
--
3838
with-compiler: ghc-9.8.4
3939
import: cabal.config

doc/commands/list_command.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -45,17 +45,17 @@ Error: [S-4926]
4545
tasty, retry, path, pretty, pasty, xattr, alloy, para, pappy and
4646
alure.
4747
48-
stack --snapshot lts-23.14 list base unix Win32 acme-missiles pantry
48+
stack --snapshot lts-23.17 list base unix Win32 acme-missiles pantry
4949
Error: [S-4926]
5050
* Package does not appear in snapshot (directly or indirectly): acme-missiles.
5151
52-
stack --snapshot lts-23.14 list base unix Win32 pantry
52+
stack --snapshot lts-23.17 list base unix Win32 pantry
5353
base-4.19.2.0
5454
unix-2.8.6.0
5555
Win32-2.13.4.0
5656
pantry-0.10.0
5757
58-
stack --snapshot lts-23.14 list
58+
stack --snapshot lts-23.17 list
5959
AC-Angle-1.0
6060
ALUT-2.4.0.3
6161
...

doc/commands/script_command.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ A snapshot must be specified on the command line, using the `--snapshot` option.
4949
For example:
5050

5151
~~~text
52-
stack script --snapshot lts-23.14 MyScript.hs
52+
stack script --snapshot lts-23.17 MyScript.hs
5353
~~~
5454

5555
An extra-dep from the package index can be added to the snapshot on the command
@@ -197,7 +197,7 @@ main = do
197197
can be compiled and run, with arguments, with:
198198

199199
~~~text
200-
stack --snapshot lts-23.14 script --package acme-missiles --compile MyScript.hs -- "Don't panic!" "Duck and cover!"
200+
stack --snapshot lts-23.17 script --package acme-missiles --compile MyScript.hs -- "Don't panic!" "Duck and cover!"
201201
~~~
202202

203203
`acme-missiles-0.3` (the most recent version in the package index) will be used.
@@ -217,7 +217,7 @@ snapshot as an extra-dep. The `stack script` command is specified using Stack's
217217

218218
~~~haskell
219219
{- stack script
220-
-- snapshot lts-23.14
220+
-- snapshot lts-23.17
221221
-- extra-dep acme-missiles-0.2
222222
-- package acme-missiles
223223
-}
@@ -319,7 +319,7 @@ A Haskell source file `MyScript.hs`, as follows:
319319

320320
~~~haskell
321321
{- stack script
322-
--snapshot lts-23.14
322+
--snapshot lts-23.17
323323
-}
324324

325325
{-# LANGUAGE OverloadedStrings #-}

doc/configure/yaml/non-project.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -299,7 +299,7 @@ snapshots like `ghc-9.8.4`. This can be used to override the compiler for a
299299
Stackage snapshot, like this:
300300

301301
~~~yaml
302-
snapshot: lts-23.14
302+
snapshot: lts-23.17
303303
compiler: ghc-9.8.3
304304
compiler-check: match-exact
305305
~~~

doc/configure/yaml/project.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@ installation, and various settings like build flags. It is also called a
4040
resolver since a snapshot states how dependencies are resolved. There are
4141
currently four snapshot types:
4242

43-
* LTS Haskell snapshots, e.g. `snapshot: lts-23.14`
44-
* Stackage Nightly snapshots, e.g. `snapshot: nightly-2025-02-15`
43+
* LTS Haskell snapshots, e.g. `snapshot: lts-23.17`
44+
* Stackage Nightly snapshots, e.g. `snapshot: nightly-2025-04-05`
4545
* No snapshot, just use packages shipped with the compiler. For GHC this looks
4646
like `snapshot: ghc-9.8.4`
4747
* Custom snapshot, via a URL or relative file path. For further information, see

doc/topics/Stack_and_VS_Code.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ VS Code with the 'Haskell' extension can be configured in a number of ways:
150150

151151
Each time that a snapshot is used that references a different version of
152152
GHC, then GHCup must be used to install it (if GHCup has not already
153-
installed that version). For example, to use `snapshot: lts-23.14`
153+
installed that version). For example, to use `snapshot: lts-23.17`
154154
(GHC 9.8.4), the command `ghcup install ghc 9.8.4` must have been used
155155
to install GHC 9.8.4. That may be a minor inconvenience for some people,
156156
as one the primary benefits of Stack over other tools for building

doc/topics/custom_snapshot.md

+11-11
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ available in snapshots to ensure reproducibility.
1818
for snapshot specification.
1919

2020
~~~yaml
21-
snapshot: lts-23.14 # Inherits GHC version and package set
21+
snapshot: lts-23.17 # Inherits GHC version and package set
2222
compiler: ghc-9.8.3 # Overwrites GHC version in the snapshot, optional
2323

2424
# Additional packages, follows extra-deps syntax
@@ -62,35 +62,35 @@ custom snapshot, due to Stack sharing snapshot packages whenever possible.
6262

6363
### Overriding the compiler
6464

65-
The following snapshot specification will be identical to `lts-23.14`, but
65+
The following snapshot specification will be identical to `lts-23.17`, but
6666
instead use `ghc-9.8.3` instead of `ghc-9.8.4`:
6767

6868
~~~yaml
69-
snapshot: lts-23.14
69+
snapshot: lts-23.17
7070
compiler: ghc-9.8.3
7171
~~~
7272

7373
### Dropping packages
7474

75-
The following snapshot specification will be identical to `lts-23.14`, but
75+
The following snapshot specification will be identical to `lts-23.17`, but
7676
without the `text` package in our snapshot. Removing this package will cause all
7777
the packages that depend on `text` to be unbuildable, but they will still be
7878
present in the snapshot.
7979

8080
~~~yaml
81-
snapshot: lts-23.14
81+
snapshot: lts-23.17
8282
drop-packages:
8383
- text
8484
~~~
8585

8686
### Hiding packages
8787

88-
The following snapshot specification will be identical to `lts-23.14`, but the
88+
The following snapshot specification will be identical to `lts-23.17`, but the
8989
`text` package will be hidden when registering. This will affect, for example,
9090
the import parser in the script command.
9191

9292
~~~yaml
93-
snapshot: lts-23.14
93+
snapshot: lts-23.17
9494
hidden:
9595
- text
9696
~~~
@@ -101,11 +101,11 @@ In order to specify GHC options for a package, you use the same syntax as the
101101
[ghc-options](../configure/yaml/non-project.md#ghc-options) key for build
102102
configuration.
103103

104-
The following snapshot specification will be identical to `lts-23.14`, but
104+
The following snapshot specification will be identical to `lts-23.17`, but
105105
provides `-O1` as a ghc-option for `text`:
106106

107107
~~~yaml
108-
snapshot: lts-23.14
108+
snapshot: lts-23.17
109109
packages:
110110
- text-2.0.2
111111
ghc-options:
@@ -124,11 +124,11 @@ packages in the `packages` list, rather than all packages in the snapshot.
124124

125125
In order to specify Cabal flags for a package, you use the same syntax as the
126126
[flags](../configure/yaml/project.md#flags) key for build configuration. The
127-
following snapshot specification will be identical to `lts-23.14`, but
127+
following snapshot specification will be identical to `lts-23.17`, but
128128
it enables the `developer` Cabal flag:
129129

130130
~~~yaml
131-
snapshot: lts-23.14
131+
snapshot: lts-23.17
132132
packages:
133133
- text-2.0.2
134134
flags:

doc/topics/haskell_and_c_code.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ executables:
8383

8484
The project's `stack.yaml` file only needs to identify a snapshot:
8585
~~~yaml
86-
snapshot: lts-23.14 # GHC 9.8.4
86+
snapshot: lts-23.17 # GHC 9.8.4
8787
~~~
8888

8989
This example project can be built with Stack in the normal way (`stack build`),
@@ -220,7 +220,7 @@ The `include-dirs` key will cause the specified directory (again,
220220

221221
The project's `stack.yaml` file only needs to identify a snapshot:
222222
~~~yaml
223-
snapshot: lts-23.14 # GHC 9.8.4
223+
snapshot: lts-23.17 # GHC 9.8.4
224224
~~~
225225

226226
This example project can be built with Stack in the normal way (`stack build`),

0 commit comments

Comments
 (0)