Skip to content

haskellPackages: update stackage and hackage#127438

Merged
maralorn merged 45 commits intomasterfrom
haskell-updates
Jun 22, 2021
Merged

haskellPackages: update stackage and hackage#127438
maralorn merged 45 commits intomasterfrom
haskell-updates

Conversation

@maralorn
Copy link
Copy Markdown
Member

This Merge

This PR is the regular merge of the haskell-updates branch into master.

This branch is being continually built and tested by hydra at https://hydra.nixos.org/jobset/nixpkgs/haskell-updates.

I will aim to merge this PR by 2021-06-27. If I can merge it earlier, there might be successor PRs in that time window. As part of our rotation @expipiplus1 will continue these merges from 2021-06-28 to 2021-07-11.

haskellPackages Workflow Summary

Our workflow is currently described in
pkgs/development/haskell-modules/HACKING.md.

The short version is this:

  • We regularly update the Stackage and Hackage pins on haskell-updates (normally at the beginning of a merge window).
  • The community fixes builds of Haskell packages on that branch.
  • We aim at at least one merge of haskell-updates into master every two weeks.
  • We only do the merge if the mergeable job is succeeding on hydra.
  • If a maintained package 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!)

This is the follow-up to #126693.

@github-actions github-actions bot added the 6.topic: haskell General-purpose, statically typed, purely functional programming language label Jun 19, 2021
@maralorn maralorn changed the title haskellPackages: stackage-nightly 2021-06-10 -> 2021-06-19 haskellPackages: update stackage and hackage Jun 19, 2021
This commit has been generated by maintainers/scripts/haskell/regenerate-hackage-packages.sh
@maralorn
Copy link
Copy Markdown
Member Author

maralorn commented Jun 19, 2021

Hey everyone.

stackage nightly switched to ghc 9. Something we don‘t feel quite ready for. So I force pushed to switch to stackage LTS.

I am sorry for the fixes that had already happened. I have them saved locally so I can cherry-pick them, when they are necessary.

@sternenseemann
Copy link
Copy Markdown
Member

sternenseemann commented Jun 19, 2021 via email

@maralorn
Copy link
Copy Markdown
Member Author

Is LTS on 8.10.5?

No, LTS is on 8.10.4, but I don‘t think that matters.

@sternenseemann
Copy link
Copy Markdown
Member

I guess they ran into the same issues as we did, as they also seem to care about tests.

sternenseemann and others added 7 commits June 19, 2021 19:37
Stackage LTS 18 has brought cryptonite 0.29, so this override breaks evaluation.
Add assert which will fail when the overrides can be removed. Upstream
has patched the bounds, but hasn't made a new release nor a hackage
revision so far.
stackage LTS 18 luckily updated haskell-gi and related libraries to
0.25, so we can remove a lot of overrides. I also unrestricted some of
them in configuration-hackage2nix/main.yml and removed the overrides
updating them in configuration-common.nix (I guess the person doing
the upgrades thought those libraries were also in stackage).
haskellPackages: remove haskell-gi overrides obsolete due to lts
Now that stackage lts 18 has version 5.0.0, we can upgrade futhark.
@ofborg ofborg bot added 8.has: package (new) This PR adds a new package 10.rebuild-darwin: 501+ This PR causes many rebuilds on Darwin and should normally target the staging branches. 10.rebuild-darwin: 2501-5000 This PR causes many rebuilds on Darwin and should target the staging branches. 10.rebuild-linux: 501+ This PR causes many rebuilds on Linux and should normally target the staging branches. 10.rebuild-linux: 2501-5000 This PR causes many rebuilds on Linux and should target the staging branches. labels Jun 20, 2021
@maralorn
Copy link
Copy Markdown
Member Author

@roberth With the bump to newest cachix, I think we can remove the custom cachix patch? At least it doesn‘t apply anymore. But without it I get compile errors on hercules-ci-agent. I guess it’s better you have a look at it.

@maralorn
Copy link
Copy Markdown
Member Author

Last other outstanding issue now are rel8 tests on darwin.

roberth added 3 commits June 22, 2021 09:47
This commit has been generated by maintainers/scripts/haskell/update-hackage.sh
This commit has been generated by maintainers/scripts/haskell/regenerate-hackage-packages.sh
@maralorn
Copy link
Copy Markdown
Member Author

Hey @roberth, thank you for fixing that build error.

One remark just to be sure for the future. We now do hackage bumps more rarely, we try to do one bump at the beginning of the merge window and then stabilize everything. Doing random bumps in between has the danger of breaking new stuff. This time the risk was very low because I had done a bump just a few hours before, but in general

please don‘t just bump Hackage before coordinating with the person opening the haskell-updates PR.

sternenseemann and others added 3 commits June 22, 2021 12:34
haskellPackages.dual-tree: downgrade to 0.2.2.1

Since the resolution of the following issues, we can remove a lot of
jailbreaks:

* diagrams/diagrams-core#112
* diagrams/diagrams-cairo#77
* diagrams/diagrams-rasterific#63

Some we need to keep since the base 4.15 compatibility updates were
sometimes bundled with adjustments for monoid-extras 0.6 / diagrams-*
1.5 which we can't yet update to.

Downgrade dual-tree since 2.2.3.0 requires monoid-extras 0.6 (although
it seemed to compile with 0.5…).
@roberth
Copy link
Copy Markdown
Member

roberth commented Jun 22, 2021

please don‘t just bump Hackage before coordinating with the person opening the haskell-updates PR.

Noted. This time I had to make 4 releases, and based on the commits in the PR I inferred running those scripts was the way to go. Next time I'll ask.

Instead of the automatic commits, is git add --patch a good way to do it in the future?

