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

Re: GHC 6.10.1 uploaded to experimental



On Thu, Jan 22, 2009 at 02:44:24PM +0100, Joachim Breitner wrote:
> Ok, I am convinced.

I was left feeling a bit that most of my arguments were about the
aesthetics of the matter.  Sorry if I started sounding too pedantic,
already.

Actually, I didn't yet say anything about using version numbers for
marking changes to an interface.  Let's work out an example.

A 1-1 has Depends: B (>= 1-1), B (<< 1-i)
B 1-1 has Depends: C (>= 1-1), C (<< 1-i)

C needs an interface breaking update.  Its new version is 1-i1+1.

B is now uninstallable, since 1-i1+1 << 1-i won't match.  It is
binNMUed, getting version 1-i1+0+b1 and
Depends: C (>= 1-i1+1), C (<< 1-i2)

A is now uninstallable, likewise becoming 1-i1+0+b1 and
Depends: B (>= 1-i1+1), B (<< 1-i2)

At this point, if C needs an update that doesn't touch the interface,
it becomes 1-i1+2.  Another interface changing update would be 1-i2+1.

It would require a bit different than usual versioning for the
binNMUs, but seems workable and not too intrusive, otherwise.
haskell-devscripts could have an option for setting the interface
version and insert it into any version numbers.  I guess it'd be
better to leave the responsibility for setting that to the maintainer
and not go around comparing the interface on its own.  It's all a bit
convoluted, though.

I suppose my main argument all along has been that this all is
overengineering for a case that isn't all that common.  I want my
bikeshed mauve.  I don't know.  Anyone else want to say anything?

> That leaves the question: Should libraries depend on the exact version
> (including Debian revision), requiring possible unnecessary re-builds of
> parts of the dependency tree, or should they depend on the upstream
> version only, with the risk of temporary breakage until it???s noticed and
> binNMUs have been done?

If we're leaving this all as it is, IMHO what haskell-devscripts uses
now is the best solution.  I'd expect that we'd be doing
Debian-specific revisions that won't touch the library itself commonly
enough to warrant it.  Or even if we need to change the library, it
might be possible to do it without touching the interface.  Despite
what I argued, relying on not needing rebuilds when the interface
stays the same is the right thing 99% of the time.  And if we hit that
1%, there's binNMUs.


I uploaded ghc6 -2 to experimental today.  This version doesn't build
haddock docs.  I'm trying to get it built everywhere, first.
Hopefully this version took care of ia64.

Another idea, regarding libraries: ghc6 could use dpkg triggers too,
to register and unregister libraries.  That would allow dropping
postinst and prerm scripts that call scripts to do that.

Attachment: signature.asc
Description: Digital signature


Reply to: