You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwhisk.apache.org by ra...@apache.org on 2019/09/23 19:27:59 UTC

[openwhisk-release] branch master updated: updated post-vote release instructions (#304)

This is an automated email from the ASF dual-hosted git repository.

rabbah pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openwhisk-release.git


The following commit(s) were added to refs/heads/master by this push:
     new c9c32b5  updated post-vote release instructions (#304)
c9c32b5 is described below

commit c9c32b5f76bc2a2e0e1eb286a368d48d242ce8b5
Author: David Grove <dg...@users.noreply.github.com>
AuthorDate: Mon Sep 23 15:27:54 2019 -0400

    updated post-vote release instructions (#304)
---
 docs/generate_release_notes.md                     |  27 -----
 docs/push_stage_url.md                             |  30 -----
 docs/release_instructions.md                       | 126 +++++++++++++++++----
 tools/move_stage_to_release.sh                     |  54 ---------
 .../upload_to_dist.sh                              |  27 +++--
 5 files changed, 125 insertions(+), 139 deletions(-)

diff --git a/docs/generate_release_notes.md b/docs/generate_release_notes.md
deleted file mode 100644
index b1a159f..0000000
--- a/docs/generate_release_notes.md
+++ /dev/null
@@ -1,27 +0,0 @@
-<!--
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
--->
-
-# Generate the release notes
-
-Make sure that the source code is downloaded via the script download_source_code.sh. The release notes can be generated
-by running the following script under the directory _tools_:
-```
-$ ./generate_release_notes.sh
-```
-This script will generate a release notes file named releaseNotes.md under the directory <local_release_dir>/stagingArea/sources.
diff --git a/docs/push_stage_url.md b/docs/push_stage_url.md
deleted file mode 100644
index acf804b..0000000
--- a/docs/push_stage_url.md
+++ /dev/null
@@ -1,30 +0,0 @@
-<!--
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
--->
-
-# Publish the release artifacts to the staging directory
-
-After the artifacts are generated and signed, you can run the following script under the folder _tools_, to upload them
-into the staging directory:
-
-```
-$ ./upload_artifacts.sh
-```
-
-This script will create a remote directory named openwhisk-\<version\>-\<pre_release_version\> under the staging directory, and push all the files available locally under openwhisk-\<version\>-\<pre_release_version\>
-upstream. It will overwrite the old files or directories, if the directory openwhisk-\<version\>-\<pre_release_version\> is available as a svn folder.
diff --git a/docs/release_instructions.md b/docs/release_instructions.md
index 89bc119..4e4f20e 100644
--- a/docs/release_instructions.md
+++ b/docs/release_instructions.md
@@ -162,22 +162,110 @@ restart the process with new candidate releases.  Update your
 `config.json` file by incrementing the `rc` number and changing git
 hashes.
 
-### Publishing a Successful Release
-
-TODO: This portion of the documentation and scripting still needs to be updated.
-
-  10. [Publish the release artifacts to Apache release directory](publish_apache_directory.md)
-      You should receive an email from reporter.apache.org asking you to add your version data
-      to its database shortly after you commit to the dist svn.  Please follow the link and
-      add the information (this is useful for generating board reports).
-  11. [Tag the commit IDs in the Github repository for the project](tag_release.md)
-  12. [Generate the release notes](generate_release_notes.md)
-  13. If appropriate, update dockerhub `latest` tags.
-  14. If appropriate update deploy-kube and docker-compose tag info to pick up new images.
-  15. Submit a PR to update the downloads page.
-
-  20. Announce the release -- must wait until website PR is merged and Jenkins publishes site.
-  30. Cleanup the artifacts from the release process:
-      a. Remove the rc files from staging.
-      b. Remove the previous If there is a previous released version, remove it from Apache release directory
-         (it will automatically still be available via the Apache archive server).
+### Publishing a Successful Release to Apache Dist Servers
+
+After a successful vote, the release manager will commit the artifacts
+being released to the `openwhisk` subdir of the Apache dist svn.
+
+The [`upload_to_dist.sh`](../tools/upload_to_dist.sh) script automates the copy & svn add operations, but it
+assumes that every file found in the release candidate subdir should be released.
+If this is not true (e.g., multiple parallel release votes), then the upload
+must be performed manually.
+```
+./upload_to_dist.sh ../release-configs/<MY_RELEASE_CONFIG>.json
+```
+
+Assuming the expected set of files were added, commit them:
+```
+cd ../stagingArea/svn_release && svn commit -m  "Apache OpenWhisk X.Y.Z release of <Component Description>"
+```
+
+Relatively soon after doing the svn commit, you should receive an email like
+the one shown below from reporter.apache.org asking you to add release data
+to its database information.
+```
+Hi,
+This is an automated email from reporter.apache.org.
+I see that you just pushed something to our release repository for the 'openwhisk' project
+in the following commit:
+
+r35971 at 2019-09-23 16:07:53 +0000 (Mon, 23 Sep 2019)
+Apache OpenWhisk CLI Group v1.0.0
+
+If you are a PMC member of this project, we ask that you log on to:
+<URL ELIDED>
+and add your release data (version and date) to the database.
+
+...elided rest of email...
+```
+Please follow the link and perform the update; this information is
+quite useful for drafting our periodic reports to the ASF Board.
+
+### Tag GitHub repos
+
+Each GitHub repository needs to be tagged.  Unfortunately, the naming conventions for
+tagging vary across the OpenWhisk project repositories and therefore we have not
+yet attempted to automate this step.
+
+For each released repository, the Release Manager should examine the existing set of
+tags (`git tag`) and then add a new tag following the same convention using the
+git commit hash from <MY_RELEASE_CONFIG>.json.  After tagging a repo, push the tag.
+
+Many of the GitHub repositories are configured to build binary artifacts in response
+to new tags being committed.  Monitor the build process and ensure that all expected
+artifacts are created for each tag you commit.
+
+There are some slightly outdated, but much more detailed comments
+on [release tagging](tag_release.md) available if you need a reminder
+of the git commands to use.
+
+### Create GitHub releases
+
+After pushing the tags, you should go to the GitHub Releases for
+each released project and "Draft a new release" using the tag you just
+pushed. If the project contains a CHANGELOG or RELEASENOTES, copy that
+information into the release description.
+
+### Dockerhub updates
+
+If the components you released build docker images, then you should
+build the docker images locally, tag them with the release version
+(following the naming scheme for the repo), push the new images to
+dockerhub using the whiskbot dockerhub id, and update the `latest`
+tag to point to the new images.
+
+If you have published new images to dockerhub, submit PRs to
+[openwhisk-deploy-kube](https://github.com/apache/openwhisk-deploy-kube) and [openwhisk-devtools (docker-compose)](https://github.com/apache/openwhisk-devtools) to use the new images.
+
+### Homebrew
+
+If you released a new version of openwhisk-cli, then submit a PR
+to Homebrew to publish the new cli version.
+
+### Update Downloads Page
+
+Submit a PR to [openwhisk-website](https://github.com/apache/openwhisk-website) to update the Downloads page to
+refer to the newly released versions.
+
+### Announcing the Release
+
+For all normal releases you should wait at least 24 hours before
+announcing the release to allow time for Apache Dist mirrors to
+be updated with the newly released artifacts.  You must also wait
+until the PR to update the website has been merged and the
+change appears on the website (successful Jenkins job to rebuild website).
+
+When announcing a release, you must use the URL of the OpenWhisk Downloads
+page (or some other URL that supports mirroring).  Do not include a direct
+link to the dist.apache.org svn server.
+
+Releases should always be announced to dev@openwhisk.apache.org.
+Releases can optionally be announced to announce@apache.org at the discretion
+of the release manager.
+
+### Post-release cleanup
+
+1. Remove the release candidate files from the staging svn.
+2. If there is a prior release, remove it from the release svn
+(all releases are automatically archived, removing an old release
+from dist does not remove it from the archive).
diff --git a/tools/move_stage_to_release.sh b/tools/move_stage_to_release.sh
deleted file mode 100755
index 466f593..0000000
--- a/tools/move_stage_to_release.sh
+++ /dev/null
@@ -1,54 +0,0 @@
-#!/usr/bin/env bash
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-set -e
-
-echo "Move the remote artifacts from staging to release directory."
-
-echo "THIS SCRIPT NEEDS TO BE UPDATED"
-
-exit 1
-
-SCRIPTDIR="$(cd $(dirname "$0")/ && pwd)"
-
-source "$SCRIPTDIR/load_config.sh"
-
-if [[ `wget -S --spider $RELEASE_VERSION_URL  2>&1 | grep 'HTTP/1.1 404 Not Found'` ]]; then
-    svn mkdir $RELEASE_VERSION_URL -m "Creating Apache OpenWhisk release ${version}."
-fi
-
-# Create a subversion directory for openwhisk to stage all the packages
-rm -rf $OPENWHISK_SVN
-mkdir -p $OPENWHISK_SVN
-cd $OPENWHISK_SVN
-
-# Check out the artifacts in the staging URL to a local directory.
-svn co $CURRENT_VERSION_URL $REMOTE_PATH
-
-# Check out the release directory to a local directory.
-svn co $RELEASE_VERSION_URL $REMOTE_PATH_RELEASE
-
-for repo in $(echo $repos | sed "s/,/ /g")
-do
-    repo_name=$(echo "$repo" | sed -e 's/^"//' -e 's/"$//')
-    cp ${REMOTE_PATH}/${repo_name}-${version}-sources.tar.gz* ${REMOTE_PATH_RELEASE}/
-done
-
-cd $REMOTE_PATH_RELEASE
-svn add --force *
-svn commit -m "Updating Apache OpenWhisk release ${version}."
diff --git a/docs/publish_apache_directory.md b/tools/upload_to_dist.sh
old mode 100644
new mode 100755
similarity index 64%
rename from docs/publish_apache_directory.md
rename to tools/upload_to_dist.sh
index d814f02..aa9db80
--- a/docs/publish_apache_directory.md
+++ b/tools/upload_to_dist.sh
@@ -1,4 +1,4 @@
-<!--
+#!/usr/bin/env bash
 #
 # Licensed to the Apache Software Foundation (ASF) under one or more
 # contributor license agreements.  See the NOTICE file distributed with
@@ -15,14 +15,23 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #
--->
 
-# Publish the release artifacts to Apache release directory
+set -e
 
-## Move the artifacts from the staging directory to the Apache release directory
+echo "Performing svn add in dist for each artifact in $pre_release_version."
 
-We shall not proceed this step unless we have reached the consent from the community to promote a release. Run the following
-script under _tools_ to accomplish this task:
-```
-$ ./move_stage_to_release.sh
-```
+SCRIPTDIR="$(cd $(dirname "$0")/ && pwd)"
+source "$SCRIPTDIR/load_config.sh" $1
+
+cd "$STAGE_SVN_DIR"
+svn update
+
+cd "$RELEASE_SVN_DIR"
+svn update
+
+cd "$RELEASE_SVN_DIR"
+
+for artifact in `ls "$STAGE_SVN_DIR/$pre_release_version"`; do
+    cp "$STAGE_SVN_DIR/$pre_release_version/$artifact" $artifact
+    svn add $artifact
+done