Dear Wiki user, You have subscribed to a wiki page or wiki category on "Lucy Wiki" for change notification.
The "LucyIncubatorProposal" page has been changed by MarvinHumphrey. The comment on this change is: Lots of minor tweaks.. http://wiki.apache.org/lucy/LucyIncubatorProposal?action=diff&rev1=25&rev2=26 -------------------------------------------------- For reference, see the original template at [http://incubator.apache.org/guides/proposal.html] == Preface == - Lucy is a sub-project which is being spun off from the Lucene TLP but is not yet ready for graduation. We propose to address certain needs of the project by assimilating the KinoSearch code base, and enter the Incubator on a top-level-project track. + Lucy is a sub-project which is being spun off from the Lucene TLP but is not yet ready for graduation. We propose to address certain needs of the project by assimilating the KinoSearch code base, and to enter the Incubator on a top-level-project track. == Abstract == Lucy will be a high-performance search engine library written in C and targeted at dynamic language users. @@ -13, +13 @@ Lucy has two aims. First, it will be a high-performance C search engine library. Second, it will maximize its usability and power when accessed via dynamic language bindings. To that end, it will present highly idiomatic, carefully tailored APIs for each of its "host" binding languages, including full support for subclasses written entirely in the "host" language. == Background == - Lucy, a "loose C" port of Java Lucene, began as an ambitious, from-scratch Lucene sub-project, with initial committers David Balmain (author of Ferret, a Ruby/C port of Lucene), Doug Cutting, and Marvin Humphrey (founder of KinoSearch, a Perl/C port). During an initial burst of activity, the overall architecture for Lucy was sketched out by Dave and Marvin. Unfortunately, Dave became unavailable soon after, and without a working code base to release or any users, it proved difficult to replace him. Still, Marvin carried on their work throughout a period of seeming dormancy. + Lucy, a "loose C" port of Java Lucene, began as an ambitious, from-scratch Lucene sub-project, with initial committers David Balmain (author of Ferret, a Ruby/C port of Lucene), Doug Cutting, and Marvin Humphrey (founder of KinoSearch, a Perl/C port). During an initial burst of activity, the overall architecture for Lucy was sketched out by Dave and Marvin. Unfortunately, Dave became unavailable soon after, and without a working code base to release or any users, it proved difficult to replace him. Still, Marvin carried on their work throughout a period of seemingly low activity. - In the last year, the work has come to fruition: major technical milestones have been achieved and Lucy's underpinnings have been completed. Additionally, other developers from the KinoSearch community have taken an interest in Lucy and have begun to ramp up their contributions. The next steps for Lucy were articulated by the Lucene PMC in a recent review: make releases, acquire users, grow community. + In the last year, that work has come to fruition: major technical milestones have been achieved and Lucy's underpinnings have been completed. Additionally, other developers from the KinoSearch community have taken an interest in Lucy and have begun to ramp up their contributions. The next steps for Lucy were articulated by the Lucene PMC in a recent review: make releases, acquire users, grow community. To implement the Lucene PMC's recommendations and get to a release as quickly as possible, the Lucy community proposes to assimilate the KinoSearch code base, which has been retrofitted to use Lucy's core. Lucy still lacks a number of important indexing and search classes; we wish to flesh these out via IP clearance work rather than software development. @@ -69, +69 @@ Lucy's relationship with Lucene of cordial "coopetition" has produced benefits for Lucene users in terms of indexing speed, near-real-time search support, and more. We expect the projects to continue diverging and converging over time as innovations migrate back and forth, with happy results for all involved. === An Excessive Fascination with the Apache Brand === - Our desire to maintain Lucy's affiliation with Apache has much less to do with the brand and much more to do with our conviction that developing the project The Apache Way under Apache institutions is in Lucy's best interests. However, we have to acknowledge that during its time as a Lucene subproject, Lucy has not always fulfilled certain key requirements for an Apache project. In particular, it has failed to "release early, release often", and it has made only limited progress in expanding its community. + Our desire to maintain Lucy's affiliation with Apache has less to do with the brand and more to do with our conviction that developing the project The Apache Way under Apache institutions is in Lucy's best interests. However, we have to acknowledge that during its time as a Lucene subproject, Lucy has not always fulfilled certain key requirements for an Apache project. In particular, it has failed to "release early, release often", and it has made minimal progress in expanding its community. We attribute some of our difficulties to the what may have been excess ambition in the original Lucy plan, given the scope of the project and the size of the initial committer list: @@ -89, +89 @@ The initial source will be a snapshot from the KinoSearch subversion repository. == Source and Intellectual Property Submission Plan == - KinoSearch is currently under a GPL/Artistic license. There are five individuals who have made multiple significant contributions to the code base and whose participation is either essential or would be very, very helpful: the three committers on this proposal, Chris Nandor, and Father Chrysostomos. All have been contacted and are amenable to re-licensing their work and contributing it to Apache. We will contact as many other contributors as possible; if there are any that we cannot obtain permission from, we will refactor to expunge their work. + KinoSearch is currently under a GPL/Artistic license. There are five individuals who have made multiple significant contributions to the code base and whose participation is either essential or would be very helpful: the three committers on this proposal, Chris Nandor, and Father Chrysostomos. All have been contacted and are amenable to re-licensing their work and contributing it to Apache. We will contact as many other contributors as possible; if there are any that we cannot obtain permission from, we will refactor to expunge their work. == External Dependencies == The Perl bindings for KinoSearch depend on a few CPAN modules which do not have Apache-compatible licenses. It will be possible to address all of these during incubation: * JSON::XS can be eliminated by writing our own JSON parser. * Lingua::Stem::Snowball and Lingua::StopWords are both wrappers around Snowball, which is itself BSD licensed. We can eliminate them by writing our own wrappers and bundling the Snowball files. - * The build currently requires Parse::RecDescent. However, the compilation stage which requires Parse::RecDescent can be moved up into release preparation, so it can be eliminate as an end-user dependency. + * The build currently requires Parse::RecDescent. However, the compilation stage which requires Parse::RecDescent can be moved up into release preparation, so it can be eliminated as an end-user dependency. The build also requires modules which are now bundled with core Perl as of 5.10.0 (Module::Build, ExtUtils::CBuilder), but were not with Perl 5.8.x. Guidance is sought as to whether they are acceptable.
