Update docs and prompts for better dry-runs and no more versionizing docs

This commit is contained in:
Isaac Hollander McCreery 2015-11-02 15:38:57 -08:00
parent bc9feec409
commit 346676280f
2 changed files with 69 additions and 12 deletions

View File

@ -148,12 +148,49 @@ then, run
release/cut-official-release.sh "${VER}" "${GITHASH}" 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. 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 1. prompt you to do the remainder of the work, including building the
appropriate binaries and pushing them to the appropriate places. 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`) #### Cutting an official release (`vX.Y.Z`)
Figure out what version you're cutting, and Figure out what version you're cutting, and
@ -168,18 +205,24 @@ then, run
release/cut-official-release.sh "${VER}" "${GITHASH}" 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 1. do a series of commits on the branch for `vX.Y.Z`;
the documentation and doing the release version commit;
1. mark the `vX.Y.Z` tag at the release version commit; 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 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 previous commits;
beta version commit;
1. mark the `vX.Y.(Z+1)-beta` tag at the beta version commit; 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 1. prompt you to do the remainder of the work, including building the
appropriate binaries and pushing them to the appropriate places. 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`) #### Branching a new release series (`vX.Y`)
Once again, **this is a big deal!** If you're reading this doc for the first 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}" 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. 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. 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 1. do a series of commits on the branch for `vX.Y.0-beta`;
the documentation and doing the release version commit;
1. mark the `vX.Y.0-beta` tag at the beta version commit; 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 1. prompt you to do the remainder of the work, including building the
appropriate binaries and pushing them to the appropriate places. 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 ### Publishing binaries and release notes
The script you ran above will prompt you to take any remaining steps, including The script you ran above will prompt you to take any remaining steps, including

View File

@ -93,11 +93,20 @@ function main() {
local -r release_umask=${release_umask:-022} local -r release_umask=${release_umask:-022}
umask "${release_umask}" 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. # Start a tmp file that will hold instructions for the user.
declare -r INSTRUCTIONS="/tmp/kubernetes-${release_type}-release-${new_version}-$(date +%s)-instructions" declare -r INSTRUCTIONS="/tmp/kubernetes-${release_type}-release-${new_version}-$(date +%s)-instructions"
if $DRY_RUN; then if $DRY_RUN; then
cat > "${INSTRUCTIONS}" <<- EOM 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 EOM
else else
@ -107,8 +116,6 @@ Success! You must now do the following:
EOM EOM
fi 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}'..." echo "Cloning from '${github}'..."
git clone "${github}" "${DIR}" git clone "${github}" "${DIR}"