ghc: 9.8.4 -> 9.10.3; Stackage LTS: 23.27 -> 24.9#429810
ghc: 9.8.4 -> 9.10.3; Stackage LTS: 23.27 -> 24.9#429810sternenseemann merged 270 commits intostagingfrom
Conversation
All these packages are the default from Stackage now, curiously even the ghc-* packages that have >= 9.12 versions.
cabal2nix-unstable is mostly used for regenerating the Haskell package set. Thus we should aim to make it quick to rebuild in case its hash changes because of Haskell related changes. - cabal2nix is not fussy about the Nix version it uses for nix-env(1) and we can just assume it is already in PATH like we do for maintainers/scripts/haskell/*. - nix-prefetch-scripts causes the most trouble since its python dependencies depend on pandoc, so many Haskell changes require an additional Python rebuild when building cabal2nix-unstable. nix-prefetch-scripts is most likely installed and not necessary in many cases, e.g. hackage2nix doesn't need them which is the main use we have for cabal2nix-unstable. For the update scripts that do need them, we add them to the used nix-shell explicitly.
It is pretty much impossible to get os-string to work with GHC < 9.2 since it has a hard dependency on bytestring >= 0.11 which only GHC 9.2 started to ship.
This matches what Stackage LTS 23 and thus we were using with GHC < 9.10 before: https://www.stackage.org/lts-23/package/os-string This is actually not ideal since these GHC versions also ship versions of filepath that may have module collisions with os-string, so using os-string-1.0.0 (like for GHC < 9.2) would be better in some situations. Unfortunately, it looks like the OsPath/os-string transition wasn't completely thought through and e.g. hashable-1.4.7.0 (which we were also using with Stackage LTS 23) has a hard dependency on os-string for GHC >= 9.2, so we don't have much of a choice here. The combination of a dependency on filepath and os-string doesn't seem to be super common thus far, but down the line we may have trouble getting such packages to work with GHC < 9.10 && >= 9.2.
This matches what we wer doing for Stackage LTS 23 with GHC < 9.10: https://www.stackage.org/lts-23/package/hashable hashable-1.5.0.0 introduced a hard dependency on base >= 4.18 which means GHC >= 9.6 is required. Upstream promises that hashable == 1.4.* will continue being maintained “for the time being”: https://github.com/haskell-unordered-containers/hashable/blob/master/CHANGES.md#version-1500
Finally official patches for well-typed/cborg#309, so I feel comfortable applying them unconditionally.
This comment was marked as resolved.
This comment was marked as resolved.
Regressions due to QuickCheck ≥ 2.15(so far)
|
See 43ff75c408b7b for background.
See 43ff75c408b7b for background.
We can use the latest version by default now. Note that this will BREAK htree for GHC < 9.10.
chell-quickcheck can't be built with QuickCheck >= 2.15 unfortunately, something we should look into in the future.
The necessary data-default version is now part of Stackage.
|
The following build fine with jailbreaking, thus are simple upstream fix away from not being marked as broken: [🐧❌] haskellPackages.arbtt @rvl |
|
Just fixed nvfetcher. I'll release a new version with some other changes later, but for now, should I do a hackage revision immediately? |
|
Both revision and new release would work for nvfetcher. |
This seems the best course of action: We are still only performing a non-breaking update compared to Stackage LTS (which will fix a few builds) while being able to execute the test suite. haskellPackages.ghc-tcplugins-extra: 0.4.8 -> 0.5 ghc-typelits-natnormalise requires >= 0.5 since 0.7.11. It does not look like the 0.5 update actually contains a breaking changes, so this update is probably safe: clash-lang/ghc-tcplugins-extra#29 (comment) clash-lang/ghc-tcplugins-extra@702dda2...v0.5.0
Created with mark-broken.sh
|
Things to look into fixing on staging(-next):
|
|
This pull request has been mentioned on NixOS Discourse. There might be relevant details there: https://discourse.nixos.org/t/call-for-contributions-we-are-updating-to-ghc-9-10-3/67756/6 |
This Merge
This PR is the regular merge of the
haskell-updatesbranch intostaging. This time we are upgrading our default GHC version from the 9.8 to the 9.10 series and Stackage LTS from 23 to 24 to match.This branch is being continually built and tested by hydra at https://hydra.nixos.org/jobset/nixpkgs/haskell-updates. You may be able to find an up-to-date Hydra build report at cdepillabout/nix-haskell-updates-status.
A Stackage/default compiler upgrade is a big job, so we hope for contributions from outside the core @NixOS/haskell team. Try checking for the state of your favorite packages on Hydra and attempt to fix regressions.
haskellPackages Workflow Summary
Our workflow is currently described in
pkgs/development/haskell-modules/HACKING.md.The short version is this:
haskell-updates(normally at the beginning of a merge window).haskell-updatesintostagingevery two weeks.mergeablejob is succeeding on hydra.maintainedpackage is still broken at the time of merge, we will only merge if the maintainer has been pinged 7 days in advance. (If you care about a Haskell package, become a maintainer!)More information about Haskell packages in nixpkgs can be found in the nixpkgs manual.
This is the follow-up to #424162. Come to #haskell:nixos.org if you have any questions.