On May 20, 2009, at 4:06 PM, Michael McCandless wrote:

On Wed, May 20, 2009 at 3:24 PM, Shai Erera <ser...@gmail.com> wrote:
Then why go through all this trouble and not simply change the back- compat
policy?

Back-compat is insanely costly, especially the longer it takes us to
get to the next major release...  yet, the specific cost that bothers
me the most is that we hurt our new users because of the back-compat
users.  It hurts Lucene's adoption/growth.

Another consideration on relaxing policy is that back-compat is well
nigh impossible to actually achieve.  We spend an insane amount of our
energy maintaining back-compat, but then one accidental breakage that
slips through quickly causes many back-compat users to conclude we are
not back-compat.  It's not much bang and alot of buck.

It is tempting to change our policy to something like:

 * Bug fixes only on each 2.4.X release

 * Anything can change on each 2.X release, but any prior 2.Y index
   format is readable

I think it's not unreasonable to say "if you want to take advantage of
Lucene's perf improvements and new features, on upgrading you'll have
to recompile, fix APIs, etc.".


All reasonable, Mike. My take is that Lucene has always been pragmatic about darn near everything, except back compat, where we are pretty dogmatic.

In general, I think it is reasonable to say that even from 2.x to 2.y we will try to be back compatible, but when we deem it necessary, we reserve the right to change things. I don't think anyone here is suggesting we would ever do something drastic like a complete overhaul of all the APIs in a version change. I also think it is reasonable to deprecate things by saying @deprecated Will be removed in 2.Y. Use coolNewMethod instead. In other words, we keep deprecated around for only one or two versions. Of course, the timing can vary. Things like changing the Document stuff like we've talked about might last longer (or shorter, actually) while minor deprecations may only be kept for one. The index compatibility stuff is a must.

It is probably worthwhile to ask on java-user@ how many people rely on our back compat policies.

<tongue in cheek> Of course, we do already support back compat for all versions: svn checkout http://svn.apache.org/repos/asf/lucene/java/tags/lucene_2_3_1/ </tongue in cheek>


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

Reply via email to