diff --git a/RELEASING/README.md b/RELEASING/README.md index 2a37fc8db..a94159b4d 100644 --- a/RELEASING/README.md +++ b/RELEASING/README.md @@ -72,6 +72,11 @@ set your GITHUB_TOKEN environment variable. 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/static/assets/package.json`: ```json @@ -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 "" . ./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: ``` ------------------------------- @@ -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 ``` @@ -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 ``` @@ -212,19 +217,34 @@ started at general@incubator.apache.org. 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: user@apache.org): your_apache_email@apache.org + 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 @@ -252,10 +272,13 @@ 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 @@ -263,14 +286,18 @@ 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. +### Announcing + +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 -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. - -# 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. diff --git a/RELEASING/email_templates/announce.j2 b/RELEASING/email_templates/announce.j2 index b43739e70..ebd962897 100644 --- a/RELEASING/email_templates/announce.j2 +++ b/RELEASING/email_templates/announce.j2 @@ -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 -don’t 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. ===== diff --git a/RELEASING/send_email.py b/RELEASING/send_email.py index 936d464bc..27da07f8d 100755 --- a/RELEASING/send_email.py +++ b/RELEASING/send_email.py @@ -123,9 +123,7 @@ class BaseParameters(object): 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", @@ -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( @@ -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,