@sternenseemann
Copy link
Copy Markdown
Member

sternenseemann commented Jun 22, 2021

Partial updates via hackage2nix won't work at all, unfortunately. Because running regenerate-hackage-packages.sh will revert the changes, unless all-cabal-hashes is updated as well. Thus updating only certain packages is only really possible via overriding at the moment.

I have been toying with a script to freeze the version bounds from hackage at a certain point in time which we would allow us to:

  • Update all-cabal-hashes as we please
  • Update certain packages beyond the freeze
  • Update all of hackage by just deleting and regenerating the freeze

This would especially be great for the stable branch, so my proposal would be to experiment with that there first. (Also I'll have to find the time to actually do it).

sternenseemann and others added 3 commits June 22, 2021 16:00
The tests use pgrep which is not packaged for darwin yet as we are
lacking some private / non open source headers for it to compile.

May be resolvable in the future.
This commit has been generated by maintainers/scripts/haskell/mark-broken.sh
@ofborg ofborg bot added the 8.has: clean-up This PR removes packages or removes other cruft label Jun 22, 2021
@ju1m
Copy link
Copy Markdown
Contributor

ju1m commented Jul 2, 2021

I have this error:

$ nix -L build nixpkgs#haskell.packages.ghc901.haskell-language-server
error: attribute 'hlint_3_3_0' missing

       at /nix/store/b50frxkg7qzhsiinp6bd45n20jy1hjl2-source/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix:109:11:

          108|   # hlint 3.3 needs a ghc-lib-parser newer than the one from stackage
          109|   hlint = super.hlint_3_3_0.overrideScope (self: super: {
             |           ^
          110|     ghc-lib-parser = overrideCabal self.ghc-lib-parser_9_0_1_20210324 {
(use '--show-trace' to show detailed location information)

git blame points to a5052e1

@expipiplus1
Copy link
Copy Markdown
Contributor

As a quick fix, does this help?

diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix
index 7731c73f0f6..20c64dbbccf 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix
@@ -106,7 +106,7 @@ self: super: {
   retry = dontCheck super.retry;

   # hlint 3.3 needs a ghc-lib-parser newer than the one from stackage
-  hlint = super.hlint_3_3_0.overrideScope (self: super: {
+  hlint = super.hlint_3_3_1.overrideScope (self: super: {
     ghc-lib-parser = overrideCabal self.ghc-lib-parser_9_0_1_20210324 {
       doHaddock = false;
     };

@ju1m
Copy link
Copy Markdown
Contributor

ju1m commented Jul 2, 2021

@expipiplus1 yes, thanks! hlint now compiles, sadly haskell-language-server now stumbles upon:

@nix { "action": "setPhase", "phase": "configurePhase" }
configuring
configureFlags: --verbose --prefix=/nix/store/kp3vx1q1jr7gqh4p0izrzk3l751qz85b-ghc-api-compat-8.6 --libdir=$prefix/lib/$compiler --libsubdir=$abi/$libname --with-gcc=gcc --package-db=/build/package.conf.d --ghc-o
Using Parsec parser
Configuring ghc-api-compat-8.6...
Dependency ghc >=8.6: using ghc-9.0.1
Source component graph: component lib
Configured component graph:
    component ghc-api-compat-8.6-KZOn2hm6zj4DG9FVVGrAMa
        include ghc-9.0.1

Error:
    Problem with module re-exports:
      - The module 'GHC.Hs.Types'
        is not exported by any suitable package.
        It occurs in neither the 'exposed-modules' of this package,
        nor any of its 'build-depends' dependencies.
      - The module 'GHC.Platform.ARM64'
        is not exported by any suitable package.
        It occurs in neither the 'exposed-modules' of this package,
        nor any of its 'build-depends' dependencies.
      - The module 'GHC.Rename.Binds'
        is not exported by any suitable package.
        It occurs in neither the 'exposed-modules' of this package,
        nor any of its 'build-depends' dependencies.
      - The module 'GHC.Rename.Source'
        is not exported by any suitable package.
        It occurs in neither the 'exposed-modules' of this package,
        nor any of its 'build-depends' dependencies.
      - The module 'GHC.Rename.Types'
        is not exported by any suitable package.
        It occurs in neither the 'exposed-modules' of this package,
        nor any of its 'build-depends' dependencies.
      - The module 'GHC.Iface.Utils'
        is not exported by any suitable package.
        It occurs in neither the 'exposed-modules' of this package,
        nor any of its 'build-depends' dependencies.
      - The module 'GHC.Driver.Packages'
        is not exported by any suitable package.
        It occurs in neither the 'exposed-modules' of this package,
        nor any of its 'build-depends' dependencies.
    In the stanza library

@maralorn
Copy link
Copy Markdown
Member Author

maralorn commented Jul 2, 2021

Huh, I don‘t completely understand this error message, but this could actually be a packaging bug by upstream. i.e. an error in some cabal file.

Note, that not all plugins are yet supported on ghc 9.0 but I think we enable them all by default. So you will need to disable some cabal flags to have a chance for hls to compile.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

6.topic: haskell General-purpose, statically typed, purely functional programming language 8.has: clean-up This PR removes packages or removes other cruft 8.has: package (new) This PR adds a new package 10.rebuild-darwin: 501+ This PR causes many rebuilds on Darwin and should normally target the staging branches. 10.rebuild-darwin: 2501-5000 This PR causes many rebuilds on Darwin and should target the staging branches. 10.rebuild-linux: 501+ This PR causes many rebuilds on Linux and should normally target the staging branches. 10.rebuild-linux: 2501-5000 This PR causes many rebuilds on Linux and should target the staging branches.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants