Return-Path: Delivered-To: apmail-lucene-java-dev-archive@www.apache.org Received: (qmail 97744 invoked from network); 21 Mar 2009 21:39:28 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 21 Mar 2009 21:39:28 -0000 Received: (qmail 80110 invoked by uid 500); 21 Mar 2009 21:39:26 -0000 Delivered-To: apmail-lucene-java-dev-archive@lucene.apache.org Received: (qmail 80063 invoked by uid 500); 21 Mar 2009 21:39:26 -0000 Mailing-List: contact java-dev-help@lucene.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: java-dev@lucene.apache.org Delivered-To: mailing list java-dev@lucene.apache.org Received: (qmail 80054 invoked by uid 99); 21 Mar 2009 21:39:26 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 21 Mar 2009 14:39:26 -0700 X-ASF-Spam-Status: No, hits=2.2 required=10.0 tests=HTML_MESSAGE,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of buschmic@gmail.com designates 72.14.220.158 as permitted sender) Received: from [72.14.220.158] (HELO fg-out-1718.google.com) (72.14.220.158) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 21 Mar 2009 21:39:18 +0000 Received: by fg-out-1718.google.com with SMTP id 19so424778fgg.4 for ; Sat, 21 Mar 2009 14:38:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from :user-agent:mime-version:to:subject:references:in-reply-to :content-type; bh=S7vbJCiBKFvhcbWqjAEIimC3U2q2cIs9/C7aA8Ec2lo=; b=ItG7dXcNIFuBzFQfmA0tSfejoa4tQVkqrxmQvCXFULObFwHpM0PQ82UjYNtuvOc6vr c0lcqTd+IDkSX0F2eduM5zUrp5J7ULMFwvqRBXTBbex2Utc1nklKqedPZqbnx2KDzGAb gkBXYX6V2xHU/t6P77nM8fqTXsauEFWMahbO0= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:subject:references :in-reply-to:content-type; b=LML48uK25pMna80eWsgZji+fb/zNzjmD+2jRrXwPwlZu5hsFX76QwHymfcbq6btxm6 CGxS7VZ49ru4haA9vAVIhyUo0DIJ+hfdnfJQ5S3Edt2M3FT47sOt0Hecy5Co10QlgN6f jNxvpDhMl9d8TeXj4w7hFSdSFHzdT4aTLLf1Y= Received: by 10.86.86.2 with SMTP id j2mr2431543fgb.50.1237671536822; Sat, 21 Mar 2009 14:38:56 -0700 (PDT) Received: from michael-buschs-macbook-pro.local (p5B158E0F.dip0.t-ipconnect.de [91.21.142.15]) by mx.google.com with ESMTPS id l12sm4267452fgb.16.2009.03.21.14.38.54 (version=TLSv1/SSLv3 cipher=RC4-MD5); Sat, 21 Mar 2009 14:38:55 -0700 (PDT) Message-ID: <49C55E6D.4000208@gmail.com> Date: Sat, 21 Mar 2009 22:38:53 +0100 From: Michael Busch User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1b3pre) Gecko/20090223 Thunderbird/3.0b2 MIME-Version: 1.0 To: java-dev@lucene.apache.org Subject: Re: Modularization References: <49BEDF79.9010000@gmail.com> <49BEE316.5060702@gmail.com> <49C42657.6050208@gmail.com> <49C4B760.5090507@gmail.com> <49C4D0C6.9010000@gmail.com> <9ac0c6aa0903210536s4d004ed6taa4ba34142536da9@mail.gmail.com> In-Reply-To: <9ac0c6aa0903210536s4d004ed6taa4ba34142536da9@mail.gmail.com> Content-Type: multipart/alternative; boundary="------------000507020303070605020408" X-Virus-Checked: Checked by ClamAV on apache.org --------------000507020303070605020408 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit On 3/21/09 1:36 PM, Michael McCandless wrote: > And I don't think the sudden separation of "core" vs "contrib" should > be so prominent (or even visible); it's really a detail of how we > manage source control. > > When looking at the website I'd like read that Lucene can do hit > highlighting, powerful query parsing, spell checking, analyze > different languages, etc. I could care less that some of these happen > to live under a "contrib" subdirectory somewhere in the source control > system. > > OK, so I think we all agree about the packaging. But I believe it is also important how the source code is organized. Maybe Lucene consumers don't care too much, however, Lucene is an open source project. So we also want to attract possible contributors with a nicely organized code base. If there is a clear separation between the different components on a source code level, becoming familiar with Lucene as a contributor might not be so overwhelming. Besides that, I think a one-to-one mapping between the packaging and the source code has no disadvantages. (and it would certainly make the build scripts easier!) >> But I think we should still have "main modules", such as core, >> queries, analyzers, ... and separately e.g. "sandbox modules?", for >> the things currently in contrib that are experimental or, as Mark >> called them, "graveyard contribs" :) ... even though we might then >> as well ask the questions if we can not really bury the latter >> ones... >> > > Could we, instead, adopt some standard way (in the package javadocs) > of stating the maturity/activity/back compat policies/etc of a given > package? > This makes sense; e.g. we could release new modules as beta versions (= use at own risk, no backwards-compatibility). And if we start a new module (e.g. a GSoC project) we could exclude it from a release easily if it's truly experimental and not in a release-able state. > So I think the beginnings of a rough proposal is taking shape, for 3.0: > > 1. Fix web site to give a better intro to Lucene's features, without > exposing core vs. contrib false (to the Lucene consumer) > distinction > > 2. When releasing, we make a single JAR holding core& contrib > classes for a given area. The final JAR files don't contain a > "core" vs "contrib" distinction. > > 3. We create a "bundled" JAR that has the common packages > "typically" needed (index/search core, analyzers, queries, > highlighter, spellchecker) > > +1 to all three points. > Mike > > --------------------------------------------------------------------- > To unsubscribe, e-mail: java-dev-unsubscribe@lucene.apache.org > For additional commands, e-mail: java-dev-help@lucene.apache.org > > > --------------000507020303070605020408 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit On 3/21/09 1:36 PM, Michael McCandless wrote:
And I don't think the sudden separation of "core" vs "contrib" should
be so prominent (or even visible); it's really a detail of how we
manage source control.

