Skip to content

Fix #6160 Move Stack on to GHC 9.4.6 #6161

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Aug 21, 2023
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
4 changes: 2 additions & 2 deletions .github/workflows/integration-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ on:
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

# As of 8 August 2023, ubuntu-latest, windows-latest and macos-latest come
# As of 21 August 2023, ubuntu-latest, windows-latest and macos-latest come
# with Stack 2.11.1 (2.9.3 on macos-latest) and GHC 9.6.2. windows-latest comes
# with NSIS 3.08, for which the default value of the 'Unicode' installer
# attribute is 'true'. However, that is not the 'large strings' build of NSIS
Expand Down Expand Up @@ -81,7 +81,7 @@ jobs:
nix-channel --add https://nixos.org/channels/nixos-23.05 nixpkgs
# Download the Nix expressions for all subscribed channels...
#
# As at 2023-08-11, nixos-23.05 provides GHC 9.2.8.
# As at 2023-08-21, nixos-23.05 provides GHC 9.2.8.
nix-channel --update
# The NIX_PATH environment variable sets a list of directories used to
# look up the location of Nix expressions using paths enclosed in
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/unit-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ on:
- rc/**
workflow_dispatch:

# As of 9 August 2023, ubuntu-latest, windows-latest and macos-latest come
# As of 21 August 2023, ubuntu-latest, windows-latest and macos-latest come
# with Stack 2.11.1 (2.9.3 on macos-latest) and GHC 9.6.2.

jobs:
Expand Down
7 changes: 4 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -285,9 +285,10 @@ 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 (May 2023) the package versions are primarily
ones in Stackage snapshot LTS Haskell 20.26 (for GHC 9.2.8), together with
extra-dep `Cabal-3.8.1.0`.
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`.

A Stack executable makes use of Cabal (the library) through a small 'Setup'
executable that it compiles from Haskell source code. The executable compiles
Expand Down
145 changes: 74 additions & 71 deletions cabal.config
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@ constraints:
, Cabal ==3.8.1.0
, Cabal-syntax ==3.8.1.0
, Glob ==0.10.2
, OneTuple ==0.3.1
, QuickCheck ==2.14.2
, OneTuple ==0.4.1.1
, QuickCheck ==2.14.3
, StateVar ==1.2.2
, Win32 ==2.12.0.1
, aeson ==2.0.3.0
, aeson ==2.1.2.1
, aeson-warning-parser ==0.1.0
, annotated-wl-pprint ==0.7.0
, ansi-terminal ==1.0
Expand All @@ -16,79 +16,85 @@ constraints:
, asn1-encoding ==0.9.6
, asn1-parse ==0.9.5
, asn1-types ==0.3.4
, assoc ==1.0.2
, assoc ==1.1
, async ==2.2.4
, attoparsec ==0.14.4
, attoparsec-iso8601 ==1.0.2.1
, attoparsec-iso8601 ==1.1.0.0
, auto-update ==0.1.6
, base ==4.16.4.0
, base-compat ==0.12.2
, base-compat-batteries ==0.12.2
, base-orphans ==0.8.8.2
, base ==4.17.2.0
, base-compat ==0.12.3
, base-compat-batteries ==0.12.3
, base-orphans ==0.9.0
, base16-bytestring ==1.0.2.0
, base64-bytestring ==1.2.1.0
, basement ==0.0.15
, basement ==0.0.16
, bifunctors ==5.5.15
, binary ==0.8.9.0
, binary ==0.8.9.1
, bitvec ==1.1.5.0
, blaze-builder ==0.4.2.2
, blaze-html ==0.9.1.2
, blaze-markup ==0.8.2.8
, byteorder ==1.0.4
, bytestring ==0.11.4.0
, casa-client ==0.0.1
, bytestring ==0.11.5.1
, casa-client ==0.0.2
, casa-types ==0.0.2
, case-insensitive ==1.2.1.0
, cereal ==0.5.8.3
, clock ==0.8.3
, clock ==0.8.4
, cmdargs ==0.10.22
, colour ==2.3.6
, comonad ==5.0.8
, companion ==0.1.0
, conduit ==1.3.5
, conduit-combinators ==1.3.0
, conduit-extra ==1.3.6
, connection ==0.3.1
, containers ==0.6.5.1
, containers ==0.6.7
, contravariant ==1.5.5
, cookie ==0.4.6
, cryptohash-sha256 ==0.11.102.1
, cryptonite ==0.30
, cryptonite-conduit ==0.2.2
, data-array-byte ==0.1.0.1
, crypton ==0.33
, crypton-conduit ==0.2.3
, crypton-connection ==0.3.1
, crypton-x509 ==1.7.6
, crypton-x509-store ==1.6.9
, crypton-x509-system ==1.6.7
, crypton-x509-validation ==1.6.12
, data-default-class ==0.1.2.0
, data-fix ==0.3.2
, deepseq ==1.4.6.1
, deepseq ==1.4.8.0
, digest ==0.0.1.7
, directory ==1.3.6.2
, directory ==1.3.7.1
, distributive ==0.6.2.1
, dlist ==1.0
, easy-file ==0.2.5
, echo ==0.1.4
, ed25519 ==0.0.5.0
, exceptions ==0.10.4
, extra ==1.7.13
, fast-logger ==3.1.2
, exceptions ==0.10.5
, extra ==1.7.14
, fast-logger ==3.2.2
, file-embed ==0.0.15.0
, filelock ==0.1.1.6
, filelock ==0.1.1.7
, filepath ==1.4.2.2
, foldable1-classes-compat ==0.1
, fsnotify ==0.4.1.0
, generic-deriving ==1.14.4
, ghc-bignum ==1.2
, ghc-boot-th ==9.2.7
, ghc-prim ==0.8.0
, githash ==0.1.6.3
, generic-deriving ==1.14.5
, generically ==0.1.1
, ghc-bignum ==1.3
, ghc-boot-th ==9.4.6
, ghc-prim ==0.9.1
, githash ==0.1.7.0
, hackage-security ==0.6.2.3
, hashable ==1.4.2.0
, hashable ==1.4.3.0
, hi-file-parser ==0.1.4.0
, hinotify ==0.4.1
, hourglass ==0.2.12
, hpack ==0.35.2
, hpack ==0.35.4
, hpc ==0.6.1.0
, http-api-data ==0.4.3
, http-api-data ==0.5
, http-client ==0.7.13.1
, http-client-tls ==0.3.6.1
, http-conduit ==2.3.8
, http-download ==0.2.0.0
, http-client-tls ==0.3.6.2
, http-conduit ==2.3.8.1
, http-download ==0.2.1.0
, http-types ==0.12.3
, indexed-traversable ==0.1.2.1
, indexed-traversable-instances ==0.1.1.2
Expand All @@ -100,15 +106,15 @@ constraints:
, lift-type ==0.1.1.1
, lifted-base ==0.2.3.12
, lukko ==0.1.1.3
, megaparsec ==9.2.2
, memory ==0.17.0
, microlens ==0.4.12.0
, megaparsec ==9.3.1
, memory ==0.18.0
, microlens ==0.4.13.1
, microlens-mtl ==0.2.0.3
, microlens-th ==0.4.3.13
, mime-types ==0.1.0.9
, mime-types ==0.1.1.0
, mintty ==0.1.4
, monad-control ==1.0.3.1
, monad-logger ==0.3.39
, monad-logger ==0.3.40
, monad-loops ==0.4.3
, mono-traversable ==1.0.15.3
, mtl ==2.2.2
Expand All @@ -122,80 +128,77 @@ constraints:
, open-browser ==0.2.1.0
, optparse-applicative ==0.18.1.0
, optparse-simple ==0.1.1.4
, pantry ==0.9.1
, parsec ==3.1.15.0
, pantry ==0.9.2
, parsec ==3.1.16.1
, parser-combinators ==1.3.0
, path ==0.9.2
, path-io ==1.7.0
, path-io ==1.8.1
, path-pieces ==0.2.1
, pem ==0.2.4
, persistent ==2.14.5.0
, persistent ==2.14.5.1
, persistent-sqlite ==2.13.1.1
, persistent-template ==2.12.0.0
, pretty ==1.1.3.6
, prettyprinter ==1.7.1
, prettyprinter-ansi-terminal ==1.1.3
, primitive ==0.7.3.0
, process ==1.6.16.0
, primitive ==0.8.0.0
, process ==1.6.17.0
, project-template ==0.2.1.0
, random ==1.2.1.1
, resource-pool ==0.2.3.2
, resource-pool ==0.4.0.0
, resourcet ==1.2.6
, retry ==0.9.3.1
, rio ==0.1.22.0
, rio-orphans ==0.1.2.0
, rio-prettyprint ==0.1.4.0
, rts ==1.0.2
, safe ==0.3.19
, safe-exceptions ==0.1.7.3
, safe-exceptions ==0.1.7.4
, scientific ==0.3.7.0
, semialign ==1.2.0.1
, semialign ==1.3
, semigroupoids ==5.3.7
, silently ==1.2.5.3
, socks ==0.6.1
, split ==0.2.3.5
, splitmix ==0.1.0.4
, stack ==2.12.0
, static-bytes ==0.1.0
, stm ==2.5.0.2
, stm ==2.5.1.0
, stm-chans ==3.0.0.9
, streaming-commons ==0.2.2.6
, strict ==0.4.0.1
, tagged ==0.8.6.1
, strict ==0.5
, tagged ==0.8.7
, tar ==0.5.1.1
, tar-conduit ==0.3.2
, template-haskell ==2.18.0.0
, tar-conduit ==0.4.0
, template-haskell ==2.19.0.0
, temporary ==1.3
, text ==1.2.5.0
, text ==2.0.2
, text-metrics ==0.3.2
, text-short ==0.1.5
, th-abstraction ==0.4.5.0
, th-compat ==0.1.4
, th-lift ==0.8.3
, th-lift ==0.8.4
, th-lift-instances ==0.1.20
, these ==1.1.1.1
, time ==1.11.1.1
, these ==1.2
, time ==1.12.2
, time-compat ==1.9.6.1
, tls ==1.5.8
, tls ==1.7.0
, transformers ==0.5.6.2
, transformers-base ==0.4.6
, transformers-compat ==0.7.2
, typed-process ==0.2.11.0
, unix ==2.7.2.2
, unix-compat ==0.5.4
, unix-time ==0.4.9
, unliftio ==0.2.24.0
, unix ==2.7.3
, unix-compat ==0.7
, unix-time ==0.4.10
, unliftio ==0.2.25.0
, unliftio-core ==0.2.1.0
, unordered-containers ==0.2.19.1
, uuid-types ==1.0.5
, vault ==0.3.1.5
, vector ==0.12.3.1
, vector-algorithms ==0.8.0.4
, vector ==0.13.0.0
, vector-algorithms ==0.9.0.1
, vector-stream ==0.1.0.0
, witherable ==0.4.2
, x509 ==1.7.7
, x509-store ==1.6.9
, x509-system ==1.6.7
, x509-validation ==1.6.12
, yaml ==0.11.11.0
, yaml ==0.11.11.2
, zip-archive ==0.4.3
, zlib ==0.6.3.0
4 changes: 2 additions & 2 deletions cabal.project
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@
-- specified by the snapshot specifed in Stack's project-level YAML
-- configuration file (`stack.yaml`). The relevant version of GHC can be
-- confirmed by reviewing the snapshot on Stackage. For example, at:
-- https://www.stackage.org/lts-20.26/cabal.config.
-- https://www.stackage.org/lts-21.8/cabal.config.
--
with-compiler: ghc-9.2.8
with-compiler: ghc-9.4.6
import: cabal.config
packages: .
24 changes: 12 additions & 12 deletions doc/GUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -248,15 +248,15 @@ this:

~~~yaml
resolver:
url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/20/26.yaml
url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/21/8.yaml
packages:
- .
~~~

The value of the `resolver` key tells Stack *how* to build your package: which
GHC version to use, versions of package dependencies, and so on. Our value here
says to use [LTS Haskell 20.26](https://www.stackage.org/lts-20.26), which
implies GHC 9.2.8 (which is why `stack build` installs that version of GHC if it
says to use [LTS Haskell 21.8](https://www.stackage.org/lts-21.8), which
implies GHC 9.4.6 (which is why `stack build` installs that version of GHC if it
is not already available to Stack). There are a number of values you can use for
`resolver`, which we'll cover later.

Expand Down Expand Up @@ -503,7 +503,7 @@ also known as *snapshots*. We mentioned the LTS resolvers, and you can get quite
a bit of information about it at
[https://www.stackage.org/lts](https://www.stackage.org/lts), including:

* The appropriate resolver value (`resolver: lts-20.26`, as is currently the
* The appropriate resolver value (`resolver: lts-21.8`, as is currently the
latest LTS)
* The GHC version used
* A full list of all packages available in this snapshot
Expand All @@ -522,32 +522,32 @@ towards by default as well).

## Resolvers and changing your compiler version

Let's explore package sets a bit further. Instead of `lts-20.26`, let's change
Let's explore package sets a bit further. Instead of `lts-21.8`, let's change
our `stack.yaml` file to use the
[latest nightly](https://www.stackage.org/nightly). Right now, this is currently
2023-05-26 - please see the resolver from the link above to get the latest.
2023-08-21 - please see the resolver from the link above to get the latest.

Then, commanding `stack build` again will produce:

~~~text
stack build
# Downloaded nightly-2023-05-26 build plan.
# Downloaded nightly-2023-08-21 build plan.
# build output ...
~~~

We can also change resolvers on the command line, which can be useful in a
Continuous Integration (CI) setting, like on Travis. For example, command:

~~~text
stack --resolver lts-18.28 build
# Downloaded lts-18.28 build plan.
stack --resolver lts-20.26 build
# Downloaded lts-20.26 build plan.
# build output ...
~~~

When passed on the command line, you also get some additional "short-cut"
versions of resolvers: `--resolver nightly` will use the newest Nightly resolver
available, `--resolver lts` will use the newest LTS, and `--resolver lts-20`
will use the newest LTS in the 20.x series. The reason these are only available
available, `--resolver lts` will use the newest LTS, and `--resolver lts-21`
will use the newest LTS in the 21.x series. The reason these are only available
on the command line and not in your `stack.yaml` file is that using them:

1. Will slow down your build (since Stack then needs to download information on
Expand Down Expand Up @@ -1340,7 +1340,7 @@ yields output like:

~~~text
Run from outside a project, using implicit global project config
Using latest snapshot resolver: lts-20.26
Using latest snapshot resolver: lts-21.8
Writing global (non-project-specific) config file to: /home/michael/.stack/global/stack.yaml
Note: You can change the snapshot via the resolver field there.
I installed the stm package via --package stm
Expand Down
Loading