docs(release): add some improvements from 1.0.0 release round (#12633)
This commit is contained in:
parent
734fb75219
commit
df8bb3bb18
|
|
@ -60,8 +60,8 @@ need to be done at every release.
|
||||||
|
|
||||||
## Setting up the release environment (do every time)
|
## Setting up the release environment (do every time)
|
||||||
|
|
||||||
As the vote process takes a minimum of 72h (community vote) + 72h (IPMC) vote,
|
As the vote process takes a minimum of 72h, sometimes stretching over several weeks
|
||||||
often stretching over several weeks calendar time if votes don't pass, chances are
|
of calendar time if votes don't pass, chances are
|
||||||
the same terminal session won't be used for crafting the release candidate and the
|
the same terminal session won't be used for crafting the release candidate and the
|
||||||
final release. Therefore, it's a good idea to do the following every time you
|
final release. Therefore, it's a good idea to do the following every time you
|
||||||
work on a new phase of the release process to make sure you aren't releasing
|
work on a new phase of the release process to make sure you aren't releasing
|
||||||
|
|
@ -71,33 +71,33 @@ and execute the `set_release_env.sh` script with the relevant parameters:
|
||||||
|
|
||||||
Usage (BASH):
|
Usage (BASH):
|
||||||
```bash
|
```bash
|
||||||
. set_release_env.sh <SUPERSET_RC_VERSION> <PGP_KEY_FULLNAME>
|
. set_release_env.sh <SUPERSET_RC_VERSION> <PGP_KEY_FULLNAME>
|
||||||
```
|
```
|
||||||
|
|
||||||
Usage (ZSH):
|
Usage (ZSH):
|
||||||
```bash
|
```bash
|
||||||
source set_release_env.sh <SUPERSET_RC_VERSION> <PGP_KEY_FULLNAME>
|
source set_release_env.sh <SUPERSET_RC_VERSION> <PGP_KEY_FULLNAME>
|
||||||
```
|
```
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
```bash
|
```bash
|
||||||
source set_release_env.sh 0.38.0rc1 myid@apache.org
|
source set_release_env.sh 0.38.0rc1 myid@apache.org
|
||||||
```
|
```
|
||||||
|
|
||||||
The script will output the exported variables. Here's example for 0.38.0rc1:
|
The script will output the exported variables. Here's example for 0.38.0rc1:
|
||||||
|
|
||||||
```
|
```
|
||||||
Set Release env variables
|
Set Release env variables
|
||||||
SUPERSET_VERSION=0.38.0
|
SUPERSET_VERSION=0.38.0
|
||||||
SUPERSET_RC=1
|
SUPERSET_RC=1
|
||||||
SUPERSET_GITHUB_BRANCH=0.38
|
SUPERSET_GITHUB_BRANCH=0.38
|
||||||
SUPERSET_PGP_FULLNAME=myid@apache.org
|
SUPERSET_PGP_FULLNAME=myid@apache.org
|
||||||
SUPERSET_VERSION_RC=0.38.0rc1
|
SUPERSET_VERSION_RC=0.38.0rc1
|
||||||
SUPERSET_RELEASE=apache-superset-0.38.0
|
SUPERSET_RELEASE=apache-superset-0.38.0
|
||||||
SUPERSET_RELEASE_RC=apache-superset-0.38.0rc1
|
SUPERSET_RELEASE_RC=apache-superset-0.38.0rc1
|
||||||
SUPERSET_RELEASE_TARBALL=apache-superset-0.38.0-source.tar.gz
|
SUPERSET_RELEASE_TARBALL=apache-superset-0.38.0-source.tar.gz
|
||||||
SUPERSET_RELEASE_RC_TARBALL=apache-superset-0.38.0rc1-source.tar.gz
|
SUPERSET_RELEASE_RC_TARBALL=apache-superset-0.38.0rc1-source.tar.gz
|
||||||
SUPERSET_TMP_ASF_SITE_PATH=/tmp/superset-site-0.38.0
|
SUPERSET_TMP_ASF_SITE_PATH=/tmp/superset-site-0.38.0
|
||||||
```
|
```
|
||||||
|
|
||||||
## Crafting a source release
|
## Crafting a source release
|
||||||
|
|
@ -134,18 +134,18 @@ 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):
|
Finally bump the version number on `superset-frontend/package.json` (replace with whichever version is being released excluding the RC version):
|
||||||
|
|
||||||
```json
|
```json
|
||||||
"version": "0.38.0"
|
"version": "0.38.0"
|
||||||
```
|
```
|
||||||
|
|
||||||
Commit the change with the version number, then git tag the version with the release candidate and push to the branch:
|
Commit the change with the version number, then git tag the version with the release candidate and push to the branch:
|
||||||
|
|
||||||
```
|
```
|
||||||
# add changed files and commit
|
# add changed files and commit
|
||||||
git add ...
|
git add ...
|
||||||
git commit ...
|
git commit ...
|
||||||
# push new tag
|
# push new tag
|
||||||
git tag ${SUPERSET_VERSION_RC}
|
git tag ${SUPERSET_VERSION_RC}
|
||||||
git push upstream ${SUPERSET_VERSION_RC}
|
git push upstream ${SUPERSET_VERSION_RC}
|
||||||
```
|
```
|
||||||
|
|
||||||
## Preparing the release candidate
|
## Preparing the release candidate
|
||||||
|
|
@ -156,9 +156,9 @@ release on Superset's repo (MAJOR.MINOR branch), the following script will clone
|
||||||
the tag and create a signed source tarball from it:
|
the tag and create a signed source tarball from it:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# make_tarball will use the previously set environment variables
|
# make_tarball will use the previously set environment variables
|
||||||
# you can override by passing arguments: make_tarball.sh <SUPERSET_VERSION> <SUPERSET_VERSION_RC> "<PGP_KEY_FULLNAME>"
|
# you can override by passing arguments: make_tarball.sh <SUPERSET_VERSION> <SUPERSET_VERSION_RC> "<PGP_KEY_FULLNAME>"
|
||||||
./make_tarball.sh
|
./make_tarball.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
Note that `make_tarball.sh`:
|
Note that `make_tarball.sh`:
|
||||||
|
|
@ -172,10 +172,10 @@ This can be overriden by setting `SUPERSET_SVN_DEV_PATH` environment var to a di
|
||||||
|
|
||||||
To build and run the **local copy** of the recently created tarball:
|
To build and run the **local copy** of the recently created tarball:
|
||||||
```bash
|
```bash
|
||||||
# Build and run a release candidate tarball
|
# Build and run a release candidate tarball
|
||||||
./test_run_tarball.sh local
|
./test_run_tarball.sh local
|
||||||
# you should be able to access localhost:5001 on your browser
|
# you should be able to access localhost:5001 on your browser
|
||||||
# login using admin/admin
|
# login using admin/admin
|
||||||
```
|
```
|
||||||
|
|
||||||
### Shipping to SVN
|
### Shipping to SVN
|
||||||
|
|
@ -183,19 +183,19 @@ To build and run the **local copy** of the recently created tarball:
|
||||||
Now let's ship this RC into svn's dev folder
|
Now let's ship this RC into svn's dev folder
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd ~/svn/superset_dev/
|
cd ~/svn/superset_dev/
|
||||||
svn add ${SUPERSET_VERSION_RC}
|
svn add ${SUPERSET_VERSION_RC}
|
||||||
svn commit -m "Release ${SUPERSET_VERSION_RC}"
|
svn commit -m "Release ${SUPERSET_VERSION_RC}"
|
||||||
```
|
```
|
||||||
|
|
||||||
### Build and test from SVN source tarball
|
### Build and test from SVN source tarball
|
||||||
|
|
||||||
To build and run the recently created tarball **from SVN**:
|
To build and run the recently created tarball **from SVN**:
|
||||||
```bash
|
```bash
|
||||||
# Build and run a release candidate tarball
|
# Build and run a release candidate tarball
|
||||||
./test_run_tarball.sh
|
./test_run_tarball.sh
|
||||||
# you should be able to access localhost:5001 on your browser
|
# you should be able to access localhost:5001 on your browser
|
||||||
# login using admin/admin
|
# login using admin/admin
|
||||||
```
|
```
|
||||||
|
|
||||||
### Voting
|
### Voting
|
||||||
|
|
@ -206,17 +206,17 @@ https://lists.apache.org/thread.html/e60f080ebdda26896214f7d3d5be1ccadfab95d48fb
|
||||||
To easily send a voting request to Superset community, still on the `superset/RELEASING` directory:
|
To easily send a voting request to Superset community, still on the `superset/RELEASING` directory:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Note: use Superset's virtualenv
|
# Note: use Superset's virtualenv
|
||||||
(venv)$ python send_email.py vote_pmc
|
(venv)$ python send_email.py vote_pmc
|
||||||
```
|
```
|
||||||
|
|
||||||
The script will interactively ask for extra information so it can authenticate on the Apache Email Relay.
|
The script will interactively ask for extra information so it can authenticate on the Apache Email Relay.
|
||||||
The release version and release candidate number are fetched from the previously set environment variables.
|
The release version and release candidate number are fetched from the previously set environment variables.
|
||||||
|
|
||||||
```bash
|
```
|
||||||
Sender email (ex: user@apache.org): your_apache_email@apache.org
|
Sender email (ex: user@apache.org): your_apache_email@apache.org
|
||||||
Apache username: your_apache_user
|
Apache username: your_apache_user
|
||||||
Apache password: your_apache_password
|
Apache password: your_apache_password
|
||||||
```
|
```
|
||||||
|
|
||||||
Once 3+ binding votes (by PMC members) have been cast and at
|
Once 3+ binding votes (by PMC members) have been cast and at
|
||||||
|
|
@ -226,21 +226,21 @@ https://lists.apache.org/thread.html/50a6b134d66b86b237d5d7bc89df1b567246d125a71
|
||||||
To easily send the result email, still on the `superset/RELEASING` directory:
|
To easily send the result email, still on the `superset/RELEASING` directory:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Note: use Superset's virtualenv
|
# Note: use Superset's virtualenv
|
||||||
(venv)$ python send_email.py result_pmc
|
python send_email.py result_pmc
|
||||||
```
|
```
|
||||||
|
|
||||||
The script will interactively ask for extra information needed to fill out the email template. Based on the
|
The script will interactively ask for extra information needed to fill out the email template. Based on the
|
||||||
voting description, it will generate a passing, non passing or non conclusive email.
|
voting description, it will generate a passing, non passing or non conclusive email.
|
||||||
here's an example:
|
here's an example:
|
||||||
|
|
||||||
```bash
|
```
|
||||||
Sender email (ex: user@apache.org): your_apache_email@apache.org
|
Sender email (ex: user@apache.org): your_apache_email@apache.org
|
||||||
Apache username: your_apache_user
|
Apache username: your_apache_user
|
||||||
Apache password: your_apache_password
|
Apache password: your_apache_password
|
||||||
A List of people with +1 binding vote (ex: Max,Grace,Krist): Daniel,Alan,Max,Grace
|
A List of people with +1 binding vote (ex: Max,Grace,Krist): Daniel,Alan,Max,Grace
|
||||||
A List of people with +1 non binding vote (ex: Ville): Ville
|
A List of people with +1 non binding vote (ex: Ville): Ville
|
||||||
A List of people with -1 vote (ex: John):
|
A List of people with -1 vote (ex: John):
|
||||||
```
|
```
|
||||||
|
|
||||||
Following the result thread, yet another [VOTE] thread should be
|
Following the result thread, yet another [VOTE] thread should be
|
||||||
|
|
@ -251,25 +251,24 @@ https://www.apache.org/info/verification.html
|
||||||
|
|
||||||
## Publishing a successful release
|
## Publishing a successful release
|
||||||
|
|
||||||
Upon a successful vote (community AND IPMC), you'll have to copy the folder
|
Upon a successful vote, you'll have to copy the folder into the non-"dev/" folder.
|
||||||
into the non-"dev/" folder.
|
|
||||||
```bash
|
```bash
|
||||||
cp -r ~/svn/superset_dev/${SUPERSET_VERSION_RC}/ ~/svn/superset/${SUPERSET_VERSION}/
|
cp -r ~/svn/superset_dev/${SUPERSET_VERSION_RC}/ ~/svn/superset/${SUPERSET_VERSION}/
|
||||||
cd ~/svn/superset/
|
cd ~/svn/superset/
|
||||||
# Rename the RC (0.34.1rc1) to the actual version being released (0.34.1)
|
# Rename the RC (0.34.1rc1) to the actual version being released (0.34.1)
|
||||||
for f in ${SUPERSET_VERSION}/*; do mv "$f" "${f/${SUPERSET_VERSION_RC}/${SUPERSET_VERSION}}"; done
|
for f in ${SUPERSET_VERSION}/*; do mv "$f" "${f/${SUPERSET_VERSION_RC}/${SUPERSET_VERSION}}"; done
|
||||||
svn add ${SUPERSET_VERSION}
|
svn add ${SUPERSET_VERSION}
|
||||||
svn commit -m "Release ${SUPERSET_VERSION}"
|
svn commit -m "Release ${SUPERSET_VERSION}"
|
||||||
```
|
```
|
||||||
|
|
||||||
Then tag the final release:
|
Then tag the final release:
|
||||||
```bash
|
```bash
|
||||||
# Go to the root directory of the repo, e.g. `~/src/superset`
|
# Go to the root directory of the repo, e.g. `~/src/superset`
|
||||||
cd ~/src/superset/
|
cd ~/src/superset/
|
||||||
# make sure you're on the correct branch (e.g. 0.34)
|
# make sure you're on the correct branch (e.g. 0.34)
|
||||||
git branch
|
git branch
|
||||||
# Create the release tag
|
# Create the release tag
|
||||||
git tag -f ${SUPERSET_VERSION}
|
git tag -f ${SUPERSET_VERSION}
|
||||||
```
|
```
|
||||||
|
|
||||||
### Update CHANGELOG and UPDATING on superset
|
### Update CHANGELOG and UPDATING on superset
|
||||||
|
|
@ -291,8 +290,8 @@ while requesting access to push packages.
|
||||||
Once it's all done, an [ANNOUNCE] thread announcing the release to the dev@ mailing list is the final step.
|
Once it's all done, an [ANNOUNCE] thread announcing the release to the dev@ mailing list is the final step.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Note use Superset's virtualenv
|
# Note use Superset's virtualenv
|
||||||
(venv)$ python send_email.py announce
|
python send_email.py announce
|
||||||
```
|
```
|
||||||
|
|
||||||
### Github Release
|
### Github Release
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue