2016-11-04 18:50:15 +01:00
|
|
|
# Zulip server release checklist
|
|
|
|
|
|
|
|
This document has reminders of things one might forget to do when
|
|
|
|
preparing a new release.
|
|
|
|
|
|
|
|
### A week before the release
|
|
|
|
|
|
|
|
* Upgrade all Python dependencies in `requirements` to latest
|
|
|
|
upstream versions so they can burn in (use `pip list --outdated`).
|
|
|
|
* Update all the strings on Transifex and notify translators that they
|
|
|
|
should translate the new strings to get them in for the next
|
|
|
|
release.
|
|
|
|
* Update `changelog.md` with major changes going into the release.
|
2017-06-06 23:20:02 +02:00
|
|
|
* Create a burndown list of bugs that need to be fixed before we can
|
|
|
|
release, and make sure all of them are being worked on.
|
2017-11-23 01:13:21 +01:00
|
|
|
* Draft the release blog post (aka the release notes.)
|
2016-11-04 18:50:15 +01:00
|
|
|
|
|
|
|
### Final release preparation
|
|
|
|
|
2017-11-23 01:13:21 +01:00
|
|
|
* Update `changelog.md` with any changes since the last update, and
|
|
|
|
with revisions from the draft blog post.
|
2016-11-04 18:50:15 +01:00
|
|
|
* Download updated translation strings from Transifex and commit them.
|
|
|
|
* Use `build-release-tarball` to generate a release tarball.
|
|
|
|
* Test the new tarball extensively, both new install and upgrade from last
|
|
|
|
release, on both Trusty and Xenial.
|
|
|
|
* Repeat until release is ready.
|
2017-11-23 01:13:21 +01:00
|
|
|
* When near finished: move the blog post draft to Ghost. (For a draft
|
|
|
|
in Dropbox Paper, use "··· > Download > Markdown" to get a pretty
|
|
|
|
good markup conversion.) Proofread the post, especially for
|
|
|
|
formatting.
|
2016-11-04 18:50:15 +01:00
|
|
|
|
|
|
|
### Executing the release
|
|
|
|
|
2017-11-23 01:13:21 +01:00
|
|
|
* Do final updates to `changelog.md`, for any final changes and with
|
|
|
|
any revisions from the draft blog post. (And the date!)
|
2017-06-06 23:20:02 +02:00
|
|
|
* Update `ZULIP_VERSION` in `version.py`.
|
2017-06-27 01:07:33 +02:00
|
|
|
* Update `version` and/or `release` in `docs/conf.py` (ReadTheDocs meta tags).
|
2018-01-23 19:50:55 +01:00
|
|
|
Leave "+git" off.
|
2017-06-06 23:20:02 +02:00
|
|
|
* Use `build-release-tarball` to generate a final release tarball.
|
2017-11-23 01:13:21 +01:00
|
|
|
* Post the release tarball on https://www.zulip.org/dist/releases/ :
|
|
|
|
add the file, update the `zulip-server-latest.tar.gz` symlink, and
|
|
|
|
add to SHA256SUMS.txt.
|
|
|
|
* Create a Git tag and push the tag.
|
|
|
|
* Post the release on GitHub, using the text from `changelog.md`.
|
|
|
|
* Publish the blog post.
|
|
|
|
* Email zulip-announce, and send a tweet.
|
|
|
|
* For a major release: submit blog post to aggregators.
|
2017-06-06 23:20:02 +02:00
|
|
|
|
|
|
|
### Post-release
|
|
|
|
|
2017-11-23 01:13:21 +01:00
|
|
|
* Push the release commit to master, if applicable (typically for a
|
|
|
|
major release); otherwise, make sure any last changes make it back
|
|
|
|
to master.
|
2018-01-23 19:50:55 +01:00
|
|
|
* Update `ZULIP_VERSION` in `version.py`, and `release` and `version` in
|
|
|
|
`docs/conf.py`, to e.g. `1.6.0+git`.
|
2017-11-23 01:13:21 +01:00
|
|
|
* Update the handful of places where we link to docs for the latest
|
|
|
|
release, rather than for master. See `git grep 'zulip.readthedocs.io/en/[0-9]'`.
|
2017-10-26 22:53:21 +02:00
|
|
|
* Consider removing a few old releases from ReadTheDocs.
|