: I would like to suggest we start a contrib package for Solr modeled after the
: Lucene Java contrib package.  One thing that comes to mind, is do we just want
: to mirror the processes of Lucene Java or do we think there are improvements
: to be made?  One thing that I dislike about the current Lucene Java way is the
: dependency management.  Some of the contrib modules have the same copy of
: libraries checked in or they rely on non-ASF compatible code.  Maven or Ivy
: easily solve this problem, with my preference being Maven (but I am not trying
: to start a Maven war here, either, so please don't take it that way).

On one hand, my familiarity with the Lucene contrib system leads me to 
feel that we should really have something like that in Solr -- but then i 
think about the motivations lucene had for adding the sandbox/contrib 
setup: it's a way to keep the core library simple and small so that tiny 
micro apps don't have to load in a lot of code they don't plan on using; 
and it's a way to mange code such that people can be given commit accesss 
just to contribs.  

The second motivation doesn't seem to really be a concern for Solr at the 
moment -- if we're going to make someone a committer, lets just make them 
a committer.  The first motivation while applicaable isn't nearly as 
crucial.  As a web based application, our principle user base is much 
different then Lucene-Java.  Saving a little space isn't nearly as 
important as keeping Solr easy to use out ofhte box.  request handlers and 
field types and analysis components and response writers that are common 
enough to be commited into the Solr repositories are probably going to be 
the kind of things that a lot of people could want to take advantage of -- 
and we need to make it as easy as possible for those people to use all of 
those cool features (ie: one big self contained war).  While there may 
certianly be plenty of people who think "I don't need this functionality, 
i don't wnat a bloated war" those people are probably going to be 
comforatable repacking the war themselves to stip out the classes they 
don't need.

All of which leads me to think that the complexity of having a framework 
for contribs probably isn't neccessary at this point -- i would love to 
see Solr get to the point where we have so many cool bells and whistles 
and add ons that the war becomes rediculously and prohibitively huge if 
you try to use all of them, but we can always refactor things into 
contribs at that point (but the way a lot of lucene code was refactored 
into contribs after the 1.4.3 release)

*IF* we do decide that a contrib framework is imporntant, then switching 
to something like maven would probably make a lot of sense ... BUT ... a 
bigger concern i have then contribs designed to be loaded by solr as 
plugins, is having a cohesive method for building/testing/packaging all of 
hte client code that is starting to get added to the repository ... and 
i'm not sure that maven can really help us with that ... if we're going to 
have to roll our own solution for genericly building the 
ruby/python/java/perl/lua client code modules, perhaps we should reuse 
that same framework for building contribs (instead of making people 
understand both our custom method for building clients, and the mavent 
method for building contribs)



-Hoss

Reply via email to