[Moving to correct bug report from #726913]

On Thu, Apr 03, 2014 at 06:45:57PM -0500, Dirk Eddelbuettel wrote:
> | The last major breakage happened when R went from 2.15.x -> 3.0.x; R
> | 3.0.0 would not read packages built for R 2.15.x.  Before that, it was
> | something like 2.9.x -> 2.10.x (though I may be wrong about the
> | details).
> 
> Yes. So maybe twice a decade. I don't think that warrants all these 
> acrobatics.

It's two lines of metadata in r-base.  That's it.  Nothing more,
nothing less.  (The original patch is three lines, not two, and means
that only one line would need to change when r-base changes.)  And
they only change twice a decade.  It's non-intrusive, maintainers need
not do anything different whatsoever and so on.

The key point is that only *you*, as maintainer of r-base, are able to
do this - no add-on package maintainer can.

Some examples of other packages which use this system (some calling it
-abi and others -api):

apache2-bin, banshee, geany, libhdb9-heimdal, python-numpy,
python-sip, erlang-base

So it's an accepted Debian approach, it's known to work well and
prevents archive breakage.

> | The problem for package maintainers is that no-one knows in advance
> | when the upstream R developers are going to break compatibility with
> 
> Depends on how closely they follow R. They follow -- that is what maintainers 
> do.

This is true, but the people who are affected are the users.  Not
every maintainer is very responsive (as we all know only too well).
It is far better that a user is told by aptitude/apt-get/... that
their installed add-on package is incompatible with the r-base
upgrade.

It would also mean that the critical r-base transition to testing can
only happen when all of the depending add-on packages have been
upgraded or removed from testing, making the transition far, far
smoother.  Yes, it may only happen once every five years, but the pain
was significant last time, and this is a very simple way to avoid that
next time round.

This will also make it easier for you or the then-maintainer of r-base
to manage that transition: the archive tools will support you and the
FTP team in the process, and not-upgraded packages can easily and
automatically be removed from testing - they will have unsatisfied
dependencies.

> R Core signals _way ahead_.  We "know" when breaking changes will happen. We
> can cope.  I just this too heavy-handed.

We didn't cope well last time, and there's no evidence that things
will be any different next time.

> | [...]
> | In this way, no-one has to be prescient, and packages built with the
> | new scheme will happily coexist with any r-base-core version that is
> | backwards compatible with it.
> 
> We have that right now too :)

Yes, but we also have packages happily coexisting with r-base-core
versions with which they are INcompatible: a package build with
r-base-core 2.15.3-2 is incompatible with r-base-core 3.0.0-1, but
dpkg is entirely unaware of this.  That's not acceptable.

> | So the changes needed are just two: introduce "Provides: r-api-3.0"
> | in the r-base-core control file, and add "r-api-3.0" to the echo
> | "R:Depends=..." line in r-cran.mk.  This will ONLY need changing if
> | and when R ceases being backwards compatible with packages built by
> | earlier versions.
> | 
> | 
> | Is that a bit clearer?
> 
> Yes, thank you. It is a nice answer. I just don;t think there is enough of an
> issue or question to warrant it.

Unfortunately, I believe there is.  We could ask TC for their opinion,
perhaps?

   Julian


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to