transitioning release management

simo idra at samba.org
Thu Feb 28 00:25:52 GMT 2008


On Wed, 2008-02-27 at 19:16 -0500, Derrell Lipman wrote:
> On Wed, Feb 27, 2008 at 4:32 PM, simo <idra at samba.org> wrote:
> >
> >  On Wed, 2008-02-27 at 14:19 -0500, Derrell Lipman wrote:
> >  > On Wed, Feb 27, 2008 at 2:15 PM, Volker Lendecke
> >  > <Volker.Lendecke at sernet.de> wrote:
> >  > >  What would your extensible API look like?
> >  >
> >  > The big change is that instead of the user manipulating structure
> >  > members in the context structure, the context structure will become
> >  > entirely opaque, and setter and getter functions will be used for
> >  > changing it.  This allows me to make changes to the internal context
> >  > structure, typically for adding new functionality, without affecting
> >  > the ABI.  While I'm at it, I'll clean up the use of the different
> >  > types of option settings (there are currently three different
> >  > mechanisms in use!) and the authentication callback function.
> >
> >  This sounds reasonable, but to be honest I'd like to gain something from
> >  breaking API/ABI. Breaking API/ABI means distributions may need to carry
> >  on a libsmbclient-compat package, so it's better if the difference
> >  between the 2 is because of functionality change and not just interface.
> 
> Well as I said before, it's now or never.  There's never a "good" time
> to break API/ABI compatibility, but bumping a major version (3.0 ->
> 3.2) is about the "best" time there is.
> 
> Yes, right this minute it's only an API change, but the intention is
> that functionality will be improved as time goes on.  Right now, I'm
> reluctant to add new functions and features to the library because the
> code gets messier and messier each time.  For example, function
> pointers to related functions are no longer grouped together as they
> should be for readability, in the interest of ABI consistency.  We
> currently have two authentication function signatures with a third
> possibly pending.  That's just ridiculous.  There are three different
> methods of setting options, depending upon the option.  I really don't
> want to add the non-POSIX functions that are being requested, with the
> current implementation.  It's really time for a clean up.  You're
> right, though, it is going to be a bit of a pain for the distros,
> which is why I raised the question.  Since you represent one of the
> distros, I'm particularly interested in your opinion now that you've
> heard a bit more.

Derrell,
my fear is that not adding the functionality you make a huge bet on the
fact you'll get the API/ABI right.
If you find out the new API/ABI does not fit future functionality you
will have to break it again. And that would not be painless.

How confident are you that you will get it right ?

I agree that a major release is a perfect time to do an API change, but
we are planning also to release by April and there are a tons of things
to test already. This also weighs in in making me nervous of doing this
change right now.

Simo.

-- 
Simo Sorce
Samba Team GPL Compliance Officer <simo at samba.org>
Senior Software Engineer at Red Hat Inc. <ssorce at redhat.com>



More information about the samba-technical mailing list