I've been thinking about Haskell libraries' interface changing updates and I'm starting to think that we're a bit out of luck with those. The thing is, we'd need to bump the cabal version number when we make such changes, or we'll risk breaking users' locally installed libraries in non-obvious ways.
As an example, libraries A and B are in Debian, B depends on A. A user has libraries X and Y, where Y depends on X and X depends on B. If A's interface changes, we can trigger B's rebuild and even use package relationships to ensure that the user can only have matching versions of A and B on his system. But we can't binNMU X and Y and those are broken and it may not be obvious that both of them need to be rebuilt. Having a distribution specific part of cabal version numbers could work, a bit like the after dash part that Debian versions have. We can't just bump the upstream version. As it is, the first thing about interface changes would be "don't". Wait until the next upstream version if you need them, preferrably talk to them and get them there. Upstreams aren't scary, they could make new minor releases if you ask nicely. This would speak for using dependencies like (>= 1.2-3), (<< 1.2+), too. -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected]
