[Nix-dev] Our policy for upgrading haskellPackages

Peter Simons simons at cryp.to
Sun Oct 19 16:40:20 CEST 2014


Hi John,

 > We keep a dedicated branch, "haskell-updates", to which only your
 > Hackage updates get pushed, or fixes to those updates. I will
 > personally pull and rebuild this branch every day on my machine, just
 > as I presently rebuild master nearly every day -- compiling more than
 > 2,000 packages that I keep locally updated through --leq.

as Mateusz pointed out, that branch has existed for a long time. I push
all updates to https://github.com/peti/nixpkgs/tree/haskell-updates and
merge them only if http://hydra.cryp.to/jobset/nixpkgs/haskell-updates
shows zero build errors. I build these packages only on Linux/x86_64,
though, so you are more than welcome to point out issue that might exist
on Darwin.


 > I (and hopefully others) will help to discover which packages can be
 > fixed by inserting references to older packages, which requires
 > patches, and which must truly be marked as "broken" until the
 > maintainer of that package can be contacted.

I'm not sure what you mean. *All* those builds can be fixed by referring
them to appropriate versions of their build inputs. It's just a matter
of someone committing a fix that does it.


 > Further, I'll help you to maintain a list of outstanding "broken"
 > packages, and see what can be done to make sure this list decreases
 > over time.

As far as I can tell, the list of broken packages is available by
running "grep -Rl broken pkgs/development/*/haskell". Is there
something missing?


 > Another option is to create a new haskellPackages set [that follows
 > the 'Stackage' package set].

Yes, it would be nice to have option available.


 > I still rely on 'master' to be working overall on a daily basis, and sometimes
 > the degree of breakage in haskellPackages is too much to handle all at once,
 > forcing me to stop tracking 'master' -- which then delays my involvement in
 > getting those breakages fixed.

The recent update to random 1.x, Yesod 1.4, and network 2.6.x was one of
the most disruptive updates we've ever done, and it broke 32 packages
out of a total of 1776 -- less than 2% -- and many of those broken
packages are somewhat obscure ones, really. From point of view, it feels
unfair say that "the degree of breakage in haskellPackages is too much
to handle". There are many ways to deal with the situation. You can ...

 - help to fix the builds,

 - revoke the offending updates locally, or

 - run "nix-env --set-flag keep true ..." on broken packages to keep the
   stable version around.

Honestly, I'm not sure what you're expecting?


 > I think if we had a separate channel for haskell updates, and that if
 > you and I both worked together to get that channel ready for
 > inclusion into master, we could make this upgrade effort smoother for
 > everyone involved, and hopefully less stressful for you in
 > particular.

Well, there is a separate channel for Haskell updates, and you are very
welcome to contribute fixes.


 > The only important part, then, is that we be sure this branch gets on Hydra,
 > as another check of suitability.

It already is on Hydra.


 > It would also be really nice to see you on IRC more, for asking
 > question about upgrade decisions more quickly than through GitHub.
 > But I understand if that's not possible.

Unfortunately, I cannot spend much time on IRC. That kind of synchronous
communication doesn't integrate well into my life. I try to respond to
e-mail and to Github issues as regularly as possible, though.

Best regards,
Peter



More information about the nix-dev mailing list