Skip to content

Commit

Permalink
[release] Fix, release docs (#8646)
Browse files Browse the repository at this point in the history
* [release] Fix, release documentation
  • Loading branch information
dpgaspar authored Nov 27, 2019
1 parent df2ee5c commit 75c1378
Show file tree
Hide file tree
Showing 3 changed files with 79 additions and 23 deletions.
61 changes: 44 additions & 17 deletions RELEASING/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,11 @@ set your GITHUB_TOKEN environment variable.
github-changes -o apache -r incubator-superset --token $GITHUB_TOKEN --between-tags <PREVIOUS_RELEASE_TAG>...<CURRENT_RELEASE_TAG>
```

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/static/assets/package.json`:

```json
Expand All @@ -88,14 +93,14 @@ the same terminal session won't be used for crafting the release candidate and t
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
the wrong files/using wrong names. There's a script to help you set correctly all the
necessary environment variables. Change you current directory to `superset/RELEASING`
necessary environment variables. Change your current directory to `superset/RELEASING`

```bash
# usage: set_release_env.sh <SUPERSET_VERSION> <SUPERSET_VERSION_RC> "<PGP_KEY_FULLNAME>"
. ./set_release_env.sh XX.YY.ZZ QQ "YOUR PGP KEY NAME"
```

The script will output the exported variables, for example for 0.34.1 RC1:
The script will output the exported variables. Here's example for 0.34.1 RC1:

```
-------------------------------
Expand Down Expand Up @@ -169,7 +174,7 @@ https://lists.apache.org/thread.html/e60f080ebdda26896214f7d3d5be1ccadfab95d48fb
To easily send a voting request to Superset community, still on the `superset/RELEASING` directory:

```bash
# Note use Superset's virtualenv
# Note: use Superset's virtualenv
(venv)$ python send_email.py vote_pmc
```

Expand All @@ -189,7 +194,7 @@ https://lists.apache.org/thread.html/50a6b134d66b86b237d5d7bc89df1b567246d125a71
To easily send the result email, still on the `superset/RELEASING` directory:

```bash
# Note use Superset's virtualenv
# Note: use Superset's virtualenv
(venv)$ python send_email.py result_pmc
```

Expand All @@ -212,19 +217,34 @@ started at [email protected].
To easily send the voting request to Apache community, still on the `superset/RELEASING` directory:

```bash
# Note use Superset's virtualenv
# Note: use Superset's virtualenv
(venv)$ python send_email.py vote_ipmc
```

### Announcing
Once 3+ binding votes (by IPMC members) have been cast and at
least 72 hours have past, you can post a [RESULT] thread

Once it's all done, an [ANNOUNCE] thread announcing the release to the dev@ mailing list is the final step.
To easily send the result email, still on the `superset/RELEASING` directory:

```bash
# Note use Superset's virtualenv
(venv)$ python send_email.py announce
# Note: use Superset's virtualenv
(venv)$ python send_email.py result_ipmc
```

Again, 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.
here's an example:

```bash
Sender email (ex: [email protected]): [email protected]
Apache username: your_apache_user
Apache password: your_apache_password
A List of people with +1 binding vote (ex: Alan, Justin): Alan,Jeff,
A List of people with +1 non binding vote (ex: Ville):
A List of people with -1 vote (ex: John):
```


### Validating a release

https://www.apache.org/info/verification.html
Expand Down Expand Up @@ -252,25 +272,32 @@ Then tag the final release:
git tag -f ${SUPERSET_VERSION}
```

Now you can announce the release on the mailing list, make sure to use the
proper template
### Update CHANGELOG and UPDATING on superset

Now that we have a final Apache source release we need to open a pull request on Superset
with the changes on `CHANGELOG.md` and `UPDATING.md`.

### Publishing a Convenience Release to PyPI

From the root of the repo running ./pypi_push.sh will build the
Javascript bundle and echo the twine command allowing you to publish
to PyPI. You may need to ask a fellow committer to grant
you access to it if you don't have access already. Make sure to create
an account first if you don't have one, and reference your username
while requesting access to push packages.

## Post release
### Announcing

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.
Once it's all done, an [ANNOUNCE] thread announcing the release to the dev@ mailing list is the final step.

```bash
# Note use Superset's virtualenv
(venv)$ python send_email.py announce
```

## Post release

# 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.
Expand Down
2 changes: 1 addition & 1 deletion RELEASING/email_templates/announce.j2
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ https://pypi.org/project/apache-superset/

If you have any usage questions, or have problems when upgrading or
find any problems about enhancements included in this release, please
dont hesitate to let us know by sending feedback to this mailing
don't hesitate to let us know by sending feedback to this mailing
list.

=====
Expand Down
39 changes: 34 additions & 5 deletions RELEASING/send_email.py
Original file line number Diff line number Diff line change
Expand Up @@ -123,9 +123,7 @@ def __repr__(self):
help="Your Apache email this will be used for SMTP From",
)
@click.option(
"--apache_username",
prompt="Apache username",
help="Your LDAP Apache username",
"--apache_username", prompt="Apache username", help="Your LDAP Apache username"
)
@click.option(
"--apache_password",
Expand Down Expand Up @@ -196,7 +194,9 @@ def vote_pmc(base_parameters, receiver_email):
prompt="A List of people with -1 vote (ex: John)",
)
@click.pass_obj
def result_pmc(base_parameters, receiver_email, vote_bindings, vote_nonbindings, vote_negatives):
def result_pmc(
base_parameters, receiver_email, vote_bindings, vote_nonbindings, vote_negatives
):
template_file = "email_templates/result_pmc.j2"
base_parameters.template_arguments["receiver_email"] = receiver_email
base_parameters.template_arguments["vote_bindings"] = string_comma_to_list(
Expand Down Expand Up @@ -257,10 +257,39 @@ def vote_ipmc(base_parameters, receiver_email, voting_thread, vote_mentors):
type=str,
prompt="The receiver email (To:)",
)
@click.option(
"--vote_bindings",
default="",
type=str,
prompt="A List of people with +1 binding vote (ex: Alan,Justin)",
)
@click.option(
"--vote_nonbindings",
default="",
type=str,
prompt="A List of people with +1 non binding vote (ex: Ville)",
)
@click.option(
"--vote_negatives",
default="",
type=str,
prompt="A List of people with -1 vote (ex: John)",
)
@click.pass_obj
def result_ipmc(base_parameters, receiver_email):
def result_ipmc(
base_parameters, receiver_email, vote_bindings, vote_nonbindings, vote_negatives
):
template_file = "email_templates/result_ipmc.j2"
base_parameters.template_arguments["receiver_email"] = receiver_email
base_parameters.template_arguments["vote_bindings"] = string_comma_to_list(
vote_bindings
)
base_parameters.template_arguments["vote_nonbindings"] = string_comma_to_list(
vote_nonbindings
)
base_parameters.template_arguments["vote_negatives"] = string_comma_to_list(
vote_negatives
)
message = render_template(template_file, **base_parameters.template_arguments)
inter_send_email(
base_parameters.username,
Expand Down

0 comments on commit 75c1378

Please sign in to comment.