[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Cabal versions, Debian versions and users' local libraries



Hi,

Am Dienstag, den 10.02.2009, 10:33 +0200 schrieb Kari Pahula:
> 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.

Are you refering to bumping A’s cabal version, or both A’s and B’s?

If you also mean bumping B’s version, this would break binNMUability,
wouldn’t it? Unless one tries to do it in the build scripts, but that
sounds overly complex and error prone.

I woudn’t worry too much about locally installed library. People can
just run "cabal rebuild-all" (or the manual equivalent until such a
package exists). I even vaguely remember that someone planned to make
cabal-install capable of detecting re-built distribution libraries and
automatically re-building locally installed libraries as needed. This
sounds like a more proper way of handlings this.

> 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.

Yes, I agree: This is a clean solution.

> This would speak for using dependencies like (>= 1.2-3), (<< 1.2+),
> too.

ACK

Greetings,
Joachim
-- 
Joachim "nomeata" Breitner
Debian Developer
  nomeata@debian.org | ICQ# 74513189 | GPG-Keyid: 4743206C
  JID: nomeata@joachim-breitner.de | http://people.debian.org/~nomeata

Attachment: signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil


Reply to: