Return-Path: X-Original-To: apmail-jackrabbit-dev-archive@www.apache.org Delivered-To: apmail-jackrabbit-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id BB6039741 for ; Thu, 23 Feb 2012 14:16:10 +0000 (UTC) Received: (qmail 51728 invoked by uid 500); 23 Feb 2012 14:16:10 -0000 Delivered-To: apmail-jackrabbit-dev-archive@jackrabbit.apache.org Received: (qmail 51686 invoked by uid 500); 23 Feb 2012 14:16:10 -0000 Mailing-List: contact dev-help@jackrabbit.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@jackrabbit.apache.org Delivered-To: mailing list dev@jackrabbit.apache.org Received: (qmail 51678 invoked by uid 99); 23 Feb 2012 14:16:10 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 23 Feb 2012 14:16:10 +0000 X-ASF-Spam-Status: No, hits=-0.7 required=5.0 tests=RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of jukka.zitting@gmail.com designates 74.125.82.170 as permitted sender) Received: from [74.125.82.170] (HELO mail-we0-f170.google.com) (74.125.82.170) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 23 Feb 2012 14:16:02 +0000 Received: by werm1 with SMTP id m1so1791846wer.1 for ; Thu, 23 Feb 2012 06:15:42 -0800 (PST) Received-SPF: pass (google.com: domain of jukka.zitting@gmail.com designates 10.180.101.37 as permitted sender) client-ip=10.180.101.37; Authentication-Results: mr.google.com; spf=pass (google.com: domain of jukka.zitting@gmail.com designates 10.180.101.37 as permitted sender) smtp.mail=jukka.zitting@gmail.com; dkim=pass header.i=jukka.zitting@gmail.com Received: from mr.google.com ([10.180.101.37]) by 10.180.101.37 with SMTP id fd5mr3829096wib.1.1330006542188 (num_hops = 1); Thu, 23 Feb 2012 06:15:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:from:date:message-id:subject:to:content-type; bh=QuQj9/QPKmU1vc/xLVSrO+/Ihi4pNxv0ijtpKes11n8=; b=VsEC8ZcZXHCw2YXZT+NFQlyV3kyWXXbqDYuPd13YUEDoTugGpED+vk6bZkyXldCF1t hyRMYI+M1JtI7hno0DKgoNlUcFNuWLq2yzMVgpyF65izUWaKAeqzGmqvpNcps/RvW6am el1846CuhFbssc+wU6BkqrMbiuCSbsFZhHbdg= Received: by 10.180.101.37 with SMTP id fd5mr3142610wib.1.1330006542121; Thu, 23 Feb 2012 06:15:42 -0800 (PST) MIME-Version: 1.0 Received: by 10.180.104.106 with HTTP; Thu, 23 Feb 2012 06:15:22 -0800 (PST) From: Jukka Zitting Date: Thu, 23 Feb 2012 15:15:22 +0100 Message-ID: Subject: [jr3] Release roadmap To: Jackrabbit Developers Content-Type: text/plain; charset=ISO-8859-1 X-Virus-Checked: Checked by ClamAV on apache.org Hi, As a followup to the strategic plan proposal, and to help turn our focus from abstract planning to actual deliverables, here's a quick draft roadmap for possible releases we could/should be making still in H1/2012. It's still necessarily incomplete (for example I excluded query and indexing features for now as I don't yet have a good idea of when or how they should be addressed), but I think a roadmap like this should help us focus on the right things at the right time. For example, IMHO agreeing on the clustering model and getting a basic implementation in place is a fundamental decision that needs to be done as early as possible (by April in this draft), followed soon by merging of concurrent CRUD operations. Only after we have those in place can we start making solid decisions about higher-level features. This doesn't mean that we shouldn't take such features into account when designing and implementing the clustering model, just that we shouldn't start implementing them before the basics are in place. This is a pretty tight schedule mostly to bring up a sense of focus that we currently seem to be lacking. The proposed schedule should be reachable with a few persons working full time on this, which I think (and hope) we should be able to arrange. And it's more of a guideline than a fixed plan, we can proceed faster on some issues if possible or postpone others where needed. We may even decide to drop some items entirely or introduce new items to the plan. With that background, here's the proposed roadmap: * 0.1 - March 2012 * Basic JCR and HTTP interfaces (Hello, World!) * In-memory storage (no-need for persistence yet) * Runnable jar for easy deployment * Integration tests to verify the above * 0.2 - April 2012 * Basic CRUD operations over JCR and HTTP * Extension model for plugging in alternative storage backends * Basic on-disk or in-cloud persistence (no performance or stability goals yet) * Clustering model that supports the above CRUD operations * Runnable jar with "join cluster" functionality * Integration tests to verify the above * 0.3 - May 2012 * Basic (Hello, World! -level) JavaScript-friendly HTTP API * Simple WebDAV layer with remote filesystem semantics * Automatic merging of concurrent CRUD operations * Extension model for plugging in features like access control, node types, etc. * Basic (Hello, World! -level) implementation of one such pluggable feature * OSGi bundle packaging * Integration tests to verify the above * Basic performance tests for simple read and write scenarios * 0.4 - June 2012 * Bindings for jQuery * WebDAV(ex)-based remoting * Support for all JSON and JCR data types, including multivalued properties * Basic support for flat hierarchies (no performance goals yet) * Basic support for access control based on the extension model * Basic support for node types based on the extension model * Basic support for observation based on the extension model * Basic support for locking (if needed/wanted) * OSGi/Spring/etc. pluggability of extensions * Integration tests to verify the above * Performance benchmark against selected other NoSQL databases * Performance tests for clustered deployments * Basic scalability tests for simple read and write scenarios BR, Jukka Zitting