LSARC/2008/059 - SQLite
James Carlson
james.d.carlson at sun.com
Fri Feb 1 14:24:19 PST 2008
Brian Cameron writes:
> It sounds like work is saved for people who want to use the interfaces.
> Not for the JDS team. :) Verifying that interfaces are stable is more
> work than just checking release notes, after all.
Not necessarily. I don't think anybody is expecting a byte-by-byte
examination of the changes that go into an imported large project.
It doesn't happen for Solaris itself, and expecting that out of
someone else doesn't seem right to me.
Instead, you're supposed to verify that (a) the _intent_ is there;
that is, the upstream doesn't actually intend to break things over
time (some other projects gleefully do this; I don't think this one
does), and (b) the bits you import are not expected to have
incompatible changes.
Everyone fully understands that accidents can and will happen, no
matter what the stability level says. We sometimes break Committed
interfaces by accident. When it happens, someone has to fix it.
(That "someone" is mostly a business decision -- it could be the team
that integrated it, a dedicated support group, the team that found the
problem, or someone else entirely.)
You don't need to promise to boil away the ocean to see if there might
be rusty nails and other bugs at the bottom.
> Our thinking in making the interfaces Volatile was because we didn't
> want to make it so difficult for others to consider using the
> interfaces, if they are okay with the risks associated with "Volatile".
But Volatile *IS* hard to use. It says that the interfaces will
change without notice, possibly breaking you in a patch. You'd have
to be either working on a trivial home directory experiment or just
daft to put up with that sort of "commitment."
Or you (the consumer) may well be assuming a higher stability level.
In other words, you know that SQLite is stable, and Sun has applied
the wrong stability level. You chuckle at the "Volatile" label and
plow on.
If that's the case, then what violence are we doing to our other
stability promises? What are customers to believe?
> If the database team were willing to own SQLite, I would 100% agree
> with you that the interfaces should have a higher stability level.
It's the conflation of ownership and funding with stability level that
I find distasteful in this project. It shouldn't be this way, and it
ends up shoving cost out onto the users -- either they can't use a
perfectly good available tool (and must invest in another one with
better stability and support), or they have to negotiate a contract
for special use and worry that they're living on borrowed time.
> > Use Volatile only if you really feel you need to ship patches that
> > have intentionally incompatible changes. It's a loaded weapon aimed
> > squarely at the user. :-/
>
> That's quite a metaphor. I have also expressed concern at the fact
> that 99% of the external FOSS interfaces were are brining into
> Solaris are using the Volatile classification, however I am not sure
> it is as serious as life and death, as you suggest. I'm also not
> sure SQLite should be the poster child to resolve this FOSS
> Volatile issue.
What you're describing sounds like the "External" fiasco that we've
tried so hard to steer away from. It sounds to me like we're not
being too successful at it.
When we know we're abusing the taxonomy, we should stop. Even if
we're surrounded by others who are busily digging the same hole ever
deeper.
> More realistically, we probably need to be at least as good as our
> competition (e.g. Linux). If the interfaces are really Stable via
> the external project, as you suggest, then our interface classification
> probably does not matter, aside from affecting things like the amount of
> our internal paperwork.
Our recorded stability level is what we offer to our customers and to
our internal project teams.
If we're not going to bother trying to get that right because we
"know" that it doesn't matter, then the ARC process itself also
doesn't matter. We might as well skip it entirely if we're not going
to make a good-faith attempt at getting it right.
Waving the "Volatile" flag at everything makes a mockery of the
intended process, every bit as much as External once did.
--
James Carlson, Solaris Networking <james.d.carlson at sun.com>
Sun Microsystems / 35 Network Drive 71.232W Vox +1 781 442 2084
MS UBUR02-212 / Burlington MA 01803-2757 42.496N Fax +1 781 442 1677
More information about the opensolaris-arc
mailing list