As a user, I have no problem with this, as I have a pulse:)

If I understand that it just breaks software backward compatibility and not compatibility with the index itself. Minor software changes are no big deal to me. I would still expect that a newer API would still read earlier indexes. Specifically that in the N series that N.x would be able to read N.(x-1) and N.x would be able to read (N-1).y.

There needs to be a mechanism to communicate that a break has happened. The current mechanism of @deprecated works well but requires several releases to do the communication. This is both good and bad.

Also, in the RPM world, dependencies are typically noted as >= x && < y (e.g. Lucene >= 2.0 && Lucene < 3.0). Also, a typical RPM will treat minor numbers as a reason for replacement (e.g. Lucene 2.4.0 replaces 2.3.2) but that major numbers live independently (e.g. Lucene 2.3.2 and 3.0 live side by side). Such a policy as being suggested here potentially makes managing a Lucene RPM more difficult. And it may invalidate existing ones. The same might be true with other Linux package manager files such as Debian's.

If the change is seen merely as an internal implementation detail that would affect very few, then this is probably a nit.

I'm not sure that the comment that "this gives anyone with a pulse enough time to react" is particularly accurate or helpful. It all depends upon effective communication (such as to Lucene user's mailing list and package maintainers).

-- DM Smith

Grant Ingersoll wrote:
As they say, rules are meant to be broken...

For a variety of reasons, some outlined below, I (and others) would like us to break our back compatibility requirements and allow for modifying the Fieldable interface in 2.x releases with the 3.x plan to be to separate out write side interfaces from read side interfaces per Hoss' suggestion in http://lucene.markmail.org/message/77qs2pjy3inzfddj?q=Fieldable%2C+AbstractField.

Our reasons are based on LUCENE-1340, LUCENE-1219 and http://lucene.markmail.org/message/77qs2pjy3inzfddj?q=Fieldable%2C+AbstractField

Simply put, my gut says there are almost no implementations of Fieldable "in the wild", and those that are won't mind a few lines of code change here and there to accommodate Fieldable changing (since Fields really are just simple data structures and don't due much algorithmically, except maybe LazyField)

Thus, here's the vote part:

1. We mark Fieldable as being subject to change. We heavily advertise (on java-dev and java-user and maybe general) that in the next minor release of Lucene (2.4), Fieldable will be changing. It is also marked at the top of CHANGES.txt very clearly for all the world to see. Since 2.4 is probably at least a month away, I think this gives anyone with a pulse enough time to react.

2. We thus allow 1340 and 1219 to go forward, and maybe some others.

3. [OPTIONAL] We commit to rethinking input Documents and output Documents for 3.x per Hoss' design suggestions in the email thread above. At a minimum, it becomes an abstract base class.


+1 to all 3 items from me.

-Grant


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to