[Haskell-cafe] Compatibility etiquette for apps, with cabal sandboxes and `stack`
p.giarrusso at gmail.com
Sun Nov 29 11:54:28 UTC 2015
IIUC, people used to spend nontrivial effort making their Haskell tools
work across a range of dependencies, and be careful about dropping support
for older ones.
Do cabal sandboxes or Stack reduce that need, at least for applications?*
Or conversely, how bad is it to restrict support to users having them? I
guess I am asking about common policies, but this probably depends on
adoption of those tools.
a) without sandboxes or Stack, packages need to build with whatever
environment is there.
b) with either of sandboxes or Stack, you can just specify the environment
and get it. With Stack, you can even specify whichever (supported) GHC you
want, without impacting the environment.
Concretely, Control.Monad.Trans.Error is deprecated in
transformers-0.4.3.0, but the replacement Control.Monad.Trans.Except does
not exist in transformers-0.3.x, thus in the one-but-last Haskell Platform
(2014.2.0.0). Hence, fixing the deprecation would make this application
hard to install** for some users, including past me (around two months
ago).*** Would you apply such a patch? Would you keep it out? Or would you
even use CPP (something I'd really like to avoid)?
* I take for granted libraries are a different matter — composing libraries
means intersecting their supported versions.
** I'll omit detailing "hard to install", because that's a matter of
opinion; I considered `constraint: transformers installed` necessary in my
cabal config (https://www.vex.net/~trebla/haskell/cabal-cabal.xhtml), and
I've read that's becoming the default in the HP, so I think users are
entitled to this opinion.
*** This particular app has a tiny userbase, so my question is a curiosity.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Haskell-Cafe