When looking at the website I'd like read that Lucene can do hit
highlighting, powerful query parsing, spell checking, analyze
different languages, etc.  I could care less that some of these happen
to live under a "contrib" subdirectory somewhere in the source control
system.

  
OK, so I think we all agree about the packaging. But I believe it is also important
how the source code is organized. Maybe Lucene consumers don't care too much,
however, Lucene is an open source project. So we also want to attract possible
contributors with a nicely organized code base. If there is a clear separation between
the different components on a source code level, becoming familiar with Lucene as a
contributor might not be so overwhelming.

Besides that, I think a one-to-one mapping between the packaging and the source code
has no disadvantages. (and it would certainly make the build scripts easier!)

  
But I think we should still have "main modules", such as core,
queries, analyzers, ... and separately e.g. "sandbox modules?", for
the things currently in contrib that are experimental or, as Mark
called them, "graveyard contribs" :) ... even though we might then
as well ask the questions if we can not really bury the latter
ones...
    

Could we, instead, adopt some standard way (in the package javadocs)
of stating the maturity/activity/back compat policies/etc of a given
package?
  

This makes sense; e.g. we could release new modules as beta versions (= use at own risk,
no backwards-compatibility).

And if we start a new module (e.g. a GSoC project) we could exclude it from a release
easily if it's truly experimental and not in a release-able state.
So I think the beginnings of a rough proposal is taking shape, for 3.0:

  1. Fix web site to give a better intro to Lucene's features, without
     exposing core vs. contrib false (to the Lucene consumer)
     distinction

  2. When releasing, we make a single JAR holding core & contrib
     classes for a given area.  The final JAR files don't contain a
     "core" vs "contrib" distinction.

  3. We create a "bundled" JAR that has the common packages
     "typically" needed (index/search core, analyzers, queries,
     highlighter, spellchecker)

  
+1 to all three points.

Mike

---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-dev-help@lucene.apache.org


  

--------------000507020303070605020408--