Return-Path: X-Original-To: apmail-zest-commits-archive@minotaur.apache.org Delivered-To: apmail-zest-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 1258018CED for ; Fri, 31 Jul 2015 08:46:39 +0000 (UTC) Received: (qmail 83098 invoked by uid 500); 31 Jul 2015 08:46:39 -0000 Delivered-To: apmail-zest-commits-archive@zest.apache.org Received: (qmail 83078 invoked by uid 500); 31 Jul 2015 08:46:39 -0000 Mailing-List: contact commits-help@zest.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@zest.apache.org Delivered-To: mailing list commits@zest.apache.org Received: (qmail 83069 invoked by uid 99); 31 Jul 2015 08:46:38 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 31 Jul 2015 08:46:38 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id CC600E17ED; Fri, 31 Jul 2015 08:46:38 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: paulmerlin@apache.org To: commits@zest.apache.org Message-Id: X-Mailer: ASF-Git Admin Mailer Subject: zest-java git commit: ZEST-100 Some changes to the release guide after rolling 2.1 Date: Fri, 31 Jul 2015 08:46:38 +0000 (UTC) Repository: zest-java Updated Branches: refs/heads/develop 7e2f74083 -> 4c8906be6 ZEST-100 Some changes to the release guide after rolling 2.1 Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/4c8906be Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/4c8906be Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/4c8906be Branch: refs/heads/develop Commit: 4c8906be69776f890b8e2a0ea36aa5fbfab4185f Parents: 7e2f740 Author: Paul Merlin Authored: Fri Jul 31 10:45:49 2015 +0200 Committer: Paul Merlin Committed: Fri Jul 31 10:45:49 2015 +0200 ---------------------------------------------------------------------- .../docs/tutorials/howto-releasing-apache.txt | 249 +++++++++++++++---- 1 file changed, 203 insertions(+), 46 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/zest-java/blob/4c8906be/manual/src/docs/tutorials/howto-releasing-apache.txt ---------------------------------------------------------------------- diff --git a/manual/src/docs/tutorials/howto-releasing-apache.txt b/manual/src/docs/tutorials/howto-releasing-apache.txt index 21327db..9acf1c1 100644 --- a/manual/src/docs/tutorials/howto-releasing-apache.txt +++ b/manual/src/docs/tutorials/howto-releasing-apache.txt @@ -187,8 +187,9 @@ Convert to Asciidoc: [source,shell] ---- cat "apache-zest-java--release-notes.txt" | \ - sed -e "s/* \[ZEST-\([0-9]\)*\]/- https:\/\/issues.apache.org\/jira\/browse\/ZEST-\1[ZEST-\1]/" | \ - sed -e "s/^\*\*/===/" > "apache-zest-java--release-notes.adoc" + sed -e "s/\[ZEST-\([0-9]\)*\]/https:\/\/issues.apache.org\/jira\/browse\/ZEST-\1[ZEST-\1]/" | \ + sed -e "s/ \* /- /" | sed -e "s/^\*\*/====/" \ + > "apache-zest-java--release-notes.adoc" ---- Convert to Markdown: @@ -196,8 +197,9 @@ Convert to Markdown: [source,shell] ---- cat "apache-zest-java--release-notes.txt" | \ - sed -e "s/* \[ZEST-\([0-9]\)*\]/- [ZEST-\1](https:\/\/issues.apache.org\/jira\/browse\/ZEST-\1)/" | \ - sed -e "s/^\*\*/###/" > "apache-zest-java--release-notes.md" + sed -e "s/\[ZEST-\([0-9]*\)\]/[ZEST-\1](https:\/\/issues.apache.org\/jira\/browse\/ZEST-\1)/" | \ + sed -e "s/ \* /- /" | sed -e "s/^\*\*/####/" \ + > "apache-zest-java--release-notes.md" ---- You should then have the following files: @@ -318,25 +320,41 @@ As this release still is a simple candidate, we'll rename them before upload to [source,shell] ---- # Source ZIP -cp "zest-java/build/distributions/apache-zest-java--src.zip" "zest-dist/dev/zest/apache-zest-java--RC#-src.zip" -cp "zest-java/build/distributions/apache-zest-java--src.zip.MD5" "zest-dist/dev/zest/apache-zest-java--RC#-src.zip.MD5" -cp "zest-java/build/distributions/apache-zest-java--src.zip.SHA-512" "zest-dist/dev/zest/apache-zest-java--RC#-src.zip.SHA-512" -cp "zest-java/build/distributions/apache-zest-java--src.zip.asc" "zest-dist/dev/zest/apache-zest-java--RC#-src.zip.asc" +cp "zest-java/build/distributions/apache-zest-java--src.zip" \ + "zest-dist/dev/zest/apache-zest-java--RC#-src.zip" +cp "zest-java/build/distributions/apache-zest-java--src.zip.MD5" \ + "zest-dist/dev/zest/apache-zest-java--RC#-src.zip.MD5" +cp "zest-java/build/distributions/apache-zest-java--src.zip.SHA-512" \ + "zest-dist/dev/zest/apache-zest-java--RC#-src.zip.SHA-512" +cp "zest-java/build/distributions/apache-zest-java--src.zip.asc" \ + "zest-dist/dev/zest/apache-zest-java--RC#-src.zip.asc" # Source TAR.GZ -cp "zest-java/build/distributions/apache-zest-java--src.tgz" "zest-dist/dev/zest/apache-zest-java--RC#-src.tgz" -cp "zest-java/build/distributions/apache-zest-java--src.tgz.MD5" "zest-dist/dev/zest/apache-zest-java--RC#-src.tgz.MD5" -cp "zest-java/build/distributions/apache-zest-java--src.tgz.SHA-512" "zest-dist/dev/zest/apache-zest-java--RC#-src.tgz.SHA-512" -cp "zest-java/build/distributions/apache-zest-java--src.tgz.asc" "zest-dist/dev/zest/apache-zest-java--RC#-src.tgz.asc" +cp "zest-java/build/distributions/apache-zest-java--src.tgz" \ + "zest-dist/dev/zest/apache-zest-java--RC#-src.tgz" +cp "zest-java/build/distributions/apache-zest-java--src.tgz.MD5" \ + "zest-dist/dev/zest/apache-zest-java--RC#-src.tgz.MD5" +cp "zest-java/build/distributions/apache-zest-java--src.tgz.SHA-512" \ + "zest-dist/dev/zest/apache-zest-java--RC#-src.tgz.SHA-512" +cp "zest-java/build/distributions/apache-zest-java--src.tgz.asc" \ + "zest-dist/dev/zest/apache-zest-java--RC#-src.tgz.asc" # Binary ZIP -cp "zest-java/build/distributions/apache-zest-java--bin.zip" "zest-dist/dev/zest/apache-zest-java--RC#-bin.zip" -cp "zest-java/build/distributions/apache-zest-java--bin.zip.MD5" "zest-dist/dev/zest/apache-zest-java--RC#-bin.zip.MD5" -cp "zest-java/build/distributions/apache-zest-java--bin.zip.SHA-512" "zest-dist/dev/zest/apache-zest-java--RC#-bin.zip.SHA-512" -cp "zest-java/build/distributions/apache-zest-java--bin.zip.asc" "zest-dist/dev/zest/apache-zest-java--RC#-bin.zip.asc" +cp "zest-java/build/distributions/apache-zest-java--bin.zip" \ + "zest-dist/dev/zest/apache-zest-java--RC#-bin.zip" +cp "zest-java/build/distributions/apache-zest-java--bin.zip.MD5" \ + "zest-dist/dev/zest/apache-zest-java--RC#-bin.zip.MD5" +cp "zest-java/build/distributions/apache-zest-java--bin.zip.SHA-512" \ + "zest-dist/dev/zest/apache-zest-java--RC#-bin.zip.SHA-512" +cp "zest-java/build/distributions/apache-zest-java--bin.zip.asc" \ + "zest-dist/dev/zest/apache-zest-java--RC#-bin.zip.asc" # Binary TAR.GZ -cp "zest-java/build/distributions/apache-zest-java--bin.tgz" "zest-dist/dev/zest/apache-zest-java--RC#-bin.tgz" -cp "zest-java/build/distributions/apache-zest-java--bin.tgz.MD5" "zest-dist/dev/zest/apache-zest-java--RC#-bin.tgz.MD5" -cp "zest-java/build/distributions/apache-zest-java--bin.tgz.SHA-512" "zest-dist/dev/zest/apache-zest-java--RC#-bin.tgz.SHA-512" -cp "zest-java/build/distributions/apache-zest-java--bin.tgz.asc" "zest-dist/dev/zest/apache-zest-java--RC#-bin.tgz.asc" +cp "zest-java/build/distributions/apache-zest-java--bin.tgz" \ + "zest-dist/dev/zest/apache-zest-java--RC#-bin.tgz" +cp "zest-java/build/distributions/apache-zest-java--bin.tgz.MD5" \ + "zest-dist/dev/zest/apache-zest-java--RC#-bin.tgz.MD5" +cp "zest-java/build/distributions/apache-zest-java--bin.tgz.SHA-512" \ + "zest-dist/dev/zest/apache-zest-java--RC#-bin.tgz.SHA-512" +cp "zest-java/build/distributions/apache-zest-java--bin.tgz.asc" \ + "zest-dist/dev/zest/apache-zest-java--RC#-bin.tgz.asc" ---- And then upload them: @@ -368,7 +386,7 @@ I am happy to start the VOTE thread for Apache Zest (Java Edition) -RC# The distributions to be voted on are located here: https://dist.apache.org/repos/dist/dev/zest/ @@ -419,6 +437,117 @@ I will promote|drop the distributions and artifacts. Votes on whether a package is ready to be released use majority approval -- i.e., at least three PMC members must vote affirmatively for release, and there must be more positive than negative votes. + +== Verifying a Release Candidate + +In order to verify a Apache Zest™ (Java Edition) release candidate you'll need valid `wget`, `md5sum`, `shasum` with support for SHA-5.12, GnuPG and Java JDK >= 7 installations. + +If the setup feels like a chore, keep reading, you probably already have what's needed for some of the checks. +A single check is better than none. + + +=== Download RC + +First go downloading the release candidate distributions from https://dist.apache.org/repos/dist/dev/zest/[dist.a.o/repos/dist/dev/zest]. +Including `*.MD5`, `*.SHA-512` and `*.asc` files. +Put them in a directory: + +[source,shell] +---- +cd zest-check-rc +wget https://dist.apache.org/repos/dist/dev/zest/apache-zest-java--RC#-bin.tgz +wget https://dist.apache.org/repos/dist/dev/zest/apache-zest-java--RC#-bin.tgz.MD5 +wget https://dist.apache.org/repos/dist/dev/zest/apache-zest-java--RC#-bin.tgz.SHA-512 +wget https://dist.apache.org/repos/dist/dev/zest/apache-zest-java--RC#-bin.tgz.asc +wget https://dist.apache.org/repos/dist/dev/zest/apache-zest-java--RC#-bin.zip +wget https://dist.apache.org/repos/dist/dev/zest/apache-zest-java--RC#-bin.zip.MD5 +wget https://dist.apache.org/repos/dist/dev/zest/apache-zest-java--RC#-bin.zip.SHA-512 +wget https://dist.apache.org/repos/dist/dev/zest/apache-zest-java--RC#-bin.zip.asc +wget https://dist.apache.org/repos/dist/dev/zest/apache-zest-java--RC#-src.tgz +wget https://dist.apache.org/repos/dist/dev/zest/apache-zest-java--RC#-src.tgz.MD5 +wget https://dist.apache.org/repos/dist/dev/zest/apache-zest-java--RC#-src.tgz.SHA-512 +wget https://dist.apache.org/repos/dist/dev/zest/apache-zest-java--RC#-src.tgz.asc +wget https://dist.apache.org/repos/dist/dev/zest/apache-zest-java--RC#-src.zip +wget https://dist.apache.org/repos/dist/dev/zest/apache-zest-java--RC#-src.zip.MD5 +wget https://dist.apache.org/repos/dist/dev/zest/apache-zest-java--RC#-src.zip.SHA-512 +wget https://dist.apache.org/repos/dist/dev/zest/apache-zest-java--RC#-src.zip.asc +---- + + +=== Verify RC signatures + +Verify PGP signatures: + +[source,shell] +---- +cd zest-check-rc +gpg apache-zest-java--RC#-bin.tgz.asc +gpg apache-zest-java--RC#-bin.zip.asc +gpg apache-zest-java--RC#-src.tgz.asc +gpg apache-zest-java--RC#-src.zip.asc +---- + +This must output `gpg: Good signature from "Signer Name "` for each distribution. + + +Verify MD5 checksum: + +[source,shell] +---- +cd zest-check-rc +echo "$(cat apache-zest-java--RC#-bin.tgz.MD5) apache-zest-java--RC#-bin.tgz" | md5sum -c - +echo "$(cat apache-zest-java--RC#-bin.zip.MD5) apache-zest-java--RC#-bin.zip" | md5sum -c - +echo "$(cat apache-zest-java--RC#-src.tgz.MD5) apache-zest-java--RC#-src.tgz" | md5sum -c - +echo "$(cat apache-zest-java--RC#-src.zip.MD5) apache-zest-java--RC#-src.zip" | md5sum -c - +---- + +This must output `some-filename: OK` for each distribution. + + +Verify SHA-512 checksum: + +[source,shell] +---- +cd zest-check-rc +echo "$(cat apache-zest-java--RC#-bin.tgz.MD5) apache-zest-java--RC#-bin.tgz" | shasum -a 512 -c - +echo "$(cat apache-zest-java--RC#-bin.zip.MD5) apache-zest-java--RC#-bin.zip" | shasum -a 512 -c - +echo "$(cat apache-zest-java--RC#-src.tgz.MD5) apache-zest-java--RC#-src.tgz" | shasum -a 512 -c - +echo "$(cat apache-zest-java--RC#-src.zip.MD5) apache-zest-java--RC#-src.zip" | shasum -a 512 -c - +---- + +This also must output `some-filename: OK` for each distribution. + + +=== Verify source distribution + +Unpack the source distributions, we will use the `zip` distribution here, both should be checked. + +[source,shell] +---- +cd zest-check-rc +unzip apache-zest-java--RC#-src.zip +cd apache-zest-java--RC#-src +---- + + +==== LICENSE & NOTICE + +Review `LICENSE` and `NOTICE` file(s) ; +see the Apache's https://www.apache.org/dev/licensing-howto.html[Licensing Howto]. + +Tools like https://creadur.apache.org/rat/[Apache Rat™] and other projects from https://creadur.apache.org/[Apache Creadur™] can come in handy. +You can also `grep` the whole source tree. + + +==== Build RC from sources + +[source,shell] +---- +cd zest-check-rc/apache-zest-java--RC#-src +./gradlew check assemble +---- + + == VOTE passes @@ -455,34 +584,62 @@ Move the release distributions, checksums and signatures from https://dist.apach ---- cd zest-dist # Source ZIP -svn move "dev/zest/apache-zest-java--RC#-src.zip" "release/zest/apache-zest-java--src.zip" -svn move "dev/zest/apache-zest-java--RC#-src.zip.MD5" "release/zest/apache-zest-java--src.zip.MD5" -svn move "dev/zest/apache-zest-java--RC#-src.zip.SHA-512" "release/zest/apache-zest-java--src.zip.SHA-512" -svn move "dev/zest/apache-zest-java--RC#-src.zip.asc" "release/zest/apache-zest-java--src.zip.asc" +export DIST_DEV_URL="https://dist.apache.org/repos/dist/dev/zest" +export DIST_RELEASE_URL="https://dist.apache.org/repos/dist/release/zest" +svn move "$DIST_DEV_URL/apache-zest-java--RC#-src.zip" \ + "$DIST_RELEASE_URL/apache-zest-java--src.zip" \ + -m "zest: promoting release distributions" +svn move "$DIST_DEV_URL/apache-zest-java--RC#-src.zip.MD5" \ + "$DIST_RELEASE_URL/apache-zest-java--src.zip.MD5" \ + -m "zest: promoting release distributions" +svn move "$DIST_DEV_URL/apache-zest-java--RC#-src.zip.SHA-512" \ + "$DIST_RELEASE_URL/apache-zest-java--src.zip.SHA-512" \ + -m "zest: promoting release distributions" +svn move "$DIST_DEV_URL/apache-zest-java--RC#-src.zip.asc" \ + "$DIST_RELEASE_URL/apache-zest-java--src.zip.asc" \ + -m "zest: promoting release distributions" # Source TAR.GZ -svn move "dev/zest/apache-zest-java--RC#-src.tgz" "release/zest/apache-zest-java--src.tgz" -svn move "dev/zest/apache-zest-java--RC#-src.tgz.MD5" "release/zest/apache-zest-java--src.tgz.MD5" -svn move "dev/zest/apache-zest-java--RC#-src.tgz.SHA-512" "release/zest/apache-zest-java--src.tgz.SHA-512" -svn move "dev/zest/apache-zest-java--RC#-src.tgz.asc" "release/zest/apache-zest-java--src.tgz.asc" +svn move "$DIST_DEV_URL/apache-zest-java--RC#-src.tgz" \ + "$DIST_RELEASE_URL/apache-zest-java--src.tgz" \ + -m "zest: promoting release distributions" +svn move "$DIST_DEV_URL/apache-zest-java--RC#-src.tgz.MD5" \ + "$DIST_RELEASE_URL/apache-zest-java--src.tgz.MD5" \ + -m "zest: promoting release distributions" +svn move "$DIST_DEV_URL/apache-zest-java--RC#-src.tgz.SHA-512" \ + "$DIST_RELEASE_URL/apache-zest-java--src.tgz.SHA-512" \ + -m "zest: promoting release distributions" +svn move "$DIST_DEV_URL/apache-zest-java--RC#-src.tgz.asc" \ + "$DIST_RELEASE_URL/apache-zest-java--src.tgz.asc" \ + -m "zest: promoting release distributions" # Binary ZIP -svn move "dev/zest/apache-zest-java--RC#-bin.zip" "release/zest/apache-zest-java--bin.zip" -svn move "dev/zest/apache-zest-java--RC#-bin.zip.MD5" "release/zest/apache-zest-java--bin.zip.MD5" -svn move "dev/zest/apache-zest-java--RC#-bin.zip.SHA-512" "release/zest/apache-zest-java--bin.zip.SHA-512" -svn move "dev/zest/apache-zest-java--RC#-bin.zip.asc" "release/zest/apache-zest-java--bin.zip.asc" +svn move "$DIST_DEV_URL/apache-zest-java--RC#-bin.zip" \ + "$DIST_RELEASE_URL/apache-zest-java--bin.zip" \ + -m "zest: promoting release distributions" +svn move "$DIST_DEV_URL/apache-zest-java--RC#-bin.zip.MD5" \ + "$DIST_RELEASE_URL/apache-zest-java--bin.zip.MD5" \ + -m "zest: promoting release distributions" +svn move "$DIST_DEV_URL/apache-zest-java--RC#-bin.zip.SHA-512" \ + "$DIST_RELEASE_URL/apache-zest-java--bin.zip.SHA-512" \ + -m "zest: promoting release distributions" +svn move "$DIST_DEV_URL/apache-zest-java--RC#-bin.zip.asc" \ + "$DIST_RELEASE_URL/apache-zest-java--bin.zip.asc" \ + -m "zest: promoting release distributions" # Binary TAR.GZ -svn move "dev/zest/apache-zest-java--RC#-bin.tgz" "release/zest/apache-zest-java--bin.tgz" -svn move "dev/zest/apache-zest-java--RC#-bin.tgz.MD5" "release/zest/apache-zest-java--bin.tgz.MD5" -svn move "dev/zest/apache-zest-java--RC#-bin.tgz.SHA-512" "release/zest/apache-zest-java--bin.tgz.SHA-512" -svn move "dev/zest/apache-zest-java--RC#-bin.tgz.asc" "release/zest/apache-zest-java--bin.tgz.asc" ----- - -And upload them: - -[source,shell] ----- -cd zest-dist -svn commit -m "zest: -RC# vote passed, promoted as release" ----- +svn move "$DIST_DEV_URL/apache-zest-java--RC#-bin.tgz" \ + "$DIST_RELEASE_URL/apache-zest-java--bin.tgz" \ + -m "zest: promoting release distributions" +svn move "$DIST_DEV_URL/apache-zest-java--RC#-bin.tgz.MD5" \ + "$DIST_RELEASE_URL/apache-zest-java--bin.tgz.MD5" \ + -m "zest: promoting release distributions" +svn move "$DIST_DEV_URL/apache-zest-java--RC#-bin.tgz.SHA-512" \ + "$DIST_RELEASE_URL/apache-zest-java--bin.tgz.SHA-512" \ + -m "zest: promoting release distributions" +svn move "$DIST_DEV_URL/apache-zest-java--RC#-bin.tgz.asc" \ + "$DIST_RELEASE_URL/apache-zest-java--bin.tgz.asc" \ + -m "zest: promoting release distributions" +---- + +This produces one commit per file but keep svn history and runs fast, without re-uploading the distributions. === Wait 24 hours