Compatibility etiquette for apps, with cabal sandboxes and `stack`

Hi all, 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. As in: 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)? Cheers, Paolo * 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.

On 11/29/2015 06:54 AM, Paolo Giarrusso wrote:
Hi all,
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.
If your application can't be installed through a package manager, a lot of end users and every system administrator are going to pretend it doesn't exist. Using stack/sandboxes hides the fact that the ecosystem is broken from the developer, but it cannot be hidden from the end user. Please make sure any such breakage is not your fault =)
participants (2)
-
Michael Orlitzky
-
Paolo Giarrusso