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 93B0E101F8 for ; Wed, 5 Feb 2014 04:51:24 +0000 (UTC) Received: (qmail 97416 invoked by uid 500); 5 Feb 2014 04:51:23 -0000 Delivered-To: apmail-accumulo-dev-archive@accumulo.apache.org Received: (qmail 97177 invoked by uid 500); 5 Feb 2014 04:51:21 -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 97168 invoked by uid 99); 5 Feb 2014 04:51:20 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 05 Feb 2014 04:51:20 +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 (athena.apache.org: domain of josh.elser@gmail.com designates 209.85.216.180 as permitted sender) Received: from [209.85.216.180] (HELO mail-qc0-f180.google.com) (209.85.216.180) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 05 Feb 2014 04:51:13 +0000 Received: by mail-qc0-f180.google.com with SMTP id i17so15579623qcy.11 for ; Tue, 04 Feb 2014 20:50:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:subject:references :in-reply-to:content-type:content-transfer-encoding; bh=2QfCHgP/JinJkMg5xyj+lFXB1XLSz5nIDnMP3jsXmgc=; b=yJw2ezJC6RYqaxq9pX2mF69G011RStGimiCPaDRydZqrnj2+pqlAkkrUwbDO3t7fPZ PrCaz7SSws+GBlBgBFo5eaVmehKK1bNtW0MCJOnBQU/ZTi49ztNWwHNJzsCwmnWlr6AS P7r0W/IFpyeyGHKqr8d//cAboeVHgGiwxxx9KZpc0TH6eYRven8QPWZ+rFKYYfhCSNI+ k5ahF9TdRom2xq+YJN+oeY4M+jJrJ9YcN1tq+UeUwjwMl02kekbOJmga1ctDrjTRkyEN zPtImJ5a0o0eHkU95568IdDtO2IN2i4hodVQXMv28WZGMV0zQbv0LgxaxtWq+HyHiZI1 eP0Q== X-Received: by 10.224.167.143 with SMTP id q15mr72577618qay.97.1391575853043; Tue, 04 Feb 2014 20:50:53 -0800 (PST) Received: from HW10447.local (pool-173-69-177-34.bltmmd.fios.verizon.net. [173.69.177.34]) by mx.google.com with ESMTPSA id p3sm73635605qat.5.2014.02.04.20.50.52 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Tue, 04 Feb 2014 20:50:52 -0800 (PST) Message-ID: <52F1C32C.6070708@gmail.com> Date: Tue, 04 Feb 2014 23:50:52 -0500 From: Josh Elser User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:24.0) Gecko/20100101 Thunderbird/24.2.0 MIME-Version: 1.0 To: dev@accumulo.apache.org Subject: Re: [DISCUSS] How to generate RC's References: <52CE281A.3040402@gmail.com> <52D021C7.6050001@gmail.com> <52D4116E.7050707@gmail.com> In-Reply-To: <52D4116E.7050707@gmail.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org Some extra notes that I ran into with not working against maven-release-plugin. The plugin will prompt for the release version, the tag name, and the next development version. For 1.5.1, we really want to give 1.5.1, 1.5.1-rcN, 1.5.2-SNAPSHOT. However, this will result in 1.5.1-rcN being placed in the pom which is undesirable. To get this to work, I actually gave 1.5.1, 1.5.1 and 1.5.2-SNAPSHOT (which results in the proper values in the pom), created the 1.5.1-rcN branch from the release plugin commit for 1.5.1, edited scm.tag in release.properties to be 1.5.1-rcN instead of 1.5.1, and then pushed the 1.5.1-rcN branch. Then, release:perform will actually build and stage the right code. Not as simple as it might be, but at least it works and semi-aligns with what we described originally. On 1/13/14, 11:16 AM, Josh Elser wrote: > On 1/13/14, 10:17 AM, Mike Drob wrote: >> #1 - No strong opinions. >> #2 - I want to make the transition for committers from one branch to the >> next as painless as possible. In particular, I'm worried that somebody >> will >> not realize they need to switch branched and accidentally push e.g. >> 1.4.5-SNAPSHOT after we create a 1.4.6-SNAPSHOT branch. I really really >> want just a general 1.4 branch to deal with this case. (And similarly >> applied to the other lines.) >> >> What do you mean "put down the info... with the git-archive?" Listing the >> exact command? > > Yes, e.g. run cmd1, then cmd2, then cmd3. Making a release (candidate) > shouldn't be harder than ensuring you have a GPG created. > >> Another thought I had on this - what kind of tags are we using? >> Lightweight? Annotated? Signed? > > I think Christopher had recommended a signed tag. ACCUMULO-1468 should > have that definitively, but I'm not really up to date on what > common/good practices are here. > >> I think 1.4.4 has been the only git release, and I used a lightweight tag >> due to ignorance rather than choice. >> >> On Fri, Jan 10, 2014 at 11:37 AM, Josh Elser >> wrote: >> >>> For #1, we typically haven't had a need/desire to keep around how we got >>> to a release (the RCs), but just the final release itself. If this is >>> something that has merit to it (besides trying to avoid the same >>> mistakes >>> in future releases), I can't think of a good one. Maybe putting an RC-X >>> note in the commit message would be sufficient? >>> >>> #2, we could. I think the way Mike has this laid out is a little more >>> secure against people working already working on things for the next >>> release (or people who are still working on known bugs in a RC), but >>> they >>> both do the same thing. >>> >>> Mike -- whatever we finalize on, we can use ACCUMULO-1468 to document >>> this. Perhaps we can also put down the info you used for 1.4.4 with the >>> git-archive? We also should transcribe the mvn-deploy info from >>> Christopher >>> that I have linked in the ticket. >>> >>> >>> On 1/9/14, 9:27 AM, Bill Havanki wrote: >>> >>>> Overall, the process looks good, and I agree with Josh's clarification. >>>> Two >>>> pieces of feedback: >>>> >>>> 1. Step 8 removes a recording of the history leading to the release. >>>> For >>>> example, suppose rc1 is no good, and it takes three commits to get >>>> to rc2, >>>> which passes. When we remove the rc1 branch, how do we easily figure >>>> out >>>> months later which commit rc1 had been based on? (Look at an rc1 JAR >>>> manifest for the hash? eww.) On the other hand, I can see a benefit in >>>> removing inactive branches and tags to reduce clutter. >>>> >>>> 2. We could save a step, namely #7, by applying the increment to >>>> x.y.a-SNAPSHOT (the next version) on the tip of x.y.z-SNAPSHOT >>>> instead of >>>> on x.y.z. However, this would not leave a linear history, so I leave >>>> it to >>>> the more Git-savvy to decide if that is important in this case. >>>> >>>> Bill H >>>> >>>> >>>> On Wed, Jan 8, 2014 at 11:39 PM, Josh Elser >>>> wrote: >>>> >>>> Looks good to me. I don't think it's too much work in the big >>>> picture -- >>>>> it's what's necessary to get it done properly given the tool. >>>>> >>>>> The only ambiguity I see is in 3a), "make corrections _on >>>>> x.y.z-SNAPSHOT_". >>>>> >>>>> Let's make sure this (assuming there aren't any objections) gets up on >>>>> the >>>>> site. >>>>> >>>>> - Josh >>>>> >>>>> >>>>> On 1/8/14, 7:58 PM, Mike Drob wrote: >>>>> >>>>> Taking this conversation from IRC because it probably needs to be >>>>> on the >>>>>> mailing list at some point. Also, we'll want to update the site >>>>>> when we >>>>>> have something we are happy with. Thanks to Christopher and Josh >>>>>> for the >>>>>> thoughts they've already contributed to the discussion. >>>>>> >>>>>> We need a standard procedure for generating RCs that is: >>>>>> 1) Easily reproducible >>>>>> 2) Compatible with ongoing development >>>>>> 3) Compatible with our git branching model. >>>>>> >>>>>> The proposed process is: >>>>>> 1) Create an RC branch named x.y.z-rcN from (the tip of) >>>>>> x.y.z-SNAPSHOT >>>>>> 2) Commit pom version changes to the branch, tag as rc, and push >>>>>> 3) Perform testing and voting as necessary >>>>>> 3a) If the vote fails, make corrections and start over at 1) >>>>>> 4) After a vote passes, tag the release on the same commit that >>>>>> was the >>>>>> rc >>>>>> 5) Apply additional pom changes (i.e. increment to next SNAPSHOT >>>>>> version) >>>>>> 6) Create a new development branch x.y.a-SNAPSHOT based on the >>>>>> current >>>>>> tip >>>>>> of x.y.z-SNAPSHOT >>>>>> 7) Merge tag + version increment into x.y.a-SNAPSHOT branch >>>>>> 8) Delete all rc tags, rc branches, and x.y.z-SNAPSHOT >>>>>> >>>>>> After having typed that all out it kind of seems like a lot of >>>>>> steps to >>>>>> go >>>>>> through, but on the other hand, we're not going to be doing >>>>>> everything >>>>>> at >>>>>> once anyway. >>>>>> >>>>>> Additional feedback would be awesome. >>>>>> >>>>>> Mike >>>>>> >>>>>> >>>>>> >>>> >>>> >>