diff --git a/NOTICE b/NOTICE index d32dd0e9ee..efc0bb27fa 100644 --- a/NOTICE +++ b/NOTICE @@ -1,5 +1,5 @@ Apache Superset (incubating) -Copyright 2016-2019 The Apache Software Foundation +Copyright 2016-2020 The Apache Software Foundation This product includes software developed at The Apache Software Foundation (http://www.apache.org/). diff --git a/README.md b/README.md index 1d282f40e1..f3c8abf484 100644 --- a/README.md +++ b/README.md @@ -135,7 +135,7 @@ Contributing ------------ Interested in contributing? Casual hacking? Check out -[Contributing.MD](https://github.com/airbnb/superset/blob/master/CONTRIBUTING.md) +[Contributing.MD](https://github.com/apache/incubator-superset/blob/master/CONTRIBUTING.md) Who uses Apache Superset (incubating)? diff --git a/RELEASING/README.md b/RELEASING/README.md index d2e94219be..5669db9800 100644 --- a/RELEASING/README.md +++ b/RELEASING/README.md @@ -54,37 +54,6 @@ need to be done at every release. svn commit -m "Add PGP keys of new Superset committer" ``` -## Crafting a source release - -When crafting a new minor or major release we create -a branch named with the release MAJOR.MINOR version (on this example 0.34). -This new branch will hold all PATCH and release candidates -that belong to the MAJOR.MINOR version. - -The MAJOR.MINOR branch is normally a "cut" from a specific point in time from the master branch. -Then (if needed) apply all cherries that will make the PATCH - -Next update the `CHANGELOG.md` with all the changes that are included in the release. Make sure you have -set your GITHUB_TOKEN environment variable. - -```bash -# will overwrites the local CHANGELOG.md, somehow you need to merge it in -github-changes -o apache -r incubator-superset --token $GITHUB_TOKEN --between-tags ... -``` - -Then, in `UPDATING.md`, a file that contains a list of notifications around -deprecations and upgrading-related topics, -make sure to move the content now under the `Next Version` section under a new -section for the new release. - -Finally bump the version number on `superset-frontend/package.json`: - -```json - "version": "0.34.1" -``` - -Commit the change with the version number, then git tag the version with the release candidate and push to the branch - ## Setting up the release environment (do every time) As the vote process takes a minimum of 72h (community vote) + 72h (IPMC) vote, @@ -96,26 +65,60 @@ the wrong files/using wrong names. There's a script to help you set correctly al necessary environment variables. Change your current directory to `superset/RELEASING` ```bash - # usage: set_release_env.sh "" - . ./set_release_env.sh XX.YY.ZZ QQ "YOUR PGP KEY NAME" + # usage: . set_release_env.sh + # example: . set_release_env.sh 0.35.2rc1 myid@apache.org ``` -The script will output the exported variables. Here's example for 0.34.1 RC1: +The script will output the exported variables. Here's example for 0.35.2rc2: ``` ------------------------------- Set Release env variables - SUPERSET_VERSION=0.34.1 + SUPERSET_PGP_FULLNAME=myid@apache.org + SUPERSET_VERSION_RC=0.35.2rc1 + SUPERSET_GITHUB_BRANCH=0.35 + SUPERSET_TMP_ASF_SITE_PATH=/tmp/incubator-superset-site-0.35.2 + SUPERSET_RELEASE_RC=apache-superset-incubating-0.35.2rc1 + SUPERSET_RELEASE_RC_TARBALL=apache-superset-incubating-0.35.2rc1-source.tar.gz SUPERSET_RC=1 - SUPERSET_PGP_FULLNAME=You PGP Key Name - SUPERSET_VERSION_RC=0.34.1rc1 - SUPERSET_RELEASE=apache-superset-incubating-0.34.1 - SUPERSET_RELEASE_RC=apache-superset-incubating-0.34.1rc1 - SUPERSET_RELEASE_TARBALL=apache-superset-incubating-0.34.1-source.tar.gz - SUPERSET_RELEASE_RC_TARBALL=apache-superset-incubating-0.34.1rc1-source.tar.gz + SUPERSET_CONFIG_PATH=/Users/ville/superset/superset_config.py + SUPERSET_RELEASE=apache-superset-incubating-0.35.2 + SUPERSET_RELEASE_TARBALL=apache-superset-incubating-0.35.2-source.tar.gz + SUPERSET_VERSION=0.35.2 ------------------------------- ``` +## Crafting a source release + +When crafting a new minor or major release we create +a branch named with the release MAJOR.MINOR version (on this example 0.35). +This new branch will hold all PATCH and release candidates +that belong to the MAJOR.MINOR version. + +The MAJOR.MINOR branch is normally a "cut" from a specific point in time from the master branch. +Then (if needed) apply all cherries that will make the PATCH + +Next update the `CHANGELOG.md` with all the changes that are included in the release. Make sure you have +set your GITHUB_TOKEN environment variable. + +```bash +# will overwrites the local CHANGELOG.md, somehow you need to merge it in +github-changes -o apache -r incubator-superset --token $GITHUB_TOKEN -b $SUPERSET_GITHUB_BRANCH +``` + +Then, in `UPDATING.md`, a file that contains a list of notifications around +deprecations and upgrading-related topics, +make sure to move the content now under the `Next Version` section under a new +section for the new release. + +Finally bump the version number on `superset-frontend/package.json` (replace with whichever version is being released excluding the RC version): + +```json + "version": "0.35.2" +``` + +Commit the change with the version number, then git tag the version with the release candidate and push to the branch + ## Preparing the release candidate The first step of preparing an Apache Release is packaging a release candidate @@ -138,7 +141,7 @@ This can be overriden by setting `SUPERSET_SVN_DEV_PATH` environment var to a di ### Build and test the created source tarball -To build and run the just created tarball +To build and run the **local copy** of the recently created tarball: ```bash # Build and run a release candidate tarball ./test_run_tarball.sh local @@ -158,7 +161,7 @@ Now let's ship this RC into svn's dev folder ### Build and test from SVN source tarball -To make a working build given a tarball +To build and run the recently created tarball **from SVN**: ```bash # Build and run a release candidate tarball ./test_run_tarball.sh diff --git a/RELEASING/make_tarball.sh b/RELEASING/make_tarball.sh index 3d0c180f1e..4a61066cd5 100755 --- a/RELEASING/make_tarball.sh +++ b/RELEASING/make_tarball.sh @@ -22,8 +22,8 @@ usage() { } if [ -z "$1" ] || [ -z "$2" ] || [ -z "$3" ]; then - if [ -z "${SUPERSET_VERSION}" ] || [ -z "${SUPERSET_RC}" ] || [ -z "${SUPERSET_PGP_FULLNAME}" ]; then - echo "No parameters found an no required environment variables set" + if [ -z "${SUPERSET_VERSION}" ] || [ -z "${SUPERSET_RC}" ] || [ -z "${SUPERSET_PGP_FULLNAME}" ] || [ -z "${SUPERSET_RELEASE_RC_TARBALL}" ]; then + echo "No parameters found and no required environment variables set" echo "usage: make_tarball.sh " usage; exit 1 @@ -32,6 +32,7 @@ else SUPERSET_VERSION="${1}" SUPERSET_RC="${2}" SUPERSET_PGP_FULLNAME="${3}" + SUPERSET_RELEASE_RC_TARBALL="apache-superset-incubating-${SUPERSET_VERSION_RC}-source.tar.gz" fi SUPERSET_VERSION_RC="${SUPERSET_VERSION}rc${SUPERSET_RC}" diff --git a/RELEASING/send_email.py b/RELEASING/send_email.py index 27da07f8d2..678d5bbfdb 100755 --- a/RELEASING/send_email.py +++ b/RELEASING/send_email.py @@ -15,9 +15,9 @@ # See the License for the specific language governing permissions and # limitations under the License. # -from typing import List import smtplib import ssl +from typing import List try: import jinja2 @@ -39,7 +39,7 @@ PROJECT_DESCRIPTION = "Apache Superset (incubating) is a modern, enterprise-read def string_comma_to_list(message: str) -> List[str]: if not message: return [] - return message.split(",") + return [element.strip() for element in message.split(",")] def send_email( diff --git a/RELEASING/set_release_env.sh b/RELEASING/set_release_env.sh index 8c87874723..dca862dd64 100755 --- a/RELEASING/set_release_env.sh +++ b/RELEASING/set_release_env.sh @@ -16,16 +16,27 @@ # limitations under the License. # usage() { - echo "usage: . set_release_env.sh " + echo "usage: . set_release_env.sh " + echo "example: . set_relese_env.sh 0.35.2rc1 myid@apache.org" } -if [ -z "$1" ] || [ -z "$2" ] || [ -z "$3" ]; then +if [ -z "$1" ] || [ -z "$2" ]; then usage; else - export SUPERSET_VERSION="${1}" - export SUPERSET_RC="${2}" - export SUPERSET_PGP_FULLNAME="${3}" - export SUPERSET_VERSION_RC="${SUPERSET_VERSION}rc${SUPERSET_RC}" + if [[ ${1} =~ ^([0-9]+)\.([0-9]+)\.([0-9]+)rc([0-9]+)$ ]]; then + VERSION_MAJOR="${BASH_REMATCH[1]}" + VERSION_MINOR="${BASH_REMATCH[2]}" + VERSION_PATCH="${BASH_REMATCH[3]}" + VERSION_RC="${BASH_REMATCH[4]}" + else + echo "unable to parse version string ${1}. Example of valid version string: 0.35.2rc1" + exit 1 + fi + export SUPERSET_VERSION="${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}" + export SUPERSET_RC="${VERSION_RC}" + export SUPERSET_GITHUB_BRANCH="${VERSION_MAJOR}.${VERSION_MINOR}" + export SUPERSET_PGP_FULLNAME="${2}" + export SUPERSET_VERSION_RC="${SUPERSET_VERSION}rc${VERSION_RC}" export SUPERSET_RELEASE=apache-superset-incubating-"${SUPERSET_VERSION}" export SUPERSET_RELEASE_RC=apache-superset-incubating-"${SUPERSET_VERSION_RC}" export SUPERSET_RELEASE_TARBALL="${SUPERSET_RELEASE}"-source.tar.gz @@ -34,6 +45,6 @@ else echo ------------------------------- echo Set Release env variables - env | grep SUPERSET + env | grep ^SUPERSET_ echo ------------------------------- fi