My two cents...

I think the committers do a great job of managing the product. I feel the single biggest failure when it comes to producing quality software is lack of vision, and/or enforcement of this vision.

If every "wisher" or "submitter" had their code committed - even if it is "good code" - the product would quickly become unwieldy to maintain and/or learn (for new users), lessening its usefulness to everyone.

The only problem I have with Lucene's current focus is that I feel the Lucene folks should work on standardizing the API, focusing on interfaces and/or abstract classes with proper protected level access.

By doing this, people are much freer to develop their own enhancements, and can quickly apply them to later Lucene releases just by applying a patch (at worst), or just a link (at best !). Similar to how the JDK works. We have rarely if ever needed to change our code between JDK releases.

I realize this is a dream right now, because of the bad shape (sorry) of the structure of much of Lucene, but if the committers spent more time on issues like this, I think they would hear far less complaints from the community.

As an example of the above - being able to access the underlying readers in a multi-reader (I know there is a current bug for this). There is no harm to Lucene folks to expose this, and it is very helpful in many cases. If some developer uses this information in the wrong way, that is their fault, not Lucene's.... Making something protected is very different than making it public.

Robert Engels

On Dec 3, 2008, at 11:36 PM, John Wang wrote:

Grant:

        I am sorry that I disagree with some points:

1) "I think it's a sign that Lucene is pretty stable." - While lucene is a great project, especially with 2.x releases, great improvements are made, but do we really have a clear picture on how lucene is being used and deployed. While lucene works great running as a vanilla search library, when pushed to limits, one needs to "hack" into lucene to make certain things work. If 90% of the user base use it to build small indexes and using the vanilla api, and the other 10% is really stressing both on the scalability and api side and are running into issues, would you still say: "running well for 90% of the users, therefore it is stable or extensible"? I think it is unfair to the project itself to be measured by the vanilla use-case. I have done couple of large deployments, e.g. >30 million documents indexed and searched in realtime., and I really had to do some tweaking.

2) "You want stuff committed, keep it up to date, make it manageable to review, document it, respond to questions/concerns with answers as best you can. " - To some degree I would hope it depends on what the issue is, e.g. enforcing such process on a one- line null check seems to be an overkill. I agree with the process itself, what would make it better is some transparency on how patches/issues are evaluated to be committed. At least seemed from the outside, it is purely being decided on by the committers, and since my understanding is that an open source project belongs to the public, the public user base should have some say.

3) which brings me to this point: "I personally, would love to work on Lucene all day every day as I have a lot of things I'd love to engage the community on, but the fact is I'm not paid to do that, so I give what I can when I can. I know most of the other committers are that way too." - Is this really true? Isn't a large part of the committer base also a part of the for-profit, consulting business, e.g. Lucid? Would groups/companies that pay for consulting service get their patches/requirements committed with higher priority? If so, seems to me to be a conflict of interest there.

4) "Lather, rinse, repeat. Next thing you know, you'll be on the receiving end as a committer." - While I agree that being a committer is a great honor and many committers are awesome, but assuming everyone would want to be a committer is a little presumptuous.

In conclusion, I hope I didn't unleash any wrath from the committers for expressing candor.

-John

On Wed, Dec 3, 2008 at 2:52 PM, Grant Ingersoll <[EMAIL PROTECTED]> wrote:

On Dec 3, 2008, at 2:27 PM, Jason Rutherglen (JIRA) wrote:



Hoss wrote: "sort of mythical "Lucene powerhouse"
Lucene seems to run itself quite differently than other open source Java projects. Perhaps it would be good to spell out the reasons for the reluctance to move ahead with features that developers work on, that work, but do not go in. The developer contributions seem to be quite low right now, especially compared to neighbor projects such as Hadoop. Is this because fewer people are using Lucene? Or is it due to the reluctance to work with the developer community? Unfortunately the perception in the eyes of some people who work on search related projects it is the latter.


Or, could it be that Hadoop is relatively new and in vogue at the moment, very malleable and buggy(?) and has a HUGE corporate sponsor who dedicates lots of resources to it on a full time basis, whilst Lucene has been around in the ASF for 7+ years (and 12+ years total) and has a really large install base and thus must move more deliberately and basically has 1 person who gets to work on it full time while the rest of us pretty much volunteer? That's not an excuse, it's just the way it is. I personally, would love to work on Lucene all day every day as I have a lot of things I'd love to engage the community on, but the fact is I'm not paid to do that, so I give what I can when I can. I know most of the other committers are that way too.

Thus, I don't think any one of us has a reluctance to move ahead with features or bug fixes. Looking at CHANGES.txt, I see a lot of contributors. Looking at java-dev and JIRA, I see lots of engagement with the community. Is it near the historical high for traffic, no it's not, but that isn't necessarily a bad thing. I think it's a sign that Lucene is pretty stable.

What we do have a reluctance for are patches that don't have tests (i.e. this one), patches that massively change Lucene APIs in non- trivial ways or break back compatibility or are not kept up to date. Are we perfect? Of course not. I, personally, would love for there to be a way that helps us process a larger volume of patches (note, I didn't say commit a larger volume). Hadoop's automated patch tester would be a huge start in that, but at the end of the day, Lucene still works the way all ASF projects do: via meritocracy and volunteerism. You want stuff committed, keep it up to date, make it manageable to review, document it, respond to questions/concerns with answers as best you can. To that end, a real simple question can go a long way and getting something committed, and it simply is: "Hey Lucener's, what else can I do to help you review and commit LUCENE-XXXX?" Lather, rinse, repeat. Next thing you know, you'll be on the receiving end as a committer.

-Grant



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



Reply via email to