From 346676280fa29a8f770a1a1af3e20b600f59f235 Mon Sep 17 00:00:00 2001 From: Isaac Hollander McCreery Date: Mon, 2 Nov 2015 15:38:57 -0800 Subject: [PATCH] Update docs and prompts for better dry-runs and no more versionizing docs --- docs/devel/releasing.md | 68 ++++++++++++++++++++++++++++----- release/cut-official-release.sh | 13 +++++-- 2 files changed, 69 insertions(+), 12 deletions(-) diff --git a/docs/devel/releasing.md b/docs/devel/releasing.md index f430b3a3958..671ab8afc0d 100644 --- a/docs/devel/releasing.md +++ b/docs/devel/releasing.md @@ -148,12 +148,49 @@ then, run release/cut-official-release.sh "${VER}" "${GITHASH}" ``` -This will: +This will do a dry run of: 1. mark the `vX.Y.0-alpha.W` tag at the given git hash; 1. prompt you to do the remainder of the work, including building the appropriate binaries and pushing them to the appropriate places. +If you're satisfied with the result, run + +```console +release/cut-official-release.sh "${VER}" "${GITHASH}" --no-dry-run +``` + +and follow the instructions. + +#### Cutting an beta release (`vX.Y.Z-beta.W`) + +Figure out what version you're cutting, and + +```console +export VER="vX.Y.Z-beta.W" +``` + +then, run + +```console +release/cut-official-release.sh "${VER}" "${GITHASH}" +``` + +This will do a dry run of: + +1. do a series of commits on the release branch for `vX.Y.Z-beta`; +1. mark the `vX.Y.Z-beta` tag at the beta version commit; +1. prompt you to do the remainder of the work, including building the + appropriate binaries and pushing them to the appropriate places. + +If you're satisfied with the result, run + +```console +release/cut-official-release.sh "${VER}" "${GITHASH}" --no-dry-run +``` + +and follow the instructions. + #### Cutting an official release (`vX.Y.Z`) Figure out what version you're cutting, and @@ -168,18 +205,24 @@ then, run release/cut-official-release.sh "${VER}" "${GITHASH}" ``` -This will: +This will do a dry run of: -1. do a series of commits on the branch for `vX.Y.Z`, including versionizing - the documentation and doing the release version commit; +1. do a series of commits on the branch for `vX.Y.Z`; 1. mark the `vX.Y.Z` tag at the release version commit; 1. do a series of commits on the branch for `vX.Y.(Z+1)-beta` on top of the - previous commits, including versionizing the documentation and doing the - beta version commit; + previous commits; 1. mark the `vX.Y.(Z+1)-beta` tag at the beta version commit; 1. prompt you to do the remainder of the work, including building the appropriate binaries and pushing them to the appropriate places. +If you're satisfied with the result, run + +```console +release/cut-official-release.sh "${VER}" "${GITHASH}" --no-dry-run +``` + +and follow the instructions. + #### Branching a new release series (`vX.Y`) Once again, **this is a big deal!** If you're reading this doc for the first @@ -198,16 +241,23 @@ then, run release/cut-official-release.sh "${VER}" "${GITHASH}" ``` -This will: +This will do a dry run of: 1. mark the `vX.(Y+1).0-alpha.0` tag at the given git hash on `master`; 1. fork a new branch `release-X.Y` off of `master` at the given git hash; -1. do a series of commits on the branch for `vX.Y.0-beta`, including versionizing - the documentation and doing the release version commit; +1. do a series of commits on the branch for `vX.Y.0-beta`; 1. mark the `vX.Y.0-beta` tag at the beta version commit; 1. prompt you to do the remainder of the work, including building the appropriate binaries and pushing them to the appropriate places. +If you're satisfied with the result, run + +```console +release/cut-official-release.sh "${VER}" "${GITHASH}" --no-dry-run +``` + +and follow the instructions. + ### Publishing binaries and release notes The script you ran above will prompt you to take any remaining steps, including diff --git a/release/cut-official-release.sh b/release/cut-official-release.sh index eed2fe31c4c..cc95056c228 100755 --- a/release/cut-official-release.sh +++ b/release/cut-official-release.sh @@ -93,11 +93,20 @@ function main() { local -r release_umask=${release_umask:-022} umask "${release_umask}" + local -r github="https://github.com/kubernetes/kubernetes.git" + declare -r DIR="/tmp/kubernetes-${release_type}-release-${new_version}-$(date +%s)" + # Start a tmp file that will hold instructions for the user. declare -r INSTRUCTIONS="/tmp/kubernetes-${release_type}-release-${new_version}-$(date +%s)-instructions" if $DRY_RUN; then cat > "${INSTRUCTIONS}" <<- EOM -Success! You would now do the following, if not a dry run: +Success on dry run! Do + + pushd ${DIR} + +to see what happened. + +You would now do the following, if not a dry run: EOM else @@ -107,8 +116,6 @@ Success! You must now do the following: EOM fi - local -r github="https://github.com/kubernetes/kubernetes.git" - declare -r DIR="/tmp/kubernetes-${release_type}-release-${new_version}-$(date +%s)" echo "Cloning from '${github}'..." git clone "${github}" "${DIR}"