lucy-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <wikidi...@apache.org>
Subject [Lucy Wiki] Update of "LucyIncubatorProposal" by MarvinHumphrey
Date Mon, 28 Jun 2010 01:01:20 GMT
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: Stub out Abstract, Current Status, and Inexperience with Open
Source..
http://wiki.apache.org/lucy/LucyIncubatorProposal?action=diff&rev1=4&rev2=5

--------------------------------------------------

  ## page was renamed from GraduationPlan
- 
  For reference, see the original template at [http://incubator.apache.org/guides/proposal.html]
  
  == Abstract ==
+ Lucy will be a loose port of the Lucene search engine library, written in C and targeted
at dynamic languages.
- 
- A short descriptive summary of the project. A short paragraph, ideally one sentence in length.
- 
- The abstract should be suitable for reuse in the board resolution used to create the official
project upon graduation, as the first paragraph on the podling web site and in the DOAP document.
- Examples: Geronimo will be a J2EE compliant container. Heraldry will develop technologies
around the emerging user-centric identity space. Yoko will be a CORBA server.
- 
  
  == Proposal ==
+ A lengthier description of the proposal. Should be reasonably declarative. More discursive
material should be included in the rationale (or other later sections). Example (XAP): XAP
is to provide an XML-based declarative framework for building, deploying and maintaining rich,
interactive, Ajax-powered web applications. A basic principal of XAP is to leverage existing
Ajax ...
- 
- A lengthier description of the proposal. Should be reasonably declarative. More discursive
material should be included in the rationale (or other later sections).
- Example (XAP): XAP is to provide an XML-based declarative framework for building, deploying
and maintaining rich, interactive, Ajax-powered web applications. A basic principal of XAP
is to leverage existing Ajax ...
  
  == Background ==
- 
- Provides context for those unfamiliar with the problem space and history.
- 
  Explain terms whose meanings may be misunderstood (for example, where there is not a single
widely adopted definition).
  
- This content should be capable of being safely ignored by domain experts. It should probably
find an eventual home on the Podling website.
- Example (Heraldry): To provide some background, the Higgins Project is being actively developed
within Eclipse and is a framework that will enable users and enterprises to integrate identity,
profile, and relationship information across multiple systems. Using context providers, existing
and new systems such as directories, collaboration spaces ...
+ This content should be capable of being safely ignored by domain experts. It should probably
find an eventual home on the Podling website. Example (Heraldry): To provide some background,
the Higgins Project is being actively developed within Eclipse and is a framework that will
enable users and enterprises to integrate identity, profile, and relationship information
across multiple systems. Using context providers, existing and new systems such as directories,
collaboration spaces ...
  
  == Rationale ==
- 
- Explains why this project needs to exist and why should it be adopted by Apache. This is
the right place for discursive material.
- Example (Beehive): There is a strong need for a cohesive, easy-to-use programming model
for building J2EE applications. Developers new to Java are forced to learn a myriad of APIs
just to build simple applications; advanced J2EE developers are forced to write tedious plumbing
code; and tools authors are limited in what they can do to simplify the experience due to
the underlying complexity.
+ Explains why this project needs to exist and why should it be adopted by Apache. This is
the right place for discursive material. Example (Beehive): There is a strong need for a cohesive,
easy-to-use programming model for building J2EE applications. Developers new to Java are forced
to learn a myriad of APIs just to build simple applications; advanced J2EE developers are
forced to write tedious plumbing code; and tools authors are limited in what they can do to
simplify the experience due to the underlying complexity.
  
  == Initial Goals ==
- 
  A complex proposal (involving multiple existing code bases, for example) may cause concerns
about its practicality. A good way to address these concerns is to create a plan that demonstrates
the proposal is feasible and has been carefully thought through.
  
- Many projects will not need this section.
- Example (Heraldry): * Expansion of Yadis and OpenID libraries into additional languages
beyond the existing Python, Ruby, Perl, and PHP libraries * OpenID authentication specification
revision to fix known security considerations, investigate compatibility with the DIX IETF
proposal, describe Yadis integration, and allow either an URL or XRI be used as the End User's
Identifier ...
+ Many projects will not need this section. Example (Heraldry): * Expansion of Yadis and OpenID
libraries into additional languages beyond the existing Python, Ruby, Perl, and PHP libraries
* OpenID authentication specification revision to fix known security considerations, investigate
compatibility with the DIX IETF proposal, describe Yadis integration, and allow either an
URL or XRI be used as the End User's Identifier ...
  
  == Current Status ==
+  * Currently a Lucene subproject.
+  * Major technical achievements in the last year.
+  * Board policy of breaking up subprojects, Lucy asked to submit plan for  graduation.
+  * Lucene PMC identified community building as primary task.
+  * Fastest path to a community is assimilation of KinoSearch code base.
- 
- This section (and the contained topics) describes the candidate's current status and development
practices. This should be an honest assessment balancing these against Apache's principles
and development ideals.
- 
- For some proposals, this is a chance to demonstrate understanding of the issues that will
need to addressed before graduation. For others, this is a chance to highlight the close match
with Apache that already exists. Proposals without an initial code base should just simply
state that.
- 
- Some proposals name this section criteria (though the term is a little misleading).
  
  === Meritocracy ===
- 
  Apache is a meritocracy.
  
  Once a developer has submitted enough good patches then it should be natural that they are
elected to committer. It should be natural that active committers are elected to the project
management committee (PMC).
  
- This process of renewal is vital to the long term health of Apache projects. This is the
right place to demonstrate that this process is understood by the proposers.
- Example (OFBiz): OFBiz was originally created by David E. Jones and Andy Zeneski in May
2001. The project now has committers and users from around the world. The newer committers
of the project joined in subsequent years by initially submitting patches, then having commit
privileges for some of the applications, and then privileges over a larger range of applications...
Example (Beehive): We plan to do everything possible to encourage an environment that supports
a meritocracy. One of the lessons that the XMLBeans committers have learned is that meritocracies
don't just evolve from good intentions; they require actively asking the community for help,
listing/specifying the work that needs to be done, and keeping track of and encouraging members
of the community who make any contributions...
+ This process of renewal is vital to the long term health of Apache projects. This is the
right place to demonstrate that this process is understood by the proposers. Example (OFBiz):
OFBiz was originally created by David E. Jones and Andy Zeneski in May 2001. The project now
has committers and users from around the world. The newer committers of the project joined
in subsequent years by initially submitting patches, then having commit privileges for some
of the applications, and then privileges over a larger range of applications... Example (Beehive):
We plan to do everything possible to encourage an environment that supports a meritocracy.
One of the lessons that the XMLBeans committers have learned is that meritocracies don't just
evolve from good intentions; they require actively asking the community for help, listing/specifying
the work that needs to be done, and keeping track of and encouraging members of the community
who make any contributions...
  
  === Community ===
- 
  Apache is interested only in communities.
  
- Candidates should start with a community and have the potential to grow and renew this community
by attracting new users and developers. Explain how the proposal fits this vision.
- Example (Beehive): BEA has been building a community around predecessors to this framework
for the last two years. There is currently an active newsgroup that should help us build a
new community at Apache... Example (WebWork2): The WebWork 2 community has a strong following
with active mailing lists and forums... Example (WADI): The need for a full service clustering
and caching component in the open source is tremendous as its use can be applied in many areas,
thus providing the potential for an incredibly large community...
+ Candidates should start with a community and have the potential to grow and renew this community
by attracting new users and developers. Explain how the proposal fits this vision. Example
(Beehive): BEA has been building a community around predecessors to this framework for the
last two years. There is currently an active newsgroup that should help us build a new community
at Apache... Example (WebWork2): The WebWork 2 community has a strong following with active
mailing lists and forums... Example (WADI): The need for a full service clustering and caching
component in the open source is tremendous as its use can be applied in many areas, thus providing
the potential for an incredibly large community...
  
  === Core Developers ===
- 
  Apache is composed of individuals.
  
- It is useful to provide a brief introduction to the developers on the initial committers
list. This is best done here (and not in that section). This section may be used to discuss
the diversity of the core development team.
- Example (ServiceMix) The core developers are a diverse group of developers many of which
are already very experienced open source developers. There is at least one Apache Member together
with a number of other existing Apache Committers along with folks from various companies.
http://servicemix.org/Team Example (WADI) WADI was founded by Jules Gosnell in 2004, it now
has a strong base of developers from Geronimo, Castor, OpenEJB, Mojo, Jetty, ActiveCluster,
ActiveMQ, and ServiceMix.
+ It is useful to provide a brief introduction to the developers on the initial committers
list. This is best done here (and not in that section). This section may be used to discuss
the diversity of the core development team. Example (ServiceMix) The core developers are a
diverse group of developers many of which are already very experienced open source developers.
There is at least one Apache Member together with a number of other existing Apache Committers
along with folks from various companies. http://servicemix.org/Team Example (WADI) WADI was
founded by Jules Gosnell in 2004, it now has a strong base of developers from Geronimo, Castor,
OpenEJB, Mojo, Jetty, ActiveCluster, ActiveMQ, and ServiceMix.
  
  === Alignment ===
- 
- Describe why Apache is a good match for the proposal. An opportunity to highlight links
with Apache projects and development philosophy.
- Example (Beehive): The initial code base is targeted to run within Tomcat, but the goal
is to allow the framework to run on any compliant Servlet or J2EE container. The Web services
component, based on JSR-181, will leverage Axis. The NetUI component builds on top of Struts.
The underlying Controls component framework uses Velocity. There are other projects that we
will need to work with, such as the Portals and Maven projects.
+ Describe why Apache is a good match for the proposal. An opportunity to highlight links
with Apache projects and development philosophy. Example (Beehive): The initial code base
is targeted to run within Tomcat, but the goal is to allow the framework to run on any compliant
Servlet or J2EE container. The Web services component, based on JSR-181, will leverage Axis.
The NetUI component builds on top of Struts. The underlying Controls component framework uses
Velocity. There are other projects that we will need to work with, such as the Portals and
Maven projects.
  
  == Known Risks ==
- 
  An exercise in self-knowledge. Risks don't mean that a project is unacceptable. If they
are recognized and noted then they can be addressed during incubation.
  
  === Orphaned products ===
- 
  A public commitment to future development.
  
+ Recruiting a diverse development community and strong user base takes time. Apache needs
to be confident that the proposers are committed. Example (Yoko): The contributors are leading
vendors in this space. There is no risk of any of the usual warning signs of orphaned or abandoned
code.
- Recruiting a diverse development community and strong user base takes time. Apache needs
to be confident that the proposers are committed.
- Example (Yoko): The contributors are leading vendors in this space. There is no risk of
any of the usual warning signs of orphaned or abandoned code.
  
  Example (Ivy): Due to its small number of committers, there is a risk of being orphaned.
The main knowledge of the codebase is still mainly owned by Xavier Hanin. Even if Xavier has
no plan to leave Ivy development, this is a problem we are aware of and know that need to
be worked on so that the project become less dependent on an individual.
  
  Example (Tika): There are a number of projects at various stages of maturity that implement
a subset of the proposed features in Tika. For many potential users the existing tools are
already enough, which reduces the demand for a more generic toolkit. This can also be seen
in the slow progress of this proposal over the past year. However, once the project gets started
we can quickly reach the feature level of existing tools based on seed code from sources mentioned
below. After that we believe to be able to quickly grow the developer and user communities
based on the benefits of a generic toolkit over custom alternatives.
  
  === Inexperience with Open Source ===
- 
  If the proposal is based on an existing open source project with a history of open development,
then highlight this here.
  
  If the list of initial committers contains developers with strong open source backgrounds
then highlight this here.
  
+  * Varying degrees of open source experience.
+   * Marvin Humphrey had moderate experience with open source when Lucy started, and is now
more seasoned. In retrospect, he wishes that Lucy had gone through incubation during its first
inception.
+   * Peter Karman --
+   * Nathan Kurz --
+ 
- Inexperience with open source is one reason why closed projects choose to apply for incubation.
Apache has developed over the years a store of experience in this area. Successfully opening
up a closed project means an investment of energy by all involved. It requires a willingness
to learn and to give back to the community. If the proposal is based around a closed project
and comes with very little understand of the open source space, then acknowledge this and
demonstrate a willingness to learn.
+ Inexperience with open source is one reason why closed projects choose to apply for incubation.
Apache has developed over the years a store of experience in this area. Successfully opening
up a closed project means an investment of energy by all involved. It requires a willingness
to learn and to give back to the community. If the proposal is based around a closed project
and comes with very little understand of the open source space, then acknowledge this and
demonstrate a willingness to learn. Example (Cayenne): Cayenne was started as an open source
project in 2001 and has remained so for 5 years.
- Example (Cayenne): Cayenne was started as an open source project in 2001 and has remained
so for 5 years.
  
  Example (Beehive): Many of the committers have experience working on open source projects.
Five of them have experience as committers on other Apache projects.
  
@@ -105, +80 @@

  Example (River): The initial committers have varying degrees of experience with open source
projects. All have been involved with source code that has been released under an open source
license, but there is limited experience developing code with an open source development process.
We do not, however, expect any difficulty in executing under normal meritocracy rules.
  
  === Homogenous Developers ===
- 
  Healthy projects need a mix of developers. Open development requires a commitment to encouraging
a diverse mixture. This includes the art of working as part of a geographically scattered
group in a distributed environment.
  
+ Starting with a homogenous community does not prevent a project from entering incubation.
But for those projects, a commitment to creating a diverse mix of developers is useful. Those
projects who already have a mix should take this chance to highlight that they do. Example
(Beehive): The current list of committers includes developers from several different companies
plus many independent volunteers. The committers are geographically distributed across the
U.S., Europe, and Asia. They are experienced with working in a distributed environment.
- Starting with a homogenous community does not prevent a project from entering incubation.
But for those projects, a commitment to creating a diverse mix of developers is useful. Those
projects who already have a mix should take this chance to highlight that they do.
- Example (Beehive): The current list of committers includes developers from several different
companies plus many independent volunteers. The committers are geographically distributed
across the U.S., Europe, and Asia. They are experienced with working in a distributed environment.
  
  Example (River) Since the Jini Technology Starter Kit has been mainly developed to date
by Sun Microsystems, the vast majority of initial committers to the project are from Sun.
Over the years, Sun has received bug fixes and enhancements from other developers which have
been incorporated into the code. Our plan is to work with these other developers and add them
as committers as we progress. There are three other initial committers (non Sun): Bill Venners,
Dan Creswell, and Mark Brouwer. Bill is the lead of the Service UI API work, Dan has been
involved with much Jini-based development, including an implementation of the JavaSpaces service
called Blitz <http://www.dancres.org/blitz/>, and Mark is veteran of much Jini-based
development, including commercial work at Virgil <http://www.virgil.nl> as well as leading
the open source Cheiron <http://www.cheiron.org> project.
  
  Example (Ivy): With only two core developers, at least they are not homogenous! Xavier and
Maarten knew each other only due to their common interest in Ivy.
  
  === Reliance on Salaried Developers ===
- 
  All three initial committers associated with the project for several years across multiple
jobs.
  
  === Relationships with Other Apache Products ===
- 
  When Lucy was conceived, we envisioned that our eventual sub-communities (Perl, Ruby, etc)
would approach using and extending the library in distinct ways, and that we would be able
to harness the creative tension between the different cultures to drive innovation.  Lucy
and Lucene have that kind of a relationship today, and multiple significant novelties have
either cross-pollinated or arisen while discussing competing approaches.  (e.g. object conservation
during indexing, per-segment search.)
  
  Still, Lucy is a loose port and its core differs in fundamental ways from that of Lucene.
 The biggest difference is that for Lucy, "the OS is our JVM":  Lucene Searcher objects build
up optimized data structures at search-time in process RAM, while Lucy writes its data structures
to disk at index-time and reads them via memory-mapped IO at search-time.  This affords Lucy
several advantages, such as fast process launch, low process RAM requirements, and OO design
flexibility because Lucy's "cheap Searcher" objects are lightweight, thin wrappers around
the system IO cache.
  
  === A Excessive Fascination with the Apache Brand ===
- 
  Lucy's past sins:
  
-   * Failed to release early and often.
+  * Failed to release early and often.
-   * Failed to build community.
+  * Failed to build community.
  
  Proposal is intended to address those deficiencies.
  
  == Documentation ==
- 
- References to further reading material.
- Examples (Heraldry): [1] Information on Yadis can be found at: http://yadis.org http://www.openidenabled.com
[2] Information on OpenID can be found at: http://www.openid.net http://www.openidenabled.com
The mailing list for both OpenID and Yadis is located at: http://lists.danga.com/mailman/listinfo/yadis
...
+ References to further reading material. Examples (Heraldry): [1] Information on Yadis can
be found at: http://yadis.org http://www.openidenabled.com [2] Information on OpenID can be
found at: http://www.openid.net http://www.openidenabled.com The mailing list for both OpenID
and Yadis is located at: http://lists.danga.com/mailman/listinfo/yadis ...
  
  == Initial Source ==
- 
  Describes the origin of the proposed code base. If the initial code arrives from more than
one source, this is the right place to outline the different histories.
  
- If there is no initial source, note that here.
- Example (Heraldry): OpenID has been in development since the summer of 2005. It currently
has an active community (over 15 million enabled accounts) and libraries in a variety of languages.
Additionally it is supported by LiveJournal.com and is continuing to gain traction in the
Open Source Community. Yadis has been in development since late 2005 and the specification
has not changed since early 2006. Like OpenID, it has libraries in various languages and there
is a large overlap between the two communities. The specification is...
+ If there is no initial source, note that here. Example (Heraldry): OpenID has been in development
since the summer of 2005. It currently has an active community (over 15 million enabled accounts)
and libraries in a variety of languages. Additionally it is supported by LiveJournal.com and
is continuing to gain traction in the Open Source Community. Yadis has been in development
since late 2005 and the specification has not changed since early 2006. Like OpenID, it has
libraries in various languages and there is a large overlap between the two communities. The
specification is...
  
  == Source and Intellectual Property Submission Plan ==
- 
- Complex proposals (typically involving multiple code bases) may find it useful to draw up
an initial plan for the submission of the code here. Demonstrate that the proposal is practical.
- Example (Heraldry): * The OpenID specification and content on openid.net from Brad Fitzpatrick
of Six Apart, Ltd. and David Recordon of VeriSign, Inc. * The domains openid.net and yadis.org
from Brad Fitzpatrick of Six Apart, Ltd. and Johannes Ernst of NetMesh, Inc. * OpenID libraries
in Python, Ruby, Perl, PHP, and C# from JanRain, Inc. ... * Yadis conformance test suite from
NetMesh and VeriSign, Inc. We will also be soliciting contributions of further plugins and
patches to various pieces of Open Source software.
+ Complex proposals (typically involving multiple code bases) may find it useful to draw up
an initial plan for the submission of the code here. Demonstrate that the proposal is practical.
Example (Heraldry): * The OpenID specification and content on openid.net from Brad Fitzpatrick
of Six Apart, Ltd. and David Recordon of VeriSign, Inc. * The domains openid.net and yadis.org
from Brad Fitzpatrick of Six Apart, Ltd. and Johannes Ernst of NetMesh, Inc. * OpenID libraries
in Python, Ruby, Perl, PHP, and C# from JanRain, Inc. ... * Yadis conformance test suite from
NetMesh and VeriSign, Inc. We will also be soliciting contributions of further plugins and
patches to various pieces of Open Source software.
  
  == External Dependencies ==
- 
  External dependencies for the initial source is important. Only some external dependencies
are allowed by Apache policy. These restrictions are (to some extent) initially relaxed for
projects under incubation.
  
+ If the initial source has dependencies which would prevent graduation then this is the right
place to indicate how these issues will be resolved. Example (CeltiXfire): The dependencies
all have Apache compatible licenses. These include BSD, CDDL, CPL, MPL and MIT licensed dependencies.
- If the initial source has dependencies which would prevent graduation then this is the right
place to indicate how these issues will be resolved.
- Example (CeltiXfire): The dependencies all have Apache compatible licenses. These include
BSD, CDDL, CPL, MPL and MIT licensed dependencies.
  
  == Cryptography ==
- 
  If the proposal involves cryptographic code either directly or indirectly, Apache needs
to know so that the relevant paperwork can be obtained.
  
  == Required Resources ==
- 
  Resources that infrastructure will be asked to supply for this project.
  
  === Mailing lists ===
- 
  The minimum required lists are project-private (for confidential PPMC discussions) and project-dev
lists. Note that projects historically misnamed the private list pmc. To avoid confusion over
appropriate usage it was resolved that all such lists be renamed.
  
  If this project is new to open source, then starting with these minimum lists is the best
approach. The initial focus needs to be on recruiting new developers. Early adopters are potential
developers. As momentum is gained, the community may decide to create commit and user lists
as they become necessary.
@@ -176, +135 @@

  
  It is conventional to use an all lower case, dash-separated (-) prefix based on the project
name.
  
+ By default, commits for {podling} will be emailed to {podling}-commits. It is therefore
recommended that this naming convention is adopted. Example (Beehive): * beehive-private (with
moderated subscriptions) * beehive-dev * beehive-commits * beehive-user
- By default, commits for {podling} will be emailed to {podling}-commits. It is therefore
recommended that this naming convention is adopted.
- Example (Beehive): * beehive-private (with moderated subscriptions) * beehive-dev * beehive-commits
* beehive-user
  
  === Subversion Directory ===
- 
- It is conventional to use all lower case, dash-separated (-) directory names. The directory
should be within the incubator directory space (http://svn.apache.org/repos/asf/incubator).
+ It is conventional to use all lower case, dash-separated (-) directory names. The directory
should be within the incubator directory space (http://svn.apache.org/repos/asf/incubator).
Example (OpenJPA): https://svn.apache.org/repos/asf/incubator/openjpa
- Example (OpenJPA): https://svn.apache.org/repos/asf/incubator/openjpa
  
  === Issue Tracking ===
- 
- Apache runs JIRA and Bugzilla. Choose one. Indicate the name by which project should be
known in the issue tracking system.
+ Apache runs JIRA and Bugzilla. Choose one. Indicate the name by which project should be
known in the issue tracking system. Example (OpenJPA): JIRA Open-JPA (OPEN-JPA)
- Example (OpenJPA): JIRA Open-JPA (OPEN-JPA)
  
  === Other Resources ===
- 
  Describe here any other special infrastructure requirements necessary for the proposal.
Note that the infrastructure team usually requires a compelling argument before new services
are allowed on core hardware. Most proposals should not require this section.
  
  Most standard resources not covered above (such as continuous integration) should be added
after bootstrapping. The infrastructure documentation explains the process.
  
  == Initial Committers ==
- 
   1. Marvin Humphrey (marvin at rectangular dot com)
   1. Peter Karman (peter at peknet dot com)
-  1. Nathan Kurz (nate@verse.com)
+  1. Nathan Kurz ( nate@verse.com )
  
  == Affiliations ==
- 
  Marvin Humphrey is employed by Eventful, Inc and works primarily on this project.
  
  == Sponsors ==
- 
  === Champion ===
- 
  The Champion is a person already associated with Apache who leads the proposal process.
It is common - but not necessary - for the Champion to also be proposed as a Mentor.
  
  A Champion should be found before the proposal is formally submitted.
  
  === Nominated Mentors ===
- 
  Lists eligible (and willing) individuals nominated as Mentors [definition] for the candidate.
  
  It is common for additional Mentors to volunteer their services during the development of
the proposal. The number of Mentors for a Podling is limited only by the energy and interest
of those eligible to Mentor. Three Mentors gives a quorum and allows a Podling more autonomy.
The current consensus is that three or more Mentors makes the incubation process run more
smoothly.
@@ -224, +172 @@

  There is no restriction on the number of informal mentors (note the small m) that a Podling
may have. These can be very useful but have no formal role in the process.
  
  === Sponsoring Entity ===
- 
  The Sponsor is the organizational unit within Apache taking responsibility for this proposal.
The sponsoring entity can be:
  
-     * the Apache Board
+  * the Apache Board
-     * the Incubator
+  * the Incubator
-     * another Apache project
+  * another Apache project
  
  The PMC for the appropriate project will decide whether to sponsor (by a vote). Unless there
are strong links to an existing Apache project, it is recommended that the proposal asks that
the Incubator for sponsorship.
  

Mime
View raw message