[Nix-dev] Stackage Support Will Be Discontinued

Mathnerd314 mathnerd314.gph at gmail.com
Fri Jun 10 21:12:32 CEST 2016


On Wed, Jun 8, 2016 at 5:34 AM, Peter Simons <simons at nospf.cryp.to> wrote:
> Fellow Haskell Hackers,
>
> once the LTS 7.x package set comes out, I intend to make the following
> changes in "master":
>
>  - haskellPackages will loosely follow the most recent LTS release,
>
> where "loosely" means that we'll honor the mandated version bounds for
> libraries but tend to ignore them for executables.

8 months ago, I suggested using the latest versions of all packages
[1]. Apparently, that policy is too simple to receive any discussion.

I don't see any point in "loosely following" LTS releases, when
following the latest Hackage version is equally as prone to breakage
(i.e., very infrequently).

But such breakage does occur, so I propose an extension:
* hackage-packages.nix foo is always the latest Hackage version of the
package; but it will also contain old versions like foo_1_0_2
* Jailbreak all packages by default (because Hackage bounds tend to be
overly conservative), but allow whitelisting bounds on a per-package
basis
* If foo only works with bar version 1 instead of the latest bar, then
foo will depend on bar_1 instead of bar in hackage-packages.nix
* If the latest version of a package does not work on GHC version X,
then configuration-ghc-X.nix should override it to a version that does
work, or mark it as broken if no such version exists.
* If a package update breaks almost all dependencies, then the package
can be overridden to an earlier version in configuration-common.nix
(so all packages will use the old version)

People who want to follow a Stackage release can... use Stack. Stack
has been designed for this purpose and supports all the upgrade
patterns that people would like to follow. On the other hand, Stack
does not support using Haskell libraries from Nix [2][3], so there is
no point in doing anything in nixpkgs beyond providing an executable
Stack binary. If Stack does add support for downloading precompiled
Haskell libraries, it will be using their own infrastructure. Perhaps
this would be implemented with a separate repository and Hydra
instance, as zimbatm suggests, but I think it would probably not use
Nix at all.

-- Mathenrd314

[1] http://article.gmane.org/gmane.linux.distributions.nixos/18306
[2] https://github.com/commercialhaskell/stack/issues/1683
[3] https://github.com/commercialhaskell/stack/blob/master/doc/nix_integration.md


More information about the nix-dev mailing list