Upgrade to GHC 9.6.6#4568
Upgrade to GHC 9.6.6#4568purefunctor merged 45 commits intopurescript:masterpurescript/purescript:masterfrom
Conversation
- Switch from `ansi-wl-pprint` to `prettyprinter` - Add several `extra-deps`
…hip for Ubuntu 24.04
Yes, they are going again 🙂
Good question - it looks like GitHub runners can do Linux ARM64 as well these days, which is great and it means we could replace the self-hosted things with that. I'd be happy to have them replaced with GitHub-hosted ones (and arguably we are already doing that given that we're running |
|
The arm64 Linux runner seems to work well: https://github.com/ad-si/purescript/actions/runs/14227397693 @f-f Let me remove the self-hosted runners then, ok? |
|
@ad-si ah yeah these builds look good. We're good to remove the self hosted runners! Could we use |
But Ubuntu is only the host image, and it's actually build in the haskell:9.6.6 image, right? |
Oh sorry, of course 😄 |
|
@ad-si one last thing: could you add to the changelog the fact that we are bumping the minimum required glibc from |
|
🙌 … just waiting for @purefunctor to release the new |
|
Just pushed the update for (The HLS for 9.6.7 is still not available via GHCup. So I would do that in a follow up PR.) |
purefunctor
left a comment
There was a problem hiding this comment.
Waiting on CI then merging
These errors are present in the Cabal build and seem to be caused by Cabal and Stack using different versions of mtl, with 2.3.x notably changing re-exports for certain modules.
There was a problem hiding this comment.
Once tests go green I think this should be good to merge. One caveat here is that Cabal builds are currently not working because it's pinned to haskeline-0.8.2, which avoids libtinfo from being added to the build. Our stack build works because of allow-newer-deps:
Resolving dependencies...
Error: [Cabal-7107]
Could not resolve dependencies:
[__0] trying: cheapskate-0.1.1.2 (user goal)
[__1] trying: base-4.18.2.1/installed-4.18.2.1 (dependency of cheapskate)
[__2] trying: purescript-0.15.15 (user goal)
[__3] next goal: haskeline (dependency of purescript)
[__3] rejecting: haskeline-0.8.2.1/installed-0.8.2.1 (conflict: purescript => haskeline==0.8.2)
[__3] skipping: haskeline; 0.8.3.0, 0.8.2.1 (has the same characteristics that caused the previous version to fail: excluded by constraint '==0.8.2' from 'purescript')
[__3] rejecting: haskeline-0.8.2 (conflict: base==4.18.2.1/installed-4.18.2.1, haskeline => base>=4.9 && <4.18)
[__3] skipping: haskeline; 0.8.1.3, 0.8.1.2, 0.8.1.1, 0.8.1.0, 0.8.0.1, 0.8.0.0, 0.7.5.0, 0.7.4.3, 0.7.4.2, 0.7.4.1, 0.7.4.0, 0.7.3.1, 0.7.3.0, 0.7.2.3, 0.7.2.2, 0.7.2.1, 0.7.2.0, 0.7.1.3, 0.7.1.2, 0.7.1.1, 0.7.1.0, 0.7.0.3, 0.7.0.2, 0.7.0.1, 0.7.0.0, 0.6.4.7, 0.6.4.6, 0.6.4.5, 0.6.4.4, 0.6.4.3, 0.6.4.2, 0.6.4.1, 0.6.4.0, 0.6.3.2, 0.6.3.1, 0.6.3, 0.6.2.4, 0.6.2.3, 0.6.2.2, 0.6.2.1, 0.6.2 (has the same characteristics that caused the previous version to fail: excludes 'base' version 4.18.2.1)
[__3] rejecting: haskeline-0.6.1.6 (conflict: purescript => haskeline==0.8.2)
[__3] skipping: haskeline; 0.6.1.5, 0.6.1.3, 0.6.1.2, 0.6.1.1, 0.6.1, 0.6.0.1, 0.6, 0.5.0.1, 0.5, 0.4, 0.3.2, 0.3.1, 0.3, 0.2.1, 0.2 (has the same characteristics that caused the previous version to fail: excluded by constraint '==0.8.2' from 'purescript')
[__3] fail (backjumping, conflict set: base, haskeline, purescript)
After searching the rest of the dependency tree exhaustively, these were the goals I've had most trouble fulfilling: purescript, base, haskeline, cheapskate
Try running with --minimize-conflict-set to improve the error message.
#4573 should hopefully slay the libtinfo dragon once and forall in the near future.
* Upgrade CI * Back to the previous haskell image * Use new spavo * Upgrade node to latest supported lts * Upgrade to GHC 9.6.6 - Switch from `ansi-wl-pprint` to `prettyprinter` - Add several `extra-deps` * Upgrade CI to use GHC 9.6.6 * Upgrade GitHub Actions * CI: Upgrade to macos-15, specify exact version of Ubuntu * CI: Upgrade Stack from 2.15.1 to 3.3.1 * CI: Include stack.yaml.lock file and use it for the cache's file hashes * CI: Also include `purescript.cabal` in cache's file hashes * Update documentation * CI: Remove obsolete directory ownership changes * CI: Add safe.directory configuration for Ubuntu 24.04 * CI: Fix container ownership issues in workflow configuration * CI: Simplify container configuration and fix working directory ownership for Ubuntu 24.04 * Update version ranges of dependencies * Update Cabal version range and allow newer dependencies in stack configuration * Update Cabal version to 3.10.3.0 in stack configuration * Enable allow-newer option in stack configuration * Update dependency versions in purescript.cabal and stack.yaml * Update weeder installation and streamline CI workflow * Fix wrapping of run commands * Remove obsolete quotes * Add missing `--name` flag to `spago init` * Add Adrian Sieber to contributors * Add changelog entry for GHC upgrade * Use new weeder.toml config file format * Install missing `jq` dependency * CI: Use `-y` flag for all `apt-get install` runs * Vendor pattern-arrows * Run haskell container on ubuntu-latest, use macos-13 and macos-14 * CI: Use strings instead of arrays for matrix.os * Fix Hlint warnings * Add arm64 Linux to testing matrix * Correctly match only self-hosted Linux runner * Don't use self-hosted runners anymore, as GitHub runners cover all cases * Mention glibc bump from `2.28` to `2.31` in changelog * Upgrade to latest version of aeson-better-errors from Hackage * Remove obsolete `allow-newer` section, delete .stack-work on make clean * Re-add `allow-newer` block, improve dependency bounds * Downgrade haskeline to 0.8.2 to avoid libtinfo issues * Update aeson-better-errors and use cheapskate fork * Fix build errors in stack These errors are present in the Cabal build and seem to be caused by Cabal and Stack using different versions of mtl, with 2.3.x notably changing re-exports for certain modules. --------- Co-authored-by: Fabrizio Ferrai <fabrizio.ferrai@gmail.com> Co-authored-by: Justin Garcia <purefunctor@gmail.com>
ansi-wl-pprinttoprettyprinterextra-depsThis is a first starting point as a few things still need to be clarified:
I added 3 GitHub dependencies with fixes for the respective libraries.
(This is deprecated and should be replaced with jgm/commonmark-hs)
There are several options how to deal with it:
(Could be hard since the repos don't seem to be actively maintained anymore)
I would actually just use it like this. The version is exactly pinned through the commit hash, and we're dependent on GitHub in many ways already anyways.
What do you think?
TODOs: