Return-Path: X-Original-To: apmail-accumulo-dev-archive@www.apache.org Delivered-To: apmail-accumulo-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 1DD2710944 for ; Wed, 3 Dec 2014 14:50:23 +0000 (UTC) Received: (qmail 22593 invoked by uid 500); 3 Dec 2014 14:50:23 -0000 Delivered-To: apmail-accumulo-dev-archive@accumulo.apache.org Received: (qmail 22556 invoked by uid 500); 3 Dec 2014 14:50:22 -0000 Mailing-List: contact dev-help@accumulo.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@accumulo.apache.org Delivered-To: mailing list dev@accumulo.apache.org Received: (qmail 22545 invoked by uid 99); 3 Dec 2014 14:50:22 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 03 Dec 2014 14:50:22 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of busbey@cloudera.com designates 209.85.216.182 as permitted sender) Received: from [209.85.216.182] (HELO mail-qc0-f182.google.com) (209.85.216.182) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 03 Dec 2014 14:49:55 +0000 Received: by mail-qc0-f182.google.com with SMTP id r5so10990300qcx.41 for ; Wed, 03 Dec 2014 06:49:09 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:content-type; bh=z2PR3EhKywVIovd4+NEhvxCSVKwqJwgjsdI8SgjLCeY=; b=UStIbqhM3jIbl9KgXRjb09i+VXVeq7p74syakH6JN4Nk9z87P9T+CQNBy6KWbjv2Pn WfYVmNZ7ox7M8zES4eCeUsiRSwEfKiT//4JxisZLF9bGXmbRs5a4DWGmKe4N1O70n4Jt pEC4LOWeMOikFVmf6ffIvRz0q8zpI2VDnKgt81Dw6NIk8uDSGe24N2QYPk29KpCmf1YS 7vhtxjHFPTqYQrGiYCZW2MRFNXe10+5jH4M90S8etIr791Jlt5m6pVEllyTvNENu0xW7 0Jn8wmycmbYqq+P1XKf0y/mr9cufR/l7vtGXewChtGs5zy55pLHH8HuWWWNl1fuvLbGH qqQg== X-Gm-Message-State: ALoCoQm8AajEaFpv8QB8e6M54p178tf+xi07ao8GVSycIB+mj8eIrZqYWx3KRrfL/lJMqf7jTNax X-Received: by 10.224.121.142 with SMTP id h14mr8353103qar.80.1417618149645; Wed, 03 Dec 2014 06:49:09 -0800 (PST) MIME-Version: 1.0 Received: by 10.229.29.194 with HTTP; Wed, 3 Dec 2014 06:48:48 -0800 (PST) In-Reply-To: References: From: Sean Busbey Date: Wed, 3 Dec 2014 08:48:48 -0600 Message-ID: Subject: Re: [VOTE] API release policy for 1.7/2.0 To: "dev@accumulo apache. org" , vines@apache.org Content-Type: multipart/alternative; boundary=089e0141a8be3cb605050950f2b7 X-Virus-Checked: Checked by ClamAV on apache.org --089e0141a8be3cb605050950f2b7 Content-Type: text/plain; charset=UTF-8 -1 also, ATM. I'd like to see us freeze APIs between now and the 2.0 release. Downstream users have to plan when they invest effort in migrating Accumulo versions. We've already signaled that 2.0 will be the start of a new API with long-lived compatibility promises. (We should keep signaling this.) That makes it a promising place to make a jump (in some cases, from 1.4 I'm sure). I would like to avoid, however possible, leaning those users towards ignoring releases between now and 2.0. For those who are back on 1.4 or 1.5 we can't really do too much. For those on 1.6 we can make it so there is relatively little risk in moving forward. API additions matter here because when a system integrator makes an application on top of Accumulo they often start at the latest version they can find. Later, they may have a client with a regulatory requirement to use an earlier version. Porting backwards is just as hard as porting forwards in our code base. I'd also like to see the "no removing of deprecated" language strengthened to remove the exception for things deprecated prior to 1.7. Yes, this will severely constrain what we can do prior to 2.0. But I think doing otherwise will just encourage us to keep squeezing in "just one more" major pre-2.0 release to get some additional client facing feature out the door. If we have some downstream users with different compatibility needs and with particular operational needs for features that are delayed to 2.0 because of this decision, it should be straight forward for them to backport the things they need and run their own packaging. Plenty of folks who don't need the legal indemnification that the ASF provides do this for a wide variety of projects. On Tue, Dec 2, 2014 at 2:07 PM, John Vines wrote: > -1 I do not like the idea of committing to 1.7.0-1.9.9... API additions for > the 2.0 API. We have already come to the consensus that 2.0 will break the > 1.x API which provides a lot of breathing room and freedom from old > decisions. This causes this issue to come roaring back and an even larger > amount of scrutiny to be required for all 1.7.0-1.9.9... API changes. I > would go so far as to say an undefinable amount of scrutiny since we still > don't have solid foundation of a 2.0 API. We cannot judge API items for how > well they belong in an API that does not exist yet. > > Tangential- I would like to see a clause about all current API items will > not be removed (still could be deprecated) until 2.0.0, as I feel this may > ease some concerns about API alteration in 1.7+. > > On Tue, Dec 2, 2014 at 3:01 PM, Christopher wrote: > > > Following the conversation on the [VOTE] thread for ACCUMULO-3176, it > seems > > we require an explicit API guidelines at least for 1.7.0 and later until > > 2.0.0. > > > > I hereby propose we adopt the following guidelines for future releases > (if > > we produce any such releases) until 2.0.0: > > > > API additions are permitted in "major" 1.x releases (1.7, 1.8, 1.9, 1.10, > > etc.). > > API should be forwards and backwards compatible within a 1.x release (no > > new additions to the API in a "bugfix" release; e.g. 1.7.1). > > New API in 1.7.0 and later 1.x releases will not be removed in 2.0 > (though > > they may be deprecated in 2.0 and subject to removal in 3.0). > > Existing API in 1.7.0 will be preserved through 2.0, and should only be > > subject to removal if it was already deprecated prior to 1.7.0 (though > they > > may be deprecated in 2.0 and subject to removal in 3.0). > > > > The purpose of these guidelines are to ensure the ability to add > additional > > functionality and evolve API naturally, while minimizing API disruptions > to > > the user base, in the interim before 2.0.0 when we can formally adopt an > > API/versioning policy. > > > > Exceptions to these guidelines should be subject to a majority vote, on a > > case-by-case basis. > > > > Because these relate to release planning, this vote will be subject to > > majority vote, in accordance with our bylaws pertaining to release > planning > > and voting, and will be open for 3 days, concluding at 2000 on 5 Dec 2014 > > UTC. > > > > -- > > Christopher L Tubbs II > > http://gravatar.com/ctubbsii > > > -- Sean --089e0141a8be3cb605050950f2b7--