# 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.

### Final release preparation

* 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.
* Do final updates to `changelog.md`.
* Update `ZULIP_VERSION` in `version.py`.
* Repeat until release is ready.
* Draft the release notes; see previous zulip-announce emails for the
  tooling needed.

### Executing the release

* Post the release tarball on zulip.org and update zulip.org.
* Create a git tag and push the tag.
* Email zulip-announce with the release notes.

# 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.

### Final release preparation

* 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.
* Do final updates to `changelog.md`.
* Update `ZULIP_VERSION` in `version.py`.
* Repeat until release is ready.
* Draft the release notes; see previous zulip-announce emails for the
  tooling needed.

### Executing the release

* Post the release tarball on zulip.org and update zulip.org.
* Create a git tag and push the tag.
* Upload the release on GitHub so it doesn't provide a broken release tarball.
* Email zulip-announce with the release notes.

Update release checklist to mention GitHub.
docs: Update release checklist to mention GitHub.
