Ed Gould writes:
> Yes.  I'm fine with this Volatile interface either disappearing 
> completely or becoming Private with no incompatible changes ever.  Note 
> especially the word "ever."

I think that pretty much puts the last nail in the coffin for Volatile
as a generally usable classification.  The very definition of Volatile
is that it allows for incompatible change at any time -- including in
Micro releases and patches.

That's much more often than "no incompatible change ever."

Is it your intention that we should just disallow all "experimental"
projects?  That's effectively what this project is attempting to do,
and the implication of disallowing the use of Volatile for the fluid
bits.  I'm somewhat in accord with that prohibition, but I think we
have a clash with senior management here.

> If the interface is going to vanish in a future release, I would want 
> the case supporting that release to include the transition plan.  

A transition plan for Volatile?  When do we require that?

Ed Gould writes:
> The general rule is this:  If a customer is allowed to use it (and 
> especially if they're expected to use it), it's Public.  If it's 
> Public, it must be documented.  In general, Private interfaces are not 
> documented (except internally, of course); if there is public 
> documentation, it must note that the interface is not for public use.  
> The presence of an interface in a header file does not constitute 
> documentation.

All correct, but "documented" doesn't always mean man pages.  It does
for "Committed" interfaces, but those at other stability levels can
use whatever's appropriate -- white pages, READMEs, blogs, et cetera.

For what it's worth, I think this interface actually meets most of the
criteria for Uncommitted, but since the express intent of the project
team is to deliver one or more experimental versions, and to do so
over the life of just one release, Volatile makes much more sense.
Anything else would be a straightjacket.

Also note that basically none of this matters a whit.  You could call
it Committed if you like.  Because our taxonomy is based on releases,
and this project isn't targeting an Update, the interface is not
frozen until Nevada actually ships as a release.  We apparently have
no plans to do that at all at any point in the future.  So, by the
time NWAM phase 1, 2, and 3 come around, and Nevada still hasn't
shipped, we'll still be able to make incompatible changes, even in
Committed interfaces.

-- 
James Carlson, Solaris Networking              <james.d.carlson at sun.com>
Sun Microsystems / 1 Network Drive         71.232W   Vox +1 781 442 2084
MS UBUR02-212 / Burlington MA 01803-2757   42.496N   Fax +1 781 442 1677

Reply via email to