You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by Jeremy Boynes <jb...@apache.org> on 2005/09/22 19:41:10 UTC
Versioning and features
I mentioned in ModuleVersioningGuidelinesReview about a feature
mechanism rather than version numbers and thought I should probably
should explain that more.
The concern I had with version numbering is that there is a lot of
implicit information locked up in a single String or int. As the
objective of this is to cater for scenarios where there is skew between
consumer and implementation I think it is better to make this more explicit.
To that end, I was envisioning a mechanism where the consumer could
easily check if a specific feature was provided by the implementation
rather than seeing which version was there and then inferring.
To achieve this, I was thinking the primary interface would have a
method like:
/**
* @param className the class providing the feature
* @param featureId the feature to check for
* @return true if the implementation supports the requested feature
*/
boolean hasFeature(String className, String featureId)
This needs to be loosely coupled i.e. featureId Strings would be
documented but the consumer could not rely e.g. on a constant field as
that field may not be defined by earlier versions.
--
Jeremy
Re: Versioning and features
Posted by "Jean T. Anderson" <jt...@bristowhill.com>.
David W. Van Couvering wrote:
> Well, I thought this wouldn't get attention until I announced something,
> but I discovered that every mod I make to a Wiki page gets broadcasted
> to the committers list (sorry all for the slew of emails). I'm not sure
> if the alias should be subscribed, maybe individuals could subscribe as
> desired?
Don't worry about it. Change notifications should go somewhere. Check
other projects at http://mail-archives.apache.org/mod_mbox/ and you'll
see that many interleave Wiki and repo changes on their commits/cvs list.
-jean
Re: Versioning and features
Posted by "David W. Van Couvering" <Da...@Sun.COM>.
Well, I thought this wouldn't get attention until I announced something,
but I discovered that every mod I make to a Wiki page gets broadcasted
to the committers list (sorry all for the slew of emails). I'm not sure
if the alias should be subscribed, maybe individuals could subscribe as
desired?
Anyway, as Jeremy mentions, I put up a Wiki page for a draft version of
the versioning guidelines and an associated review page. The idea of
the review page is to get your comments recorded there and allow for
discussion without a huge email thread. This also makes sure each
comment gets tracked and not lost.
So, I welcome your comments. The draft guidelines are at
http://wiki.apache.org/db-derby/ModuleVersioningGuidelines
and the associated review page is at
http://wiki.apache.org/db-derby/ModuleVersioningGuidelinesReview
Jeremy, I'm going to add your comment below to the review page (and will
respond there) when I get a chance, a bit on the run right now.
Thanks, I hope this works better than our poor old derby-dev alias for
getting proposals like this reviewed and resolved.
David
Jeremy Boynes wrote:
> I mentioned in ModuleVersioningGuidelinesReview about a feature
> mechanism rather than version numbers and thought I should probably
> should explain that more.
>
> The concern I had with version numbering is that there is a lot of
> implicit information locked up in a single String or int. As the
> objective of this is to cater for scenarios where there is skew between
> consumer and implementation I think it is better to make this more
> explicit.
>
> To that end, I was envisioning a mechanism where the consumer could
> easily check if a specific feature was provided by the implementation
> rather than seeing which version was there and then inferring.
>
> To achieve this, I was thinking the primary interface would have a
> method like:
> /**
> * @param className the class providing the feature
> * @param featureId the feature to check for
> * @return true if the implementation supports the requested feature
> */
> boolean hasFeature(String className, String featureId)
>
> This needs to be loosely coupled i.e. featureId Strings would be
> documented but the consumer could not rely e.g. on a constant field as
> that field may not be defined by earlier versions.
>
> --
> Jeremy