From 537574519341988338c1dc35bb23cbbf909decf4 Mon Sep 17 00:00:00 2001 From: Maxime Beauchemin Date: Mon, 12 Aug 2019 14:01:15 -0700 Subject: [PATCH] Improve release instructions (#8016) --- RELEASING/README.md | 190 +++++++++++++++++++++----------------------- 1 file changed, 90 insertions(+), 100 deletions(-) diff --git a/RELEASING/README.md b/RELEASING/README.md index 7a2f0aa0d..db53bcc51 100644 --- a/RELEASING/README.md +++ b/RELEASING/README.md @@ -16,16 +16,100 @@ KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> + # Apache Releases -To make a fresh tarball of a git reference on apache/incubator-superset -(push your tag first!) +You'll probably want to run these commands manually and understand what +they do prior to doing so. + +## Release setup + +First you need to setup a few things. This is a one-off and doesn't +need to be done at every release. ```bash -docker build -t make_tarball -f Dockerfile.make_tarball . --build-arg VERSION=0.33.0rc1 -docker run make_tarball -f Dockerfile.make_tarball --env VERSION=0.33.0rc1 + # Create PGP Key, and use your @apache.org email address + gpg --gen-key + + # Checkout ASF dist repo + + svn checkout https://dist.apache.org/repos/dist/dev/incubator/superset/ ~/svn/superset_dev + + svn checkout https://dist.apache.org/repos/dist/release/incubator/superset/ ~/svn/superset + cd ~/svn/superset + + + # Add your GPG pub key to KEYS file. Replace "Maxime Beauchemin" with your name + export FULLNAME="Maxime Beauchemin" + (gpg --list-sigs $FULLNAME && gpg --armor --export $FULLNAME ) >> KEYS + + + # Commit the changes + svn commit -m "Add PGP keys of new Superset committer" ``` +## Crafting tarball and signatures + +Now let's craft a source release +```bash + # Assuming these commands are executed from the root of the repo + # Setting a VERSION var will be useful + export VERSION=0.31.0rc18 + export RELEASE=apache-superset-incubating-${VERSION} + export RELEASE_TARBALL=${RELEASE}-source.tar.gz + + # Let's create a git tag + git tag -f ${VERSION} + + # [WARNING!] This command wipes everything in your repo that is + # gitignored in preparation for the source release. + # You may want to check that there's nothing your care about here first. + # Alternatively you could clone the repo into another location as in + # git clone git@github.com:apache/incubator-superset.git superset-releases + git clean -fxd + # Create the target folder + mkdir -p ~/svn/superset_dev/${VERSION}/ + git archive \ + --format=tar.gz ${VERSION} \ + --prefix="${RELEASE}/" \ + -o ~/svn/superset_dev/${VERSION}/${RELEASE_TARBALL} + + cd ~/svn/superset_dev/${VERSION}/ + scripts/sign.sh ${RELEASE}-source.tar.gz +``` + +## Shipping to SVN + +Now let's ship this RC into svn's dev folder + +```bash + cd ~/svn/superset_dev/ + svn add ${VERSION} + svn commit +``` + +Now you're ready to start the VOTE thread. + +## Validating a release + +https://www.apache.org/info/verification.html + +## Publishing a successful release + +Upon a successful vote, you'll have to copy the folder into the non-"dev/" +folder. +```bash + cp -r ~/svn/superset_dev/${VERSION}/ ~/svn/superset/${VERSION}/ + cd ~/svn/superset/ + svn add ${VERSION} + svn commit +``` + +Now you can announce the release on the mailing list, make sure to use the +proper template + +## Build from source tarball + To make a working build given a tarball ```bash # Building a docker from a tarball @@ -33,12 +117,12 @@ VERSION=0.33.0rc2 && \ docker build -t apache-superset:$VERSION -f Dockerfile.from_tarball . --build-arg VERSION=$VERSION # testing the resulting docker -docker run -p 5001:8088 apache-superset:0.33.0rc2 +docker run -p 5001:8088 apache-superset:$VERSION # you should be able to access localhost:5001 on your browser # login using admin/admin ``` -## Refresh documentation website +# Refresh documentation website Every once in a while we want to compile the documentation and publish it. Here's how to do it. @@ -67,97 +151,3 @@ git add . git commit -a -m "New doc version" git push origin master ``` - -# Apache Releases - -You'll probably want to run these commands manually and understand what -they do prior to doing so. - -## Release setup - -First you need to setup a few things. This is a one-off and doesn't -need to be done at every release. - -```bash - # Create PGP Key, and use your @apache.org email address - gpg --gen-key - - # Checkout ASF dist repo - - svn checkout https://dist.apache.org/repos/dist/dev/incubator/superset/ ~/svn/superset_dev - - svn checkout https://dist.apache.org/repos/dist/release/incubator/superset/ ~/svn/superset - cd ~/svn/superset - - - # Add your GPG pub key to KEYS file. Replace "Maxime Beauchemin" with your name - export FULLNAME="Maxime Beauchemin" - (gpg --list-sigs $FULLNAME && gpg --armor --export $FULLNAME ) >> KEYS - - - # Commit the changes - svn commit -m "Add PGP keys of new Superset committer" -``` - -## Crafting tarball and signatures - -Now let's craft a source release -```bash - # Assuming these commands are executed from the root of the repo - # Setting a VERSION var will be useful - export VERSION=0.31.0rc18 - export RELEASE=apache-superset-incubating-${VERSION} - export RELEASE_TARBAL=${RELEASE}-source.tar.gz - - # Let's create a git tag - git tag -f ${VERSION} - - # [WARNING!] This command wipes everything in your repo that is - # gitignored in preparation for the source release. - # You may want to check that there's nothing your care about here first. - # Alternatively you could clone the repo into another location as in - # git clone git@github.com:apache/incubator-superset.git superset-releases - git clean -fxd - # Create the target folder - mkdir -p ~/svn/superset_dev/${VERSION}/ - git archive \ - --format=tar.gz ${VERSION} \ - --prefix=${RELEASE}/ \ - -o ~/svn/superset_dev/${VERSION}/${RELEASE_TARBALL} - - cd ~/svn/superset_dev/ - scripts/sign.sh ${RELEASE}-source.tar.gz -``` - -## Shipping to SVN - -Now let's ship this RC into svn's dev folder - -```bash - # cp or mv the files over to the svn repo - mkdir ~/svn/superset_dev/${VERSION}/ - cp ${RELEASE_TARBALL} ~/svn/superset_dev/${VERSION}/ - cd ~/svn/superset_dev/ - svn add ${VERSION} - svn commit -``` - -Now you're ready to start the VOTE thread. - -## Validating a release - -https://www.apache.org/info/verification.html - -## Publishing a successful release - -Upon a successful vote, you'll have to copy the folder into the non-"dev/" -folder. -```bash - cp -r ~/svn/superset_dev/${VERSION}/ ~/svn/superset/${VERSION}/ - cd ~/svn/superset/ - svn add ${VERSION} - svn commit -``` - -Now you can announce the release on the mailing list, make sure to use the -proper template