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: Change "full support" for subclasses to "support". Normalize spelling of "codebase". Tweak Alignment. Simpify Subversion Directory.. http://wiki.apache.org/lucy/LucyIncubatorProposal?action=diff&rev1=30&rev2=31 -------------------------------------------------- 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 to 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 codebase, and to enter the Incubator on a top-level-project track. == Abstract == Lucy will be a loose port of the Lucene search engine library, written in C and targeted at dynamic language users. == Proposal == - 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. + 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 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 David Balmain (author of Ferret, a Ruby/C port of Lucene), Doug Cutting, and Marvin Humphrey (founder of KinoSearch, a Perl/C port) as committers. 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. + Lucy, a "loose C" port of Java Lucene, began as an ambitious, from-scratch Lucene sub-project, with David Balmain (author of Ferret, a Ruby/C port of Lucene), Doug Cutting, and Marvin Humphrey (founder of KinoSearch, a Perl/C port) as committers. 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 codebase 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, 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. + To implement the Lucene PMC's recommendations and get to a release as quickly as possible, the Lucy community proposes to assimilate the KinoSearch codebase, 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. Since the Lucene PMC will not be responsible for Lucy much longer, it is more appropriate for the software grant to take place within the context of the Incubator than the Lucene TLP. As none of our current members have Apache PMC experience, we also seek to take advantage of the Incubator environment to prepare ourselves for responsible self-governance. == Rationale == - There is great hunger for a search engine library in the mode of Lucene which is accessible from various dynamic languages, and for one accessible from pure C. Individuals naturally wish to code in their language of choice. Organizations which do not have significant Java expertise may not want to support Java strictly for the sake of running a Lucene instance. Native applications can be launched much more quickly than JVMs. Lucy will meet all these demands. + There is great hunger for a search engine library in the mode of Lucene which is accessible from various dynamic languages, and for one accessible from pure C. Individuals naturally wish to code in their language of choice. Organizations which do not have significant Java expertise may not want to support Java strictly for the sake of running a Lucene installation. Native applications may be launched much more quickly than JVMs. Lucy will meet all these demands. We acknowledge that Apache seems like a natural home for Lucy given that it is also the home of Lucene, and speculate that this may have been on the minds of the Lucene PMC when Lucy was green-lighted as a sub-project. More importantly, though, the Lucy development community strongly believes that The Apache Way is right for Lucy. @@ -48, +48 @@ * Nathan Kurz has participated in numerous open source projects and has been a KinoSearch committer since 2007. He is currently Chief Flavor Engineer of Scream Sorbet, and writes software in his copious free time. === Alignment === - One Apache value which is particularly cherished by the Lucy community is code base transparency. We have developed institutions which enable us to measure and maximize usability (see [http://wiki.apache.org/lucy/BrainLog]), and we feel strongly that the bindings for Lucy must present APIs and documentation which are idiomatic to the host language culture so that end users can consume our work as easily as possible. + One Apache value which is particularly cherished by the Lucy community is codebase transparency. We have developed institutions which enable us to measure and maximize usability (see [http://wiki.apache.org/lucy/BrainLog]), and we feel strongly that the bindings for Lucy must present APIs and documentation which are idiomatic to the host language culture so that end users can consume our work as easily as possible. The controlled competition of meritocratic community development is also very important to us. There has been substantial cross-pollination of ideas between the Lucene and Lucy communities, yielding considerable benefits for both projects. The Lucy developers envision that our host-language sub-communities will approach using and extending the library in distinct ways; we hope to harness the creative tension between them to drive innovation, building productive relationships akin to the one that Lucene and Lucy have today. @@ -68, +68 @@ Marvin Humphrey has a great job at Eventful working primarily on this project and supporting applications that use it. Nevertheless, he is extremely dedicated to Lucy and is determined to see it through to the point where it becomes self-sustaining, regardless of work circumstances. === Relationships with Other Apache Products === - 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. + 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 this dynamic to continue delivering improvements for all parties involved. === An Excessive Fascination with the Apache Brand === 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. @@ -91, +91 @@ 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 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 codebase and whose participation is either essential or would be very helpful: Marvin Humphrey, Peter Karman, Nathan Kurz, 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: @@ -110, +110 @@ * lucy-users === Subversion Directory === - Lucy already has a Subversion directory at http://svn.apache.org/repos/asf/lucene/lucy. In keeping with naming conventions, it could be moved to http://svn.apache.org/repos/asf/incubator/lucy. + [http://svn.apache.org/repos/asf/incubator/lucy] === Issue Tracking === Lucy already has a JIRA tracker: Lucy (LUCY)