-
-
Notifications
You must be signed in to change notification settings - Fork 15.5k
Update Haskell package set to Stackage Nightly (plus other fixes) #103740
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
Conversation
@peti Why did you decide to update the package set to Nightly (instead of an LTS)? Also, when LTS-17 comes out, are you planning on switching back to track it? |
The discussion took place at http://www.twitch.tv/peti343/v/801715350?sr=a&t=3625s. We felt that Nightly is better for us in general. Release branches could follow some LTS set, of course, but we actually don't update the package set in release branches, so I guess it doesn't make any practical difference. |
@peti Thanks for the link to the conversation. I think I agree with most of the points brought up. It sounds like Nightly might actually be a better fit for nixpkgs, since we also provide many packages from Hackage that are not in Stackage. Packages from Hackage are sometimes hard to get working with the slightly older stuff from Stackage. One concern I have is how often Nightly drops "important" packages. I remember from about a year or so ago I was quite surprised when Nightly dropped Servant, which has quite a few dependencies in Stackage. However, I don't actually have any idea how frequent or widespread this kind of breakage is. Servant is somewhat of a fringe package (even though it has a lot of dependencies), but I wonder what the story is for the more "core" packages, like On Twitch @maralorn suggested that we should do another call for help with making sure our various Haskell packages compile on Nightly / ghc-8.10.2. I think this sounds like a good idea. |
Okay, I got this down to zero eval errors. We are now at 5933 building packages, down from 6044 before the switch to stackage nightly. This is not so bad. Sadly right now some of the most important packages are still broken. e.g. cabal-install, stack, hls, git-annex, neuron … So, still a lot to do. |
I will just very informally document here, what packages are still on my list to be fixed:
Of course, I don‘t know if I can fix them all. |
neuron isn't building because the following packages are broken on this branch:
|
I've fixed Spago in #104164. |
I have fixed all of them locally. But most of them with simple dontCheck and doJailbreak, so I want to clean that up and make a pretty PR with patches or at least issues out of it. |
I have fixed all neuron deps other than neuron itself. It fails with this error message: srid/neuron#475 |
PR here #104232 |
As soon as we merge master into haskell-updates (or the other way around). hls will break. :-( |
That has been fixed. \o/ I think it's a bit late now to merge master in, if we did that now, we won‘t have reasonable hydra infos tomorrow. I wish we had a way for hydra to tell us which jobs fail now which built successfully last week. So we could have a look at which of them should also be fixed … |
@peti You obviously didn‘t read what I said or decided to disagree. 😆 |
I don't see an alternative. We have to merge |
18fa823
to
3278408
Compare
This means we'll switch our default compiler from ghc-8.8.4 to 8.10.2.
This update was generated by hackage2nix v2.15.5-28-gd194902 from Hackage revision commercialhaskell/all-cabal-hashes@cb01aa6.
This update was generated by hackage2nix v2.15.5-27-g11a103b from Hackage revision commercialhaskell/all-cabal-hashes@e037d20.
The build was broken because our `primitive` version was too high. Using the patch from composewell/streamly#565
This bumps aeson-gadt-th, which will be pulled in by the hackage update this night anyways.
This update was generated by hackage2nix v2.15.5-27-g11a103b from Hackage revision commercialhaskell/all-cabal-hashes@fa72061.
This update was generated by hackage2nix v2.15.5-28-gd194902 from Hackage revision commercialhaskell/all-cabal-hashes@8c0e05f.
This update was generated by hackage2nix v2.15.5-28-gd194902 from Hackage revision commercialhaskell/all-cabal-hashes@8c0e05f.
0cf6d0c
to
c55cdb4
Compare
The cachix build is broken with ghc-8.10.x and recent versions of its dependencies, particularly servant, swagger2, etc. We cannot easily fix that with overrides -- it would be best if upstream released a new version that builds successfully in the Stackage Nightly environment. A simple way to ensure that would be to add cachix to Stackage. Ping @domenkozar.
I've only gotten the notification that decision was made to switch to nightly. Can I get like a week before this is merged? Otherwise cachix will be broken and I literally had no time to prepare without knowing about the decision. |
how about this quickfix: # in all-packages.nix
cachix = haskell.lib.justStaticExecutables haskell.packages.ghc883.cachix; this builds for me and might be good enough perhaps? |
@domenkozar, there are plenty of ways to fix |
@peti you're a true gentlement :D |
For what it's worth. It is really annoying that we don‘t have notifications for failed hydra builds. We should have an automated way to notify devs about pending broken merges as early as possible. Our current workflow is lacking in that regard and we will need to improve on that. |
We'll merge #104424 next week. |
@maralorn we have release blockers, but it doesn't help if someone removes your package from it 20min before merging the PR... |
And disabling servant means disabling A LOT of packages. |
Can you open an issue for this? (It's also been discussed elsewhere, for instance the static pkgs maintainer issue) |
This pull request has been mentioned on NixOS Discourse. There might be relevant details there: |
This PR is test-built by Hydra at https://hydra.nixos.org/jobset/nixpkgs/haskell-updates. I'll fix up the remaining errors and merge it on Friday, 2020-11-20 20:00 +01:00. You can watch this live on Twitch at https://www.twitch.tv/peti343. In addition to the chat features offered by Twitch, there is also a voice conference at https://discord.gg/YTEa3XR that viewers can use to chat with me and with each other.