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 BDCB410A66 for ; Wed, 20 May 2015 18:41:12 +0000 (UTC) Received: (qmail 24837 invoked by uid 500); 20 May 2015 18:41:12 -0000 Delivered-To: apmail-accumulo-dev-archive@accumulo.apache.org Received: (qmail 24801 invoked by uid 500); 20 May 2015 18:41:12 -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 24782 invoked by uid 99); 20 May 2015 18:41:12 -0000 Received: from Unknown (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 20 May 2015 18:41:12 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id C17F2C6E32 for ; Wed, 20 May 2015 18:41:11 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -0.099 X-Spam-Level: X-Spam-Status: No, score=-0.099 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, URIBL_BLOCKED=0.001] autolearn=disabled Authentication-Results: spamd1-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from mx1-eu-west.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id vNT2y3Va_0Q1 for ; Wed, 20 May 2015 18:40:57 +0000 (UTC) Received: from mail-qc0-f182.google.com (mail-qc0-f182.google.com [209.85.216.182]) by mx1-eu-west.apache.org (ASF Mail Server at mx1-eu-west.apache.org) with ESMTPS id 0A3BF20C38 for ; Wed, 20 May 2015 18:40:57 +0000 (UTC) Received: by qcir1 with SMTP id r1so27839909qci.3 for ; Wed, 20 May 2015 11:40:56 -0700 (PDT) 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=ovT/1BifauRVJJz2po4IxElh1doTu49JiTAuCPE79p0=; b=fN7ACeT9rLKtlEeHVFfjK1OCtBqlanioHo7Ho+WRLFJy2uzrOLijOI44rT19tZkXc1 /ElvKWublS+/LpHaZJfFV0h/WzZF+7a2MTlBe62LvnYM0R1bigloMPhZw6NS/xyzi9aF ++Mu85kYjnLtuzQlHZF8Cqk52yTtmW/qL8DHpn9A8xFM3dYt6nM5zUI2ksm/Km9+FY6C BtU+qDaE6ZHrn3teeKUodBRxCtz9pAAE6iZ1HVAPzc+yUkrlGDLJcKFxz/Pp6UhRpC3X 7hdDsID7Ich7xtNKuSFcgBIfMYgy8bNfFdPaRd/2PG6OgFOZFDaIKiA0CgUAW054Q6yP ndQg== X-Received: by 10.140.105.198 with SMTP id c64mr44896986qgf.61.1432147255844; Wed, 20 May 2015 11:40:55 -0700 (PDT) Received: from hw10447.local (pool-173-69-176-122.bltmmd.fios.verizon.net. [173.69.176.122]) by mx.google.com with ESMTPSA id 71sm11589899qht.28.2015.05.20.11.40.54 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Wed, 20 May 2015 11:40:55 -0700 (PDT) Message-ID: <555CD535.80007@gmail.com> Date: Wed, 20 May 2015 14:40:53 -0400 From: Josh Elser User-Agent: Postbox 3.0.11 (Macintosh/20140602) MIME-Version: 1.0 To: dev@accumulo.apache.org Subject: Re: Ease of making release candidates (was: Javadocs in binary "release") References: <555CBD0F.9000907@gmail.com> In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit I don't see automation and prerequisites as being mutually exclusive. Any sort of automation can still valid the necessary prereqs. I understand that keeping as close to the normal `mvn release:prepare release:perform` is desirable. It's reasonable to hope that people know the inner workings of Maven, but I think it's a losing battle to push for that to be the norm. The automatic GPG caching is a nice inclusion in --create-release-candidate that lets me walk away from my terminal faster, but aside from that, it's just a wrapper to not force everyone to understand how Maven works. IMO, there's value in that. Having a non-interactive command is very useful IMO. What does it assume now? You referring to the assumed-available gpg-agent? Whether it's a script or a Makefile is just details to me -- just changes how I invoke it, not what the net effect. A big issue that bothered me for 1.7.0 is the lack of clarity in how the maven-release-plugin interacts with our branching strategy. We talked about this on IRC (which I tried to capture[1] in a recent addition). How can we improve the complete RC picture there? The other half of me wanting to fork off this convo is that there's also more to making a release than just making the release candidate. I probably had 30+ commits to CMS over the past week (granted some of which were me just editing content on CMS), but we have a lot of steps which are now just copying files from the release, committing to the site repo. I'd love to see more done for automation here that can reduce the pain for the post-RC work. [1] http://accumulo.apache.org/releasing.html#create-the-candidate Christopher wrote: > I agree with making it automated as much as possible. I'm just talking > about how to kick off that automation. > There are, after all, prerequisites, and we aren't going to be able to > satisfy all of those. > > Part of the power that Maven offers when it is used to automate things > like releases, is standardized, familiar tooling, which isn't > project-specific. When a user realizes that all they have to do is run > "mvn release:prepare release:perform" on *every* project they > participate in, that's much better than a separate "make_rc.sh", > "build.sh", etc. for each different project. When executing a maven > command is how the automation is triggered (instead of a script which > does little more than execute the maven command), I think developers > benefit from gaining a bit of insight into what they are actually > doing... without adding complexity. > > There are some things we can't really automate. And, as far as I'm > concerned, our build.sh already makes some assumptions it shouldn't > about a user running a gpg-agent. We could easily provide a contrib > script which caches the gpg key in the gpg-agent, and offer that as a > convenience. But if a user already has their key in a gpg-agent (like > gnome-keyring-daemon), we shouldn't assume we have something to do. > > One compromise might be to leave the build.sh script in place, but > make it more interactive, so we can prompt and inform, rather than > assume. For the inform part, this would be similar to a Makefile, > which displays what is executing as it executes (for that matter, we > can actually use a Makefile rather than use build.sh). > > -- > Christopher L Tubbs II > http://gravatar.com/ctubbsii > > > On Wed, May 20, 2015 at 12:57 PM, Josh Elser wrote: >> (forking to its own thread) >> >> Oh dear, and here I was about to recommend that we have an end2end script >> that does _all_ of the updated things that I wrote down last night. >> >> For context, HBase has a make_rc.sh script that devs can use to make a >> release candidate. >> >> https://github.com/apache/hbase/blob/master/dev-support/make_rc.sh >> >> We should be aiming for as much automation as possible. While I can >> understand your desire for developers to actually understand what they're >> doing, I think we need to focus on making as easy as possible. That will >> help make sure _anyone_ can make a release, not just those who understand >> all of the intricacies. >> >> Christopher wrote: >>> One thing I was thinking: I'd prefer people not use build.sh script. I >>> think it kind of discourages lack of understanding what's going on. >>> And... it doesn't really automate things much. The most helpful thing >>> it does is cache your gpg key in your gpg-agent. After that, it's a >>> maven one-liner. >>> >>> What do you think about updating the releasing page to describe what >>> build.sh does, rather than encourage its use? >>> >>> -- >>> Christopher L Tubbs II >>> http://gravatar.com/ctubbsii >>