Hi David,
This is great. Thanks for pulling this together. I have one nit:
Currently, we say that the Release Notes document only changes to
Unstable interfaces. I think the Release Notes should document changes
to Stable and Standard interfaces (which ought to be rare), and the
Release Notes should document the transition of interfaces from
Supported to Deprecated to Removed.
Regards,
-Rick
David W. Van Couvering wrote:
The discussion of the stability of SQL States inspired me to finally
apply what I've learened here at Sun in terms of explicitly declaring
the stability one guarantees for each interface and applying it to Derby.
I have updated Dan's forward compatibility page with a draft of what
this might look like. Dan, I took all the interfaces you called out
and merged them into the interface table, and added many more, as well
as some background information around interfaces and stability
definitions.
I think one component that is still missing is: what does it mean to
make an incompatible change, for various types of interfaces? As an
example, it's OK to add a column to an existing system table, but not
OK to change the type of an existing column; it's OK to add columns to
the result set of a metadata query; it's OK to add a method to an
existing interface but you can't change an existing method, and so on.
Please see http://wiki.apache.org/db-derby/ForwardCompatibility, and
modify or comment as you see fit. It is not necessarily my itch to be
the one responsible for maintaining this interface table; I hope
that's something that can be shared across a number of us. But I did
want to get something out there for us to look at and start discussing.
David