lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Steven A Rowe" <sar...@syr.edu>
Subject RE: Back Compatibility
Date Thu, 17 Jan 2008 23:58:22 GMT
Hi Grant,

On 01/17/2008 at 7:51 AM, Grant Ingersoll wrote:
> Our minor release cycles are currently in the 3-6 months range
> and our major release cycles are in the 1-1.5 year range.

Since 2.0.0, including 2.3.0 - assuming it will be released in the next week or so - the minor
release intervals will have averaged about 6.5 months, over three releases.

Historically, the major release cycle intervals have roughly been:

   1.0   - 6 months (March 2000 - October 2000)
   2.0.0 - 6 years  (October 2000 - May 2006)

Six years is an incredibly long time to maintain backward compatibility.

Assuming there will be a 2.4 release, and then 3.0 following it, it's pretty optimistic (IMHO)
to think that it will be released before June 2008, so for 3.0, that would be:

   3.0.0 - 2 years (May 2006 - May 2008)

Two years doesn't seem so long in comparison :).

> I think giving someone 4-8 (or whatever) months is more than
> enough time to prepare for API changes.   I am not sure how
> this would effect Index changes, but I do think we should
> KEEP our current index reading policy where possible.  This
> may mean that some deprecated items cannot be removed until
> a major release and I think that is fine.

Given the 6.5 month average minor release interval for the most recent major release, and
the relatively low probability that this will shrink appreciably, you seem in essense to be
advocating altogether abandoning backward API compatibility from one (minor) release to the
next.

However, below you are advocating a minimum of one "test balloon" release between incompatible
changes:

On 01/17/2008 at 3:41 PM, Grant Ingersoll wrote:
> [N]o interface/deprecation changes would be done without announcing it
> and there being at least one release in the meantime.  Thus, if we
> wanted to add isFancySchmancy() onto Fieldable today, it would have to
> be announced, patch provided and referenced, a release without it (i.e.
> 2.3) and then it would be available in 2.4.  By ad-hoc, I meant that we
> wouldn't just announce it and then have it show up in 2.3 and not give
> people time to digest it.

If I understand you correctly, a major release series could contain a whole series of non-aligned
overlapping back-incompatible changes, since you are allowing individual features to alter
backward incompatibility independently of other features.  I think this is actually worse
than just abandoning back-compatibility, since users would have to look up information on
each individual feature to be able to figure out whether they can do a drop-in upgrade.

Steve

---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-dev-help@lucene.apache.org


Mime
View raw message