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