[Xapian-discuss] Deprecation policy question

James Aylett james-xapian at tartarus.org
Mon Sep 24 15:13:43 BST 2007


On Mon, Sep 24, 2007 at 01:21:59PM +0100, Richard Boulton wrote:

> >I guess my only question is: why are we calling this 1.0.x not 1.1.x?
> 
> Because we're maintaining both API and ABI forwards compatibility.  ie, 
> any code which works with 1.0.0 will work with 1.0.x (and will link with 
> a 1.0.x library without recompilation).

Yes, that's fine and sensible. It's orthogonal to the deprecation
issue, I think.

> In Xapian, so far, the minor version numbers have really
> corresponded to what many other projects would use as major versions

Most projects aren't libraries, which is kind of my only point here
(only shorter this time :-).

> I think that restricting "revision" releases to bug-fixes only (ie, no 
> new features) would mean we'd need to maintain a separate branch for new 
> development, and that this could nearly double our maintainance load. 
> Which is why we only make a separate branch reluctantly, as we did for 
> 0.9 when nearing the 1.0.0 release.

You can add new features in revisions. It's deprecation that I'm
suggesting should only be introduced at minors. This either means you
slow down the removal of things (because you have to wait another
minor cycle), *or* you push through minors faster (because you hit a
minor every time you start the deprecation cycle for an API call,
rather than postponing the deprecation cycle for that call to match
your 'natural' minors cycle).

I'm not convined either of them is actually a problem, but maybe
there's some expected semantics of minors that I don't get.

> >Yeah, that's so minor I think it's fine to break the rules. (Can the
> >macro text say precisely the simple step needed to fix things in this
> >case?)
> 
> No, but we document all deprecations with suggested fixes in the header 
> file (next to the macro), the release notes, and the deprecation.html 
> document, so I don't think it's too much to expect for people to find 
> the documentation on how to fix it.

Hmm. That really depends on the exact version of your compiler you're
using. Some errors, particularly from C++ compilers, are almost
unreadable (even with colorgcc :-).

But if it can't be done easily, that's inconvenient rather than a
problem.

J

-- 
/--------------------------------------------------------------------------\
  James Aylett                                                  xapian.org
  james at tartarus.org                               uncertaintydivision.org



More information about the Xapian-discuss mailing list