Return-Path: Delivered-To: apmail-lucene-lucy-dev-archive@minotaur.apache.org Received: (qmail 26044 invoked from network); 14 Mar 2010 19:31:57 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 14 Mar 2010 19:31:57 -0000 Received: (qmail 70255 invoked by uid 500); 14 Mar 2010 19:31:13 -0000 Delivered-To: apmail-lucene-lucy-dev-archive@lucene.apache.org Received: (qmail 70186 invoked by uid 500); 14 Mar 2010 19:31:12 -0000 Mailing-List: contact lucy-dev-help@lucene.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: lucy-dev@lucene.apache.org Delivered-To: mailing list lucy-dev@lucene.apache.org Received: (qmail 70178 invoked by uid 99); 14 Mar 2010 19:31:12 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 14 Mar 2010 19:31:12 +0000 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: local policy) Received: from [209.98.116.241] (HELO pekmac.local) (209.98.116.241) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 14 Mar 2010 19:31:06 +0000 Received: from pekmac.local (localhost [127.0.0.1]) by pekmac.local (Postfix) with ESMTP id 2F9D516DD62; Sun, 14 Mar 2010 14:30:48 -0500 (CDT) Message-ID: <4B9D3968.20502@peknet.com> Date: Sun, 14 Mar 2010 14:30:48 -0500 From: Peter Karman User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.1.8) Gecko/20100227 Thunderbird/3.0.3 MIME-Version: 1.0 To: lucy-dev@lucene.apache.org, "KinoSearch discussion list." Subject: Re: Stable releases under new namespaces References: <20100310045726.GA1030@rectangular.com> <4B99620B.2070104@peknet.com> <20100312181629.GA13933@rectangular.com> In-Reply-To: X-Enigmail-Version: 1.0.1 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit X-Virus-Checked: Checked by ClamAV on apache.org webmasters@ctosonline.org wrote on 3/13/10 4:29 PM: > > Perhaps the �KinoSearch� namespace could be a front end that delegates > to a separate namespace. So �use KinoSearch 3;� or �use KinoSearch api > => 3� would alias all the KinoSearch namespaces to KinoSearch3:: or > KinoSearch::3:: for that process (or thread). Then a KSx module can call > KinoSearch->api or api_version (perhaps this method could be on every > object under KinoSearch::) to find out which version is being used. If a > process needs to access multiple KinoSearch versions, it can use > KinoSearch3 directly. > > Using KinoSearch without specifying a version will default to the > latest, with a warning. �api => "*"�, �api => 0� or �api => "latest"� > could be used to suppress the warning. > > Now, for this to work seamlessly, all KinoSearch versions would have to > be bundled along with the latest, which is a bit much. I think clear > documentation that explains that KinoSearch2/3 needs to be installed > separately (if it is an old version) is a sufficient compromise, as the > �Can�t locate KinoSearch2.pm in @INC� message explains exactly what�s > wrong. I like this approach. It's more work for KS developers, in terms of managing api versions, but that's good work to do, since it requires making the api changes very explicit. Could put the api version in the schema.json file and provide clear error messages when trying to read/write incompatible versions. -- Peter Karman . http://peknet.com/ . peter@peknet.com