>>> Also, some parts of the API are deprecated and some are experimental.
>>> The API docs (which aren't manpages, BTW), are clear about the stability
>>> attributes of the various interfaces.
>> In that case, we should make our stability attributes match the ones
>> advertised by the software authors.  Use "Uncommitted" or better for
>> the things that are in fact stable, and "Volatile" and "Obsolete" for
>> the experimental and deprecated parts.  Just pass the upstream
>> guarantees to the downstream users.
> 
> I agree in this specific case, but should we generally do this where
> possible?
> 
> The upstream community may have an interface stability taxonomy that is
> roughly compatible with ours, and maybe even a similar release binding
> taxonomy, but it's unlikely that their releases will be timed at all
> with ours.

I don't think external interface stability levels need to match Sun's
stability levels.  The GNOME community, for example, provides ABI
compatibility for all libraries in the "GNOME Platform".  However,
we only support a subset of these as Committed in Solaris.  This is
for several reasons:

- We feel a good GNOME application should be written with just the
   libraries we recommend
- The JDS team is not interested in supporting the other libraries at
   a "Committed" or "Stable" level.
- Some of the libraries (but not all) which we exclude have future
   planned deprecation dates.

> Or is that not a concern because if the upstream community makes "major"
> releases then we can just ship multiple versions of it in the next
> micro/patch release of Solaris (or OpenSolaris release vehicles)?
> Multiple versions of libraries can be problematic, after all, though I
> believe in most cases there's always reasonable guidance that can be
> given to avoid DLL hell.

That is also a very real concern.  Does Sun want to restrict what we
can do in the future if the external community breaks ABI or has a
different understanding of what stability means than we do?

>> I don't see a good reason to make things hard on future projects that
>> might want to use these interfaces by making a lesser promise to
>> Solaris users than the software author does.
>>
>> (It doesn't matter whether the documentation is in man page format, so
>> I'm not sure I understand your parenthetic comment.  Care to
>> elaborate?)
> 
> (I was worried that using anything other than Volatile might mean that
> the i-team would have to provide manpages, but I don't think that'd be
> the case.  Can you confirm?)

I believe Volatile interfaces (as well as Uncommitted and Committed
ones) are supposed to have manpages.  Only private interfaces can
avoid manpage documentation, I believe.

Brian


Reply via email to