How to maintain a Haskell package?

Hi,
I would like to get the Haskell package morpheus-graphql as a Nix package.
But it has long been marked as broken.
However on my laptop (NixOS) it does compile with cabal.
It may have been marked as broken due to too strict dependencies versions.
Or was it once broken, then black-listed, and never reintegrated?

error: Package ‘morpheus-graphql-core-0.20.0’ in /nix/store/m4r7hzyl4ibwbhkc8v2pkhfxq54122aq-nixos-22.05/nixos/pkgs/development/haskell-modules/hackage-packages.nix:188546 is marked as broken, refusing to evaluate.

The current version on Hackage is 0.27.0.
How could I check this, and how can I help to bring it back to a working Nix package?
Thanks!

Here’s an example of a PR marking a Haskell package unbroken:

https://github.com/NixOS/nixpkgs/pull/199758

One thing to note is that you should send the PR against the haskell-updates branch.

You may want to look at other Haskell-related PRs to get an idea of other things you need to do to get something compiling (like jailbreaking dependencies or overriding dependency versions): Pull requests · NixOS/nixpkgs · GitHub

Feel free to post here (or on the PR you open) if you have any other questions.

We generally don’t have any automation around marking packages unbroken once they get set as broken, so we rely on people sending PRs when there is a package/library they want to use.

Thank you for your answer.

I tried a PR but the outcome is the following:

nix-env failed:
error: attribute 'hashable_1_4_1_0' missing

       at /var/lib/ofborg/checkout/repo/38dca4e3aa6bca43ea96d2fcc04e8229/mr-est/ofborg-evaluator-6/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix:112:14:

          111|   hackage-security = doJailbreak super.hackage-security;
          112|   hashable = super.hashable_1_4_1_0;

The problem appears to be that hashable is only at 1.3.5.0 on Hydra, but here a newer version is required. However, it is not broken, not even transitively.

So,what can I do to tackle it? Downgrade the dependency in configuration-ghc-9.2.x.nix? Otherwise, how to upgrade it in nixpkgs?

Thanks for your help!

You ended up figuring this out in

https://github.com/NixOS/nixpkgs/pull/202163

which was cherry-picked into

https://github.com/NixOS/nixpkgs/pull/202022

right? Did you still need help with this? Or is there some question you still have?

The eval errors are an unrelated issue already present on the haskell-updates branch you don’t need to worry about necessarily (unless you’d happen to depend on hashable ofc).

All right, my question addressed the issue with hashable mentioned by @sternenseemann.

1 Like

Yeah, that just happened because we did a mass update recently that invalidated a bunch of manual version picks we had before, so you kind of happened to contribute at an unfortunate point in time.

Hi there,
Things go better, now a newer version appears:

error: Package ‘morpheus-graphql-core-0.26.0’ in /nix/store/m7mq10gf91rnhxq8m72f1qayriydwmfa-nixos-22.11/nixos/pkgs/development/haskell-modules/hackage-packages.nix:195790 is marked as broken, refusing to evaluate.

But it is still marked as broken.
What is the matter?
Does anything else need to be done? How could I help?
Thanks!

You yourself made the necessary contribution. It is currently part of a Haskell-related staging branch (haskell-updates) where we are assembling haskell package and compiler updates and check for regressions. You can track the progress of the current specific iteration into NixOS channels here. Note that it may take longer than usual in this case, as a major compiler update is quite disruptive and requires a ton of work to get a handle on all regressions.