From 64af3aecaea73906325c64d3cf36c9f4e3f180a4 Mon Sep 17 00:00:00 2001 From: Richard Levitte Date: Fri, 24 Apr 2020 11:03:28 +0200 Subject: [PATCH] dev/release.sh: Add --reviewer to set reviewers Doing this is kind of contrary to how we normally do things, as this constitutes a kind of pre-approval. However, without this, the normal review process will modify the reviewed commits, and render the annotated release tag invalid, which forces the person doing the release to re-tag manually. Reviewed-by: Matt Caswell (Merged from https://github.com/openssl/openssl/pull/11630) --- dev/release.sh | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/dev/release.sh b/dev/release.sh index c7f19fe16d..7f7042fb18 100755 --- a/dev/release.sh +++ b/dev/release.sh @@ -24,6 +24,7 @@ Usage: release.sh [ options ... ] where '{major}' and '{minor}' are the major and minor version numbers. +--reviewer= The reviewer of the commits. --local-user= For the purpose of signing tags and tar files, use this key (default: use the default e-mail address’ key). @@ -65,6 +66,7 @@ do_manual=false tagkey=' -s' gpgkey= +reviewers= upload_address=upload@dev.openssl.org @@ -73,6 +75,7 @@ TEMP=$(getopt -l 'alpha,next-beta,beta,final' \ -l 'no-upload,no-update' \ -l 'verbose,debug' \ -l 'local-user:' \ + -l 'reviewer:' \ -l 'force' \ -l 'help,manual' \ -n release.sh -- - "$@") @@ -122,6 +125,11 @@ while true; do gpgkey=" -u $1" shift ;; + --reviewer ) + reviewers="$reviewers $1=$2" + shift + shift + ;; --force ) force=true shift @@ -311,6 +319,9 @@ if [ -n "$(git status --porcelain)" ]; then $VERBOSE "== Committing updates" git add -u git commit $git_quiet -m 'make update' + if [ -n "$reviewers" ]; then + addrev --nopr $reviewers + fi fi # Write the version information we updated @@ -339,6 +350,9 @@ done $VERBOSE "== Comitting updates and tagging" git add -u git commit $git_quiet -m "Prepare for release of $release_text" +if [ -n "$reviewers" ]; then + addrev --nopr $reviewers +fi echo "Tagging release with tag $tag. You may need to enter a pass phrase" git tag$tagkey "$tag" -m "OpenSSL $release release tag" @@ -436,6 +450,9 @@ done $VERBOSE "== Comitting updates" git add -u git commit $git_quiet -m "Prepare for $release_text" +if [ -n "$reviewers" ]; then + addrev --nopr $reviewers +fi if $do_branch; then $VERBOSE "== Going back to the main branch $current_branch" @@ -460,6 +477,9 @@ if $do_branch; then $VERBOSE "== Comitting updates" git add -u git commit $git_quiet -m "Prepare for $release_text" + if [ -n "$reviewers" ]; then + addrev --nopr $reviewers + fi fi # Done ############################################################### @@ -543,6 +563,7 @@ B<--beta> | B<--final> | B<--branch> | B<--local-user>=I | +B<--reviewer>=I | B<--no-upload> | B<--no-update> | B<--verbose> | @@ -619,6 +640,14 @@ Use I as the local user for C and for signing with C. If not given, then the default e-mail address' key is used. +=item B<--reviewer>=I + +Add I to the set of reviewers for the commits performed by this script. +Multiple reviewers are allowed. + +If no reviewer is given, you will have to run C manually, which +means retagging a release commit manually as well. + =item B<--force> Force execution. Precisely, the check that the current branch is C