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
|
|
|
|
|
2021-08-20 21:45:39 +02:00
|
|
|
- For a major release (e.g. 4.0):
|
|
|
|
- Upgrade all Python dependencies in
|
2020-09-22 03:08:47 +02:00
|
|
|
`requirements` to latest upstream versions so they can burn in (use
|
|
|
|
`pip list --outdated`).
|
2022-02-10 03:00:59 +01:00
|
|
|
- Upgrade all puppet dependencies in `puppet/deps.yaml`
|
|
|
|
- Upgrade all puppet-installed dependencies (e.g. Smokescreen, go,
|
|
|
|
etc) in `puppet/zulip/manifests/common.pp`
|
2021-08-20 21:45:39 +02:00
|
|
|
- [Upload strings to
|
2021-03-29 09:10:26 +02:00
|
|
|
Transifex](../translating/internationalization.html#translation-process)
|
2021-08-20 21:53:28 +02:00
|
|
|
using `push-translations`. Post a Transifex
|
2021-03-29 09:10:26 +02:00
|
|
|
[Announcement](https://www.transifex.com/zulip/zulip/announcements/)
|
|
|
|
notifying translators that we're approaching a release.
|
2021-08-20 21:45:39 +02:00
|
|
|
- Merge draft updates to the [changelog](../overview/changelog.md)
|
2021-03-29 09:10:26 +02:00
|
|
|
with changes since the last release. While doing so, take notes on
|
|
|
|
things that might need follow-up work or documentation before we
|
|
|
|
can happily advertise them in a release blog post.
|
2021-08-20 21:45:39 +02:00
|
|
|
- Inspect all `TODO/compatibility` comments for whether we can
|
2021-04-16 19:02:30 +02:00
|
|
|
remove any backwards-compatibility code in this release.
|
2021-08-20 21:45:39 +02:00
|
|
|
- Create a burn-down list of issues that need to be fixed before we can
|
2017-06-06 23:20:02 +02:00
|
|
|
release, and make sure all of them are being worked on.
|
2021-08-20 21:53:28 +02:00
|
|
|
- Draft the release blog post (a.k.a. the release notes) in Paper. In
|
2020-09-16 02:43:15 +02:00
|
|
|
it, list the important changes in the release, from most to least
|
|
|
|
notable.
|
2016-11-04 18:50:15 +01:00
|
|
|
|
|
|
|
### Final release preparation
|
|
|
|
|
2021-08-20 21:45:39 +02:00
|
|
|
- Update the Paper blog post draft with any new commits.
|
|
|
|
- _Except minor releases:_ Download updated translation strings from
|
2020-09-16 02:43:15 +02:00
|
|
|
Transifex and commit them.
|
2021-08-20 21:45:39 +02:00
|
|
|
- Use `build-release-tarball` to generate a release tarball.
|
|
|
|
- Test the new tarball extensively, both new install and upgrade from last
|
2021-11-08 22:12:57 +01:00
|
|
|
release, on Ubuntu 20.04.
|
2021-08-20 21:45:39 +02:00
|
|
|
- Repeat until release is ready.
|
|
|
|
- Send around the Paper blog post draft for review.
|
2021-08-20 21:53:28 +02:00
|
|
|
- Move the blog post draft to Ghost. (For a draft in Dropbox Paper,
|
2020-09-16 02:43:15 +02:00
|
|
|
use "··· > Export > Markdown" to get a pretty good markup
|
2021-08-20 21:53:28 +02:00
|
|
|
conversion.) Proofread the post, especially for formatting. Tag
|
2020-09-16 02:43:15 +02:00
|
|
|
the post with "Release announcements" in Ghost.
|
2016-11-04 18:50:15 +01:00
|
|
|
|
|
|
|
### Executing the release
|
|
|
|
|
2021-08-20 21:45:39 +02:00
|
|
|
- Create the release commit, on `main` (for major releases) or on the
|
2020-09-16 02:43:15 +02:00
|
|
|
release branch (for minor releases):
|
2021-08-20 21:45:39 +02:00
|
|
|
- Copy the Markdown release notes for the release into
|
2020-09-16 02:43:15 +02:00
|
|
|
`docs/overview/changelog.md`.
|
2021-08-20 21:45:39 +02:00
|
|
|
- _Except minor releases:_ Adjust the `changelog.md` heading to have
|
2021-05-06 02:44:16 +02:00
|
|
|
the stable release series boilerplate.
|
2021-08-20 21:45:39 +02:00
|
|
|
- Update `ZULIP_VERSION` and `LATEST_RELEASE_VERSION` in `version.py`.
|
|
|
|
- _Except minor releases:_ Update `API_FEATURE_LEVEL` to a feature
|
2020-09-16 02:43:15 +02:00
|
|
|
level for the final release, and document a reserved range.
|
2021-08-20 21:45:39 +02:00
|
|
|
- Tag that commit with an unsigned Git tag named the release number.
|
|
|
|
- Use `build-release-tarball` to generate a final release tarball.
|
|
|
|
- Push the tag and release commit.
|
|
|
|
- Upload the tarball using `tools/upload-release`.
|
|
|
|
- Post the release by [editing the latest tag on
|
2020-09-16 02:43:15 +02:00
|
|
|
GitHub](https://github.com/zulip/zulip/tags); use the text from
|
|
|
|
`changelog.md` for the release notes.
|
2021-01-01 18:43:34 +01:00
|
|
|
|
2021-09-01 00:15:31 +02:00
|
|
|
**Note:** This will trigger the [GitHub action](https://github.com/zulip/zulip/blob/main/tools/oneclickapps/README.md)
|
2021-01-01 18:43:34 +01:00
|
|
|
for updating DigitalOcean one-click app image. The action uses the latest release
|
2021-08-26 04:14:59 +02:00
|
|
|
tarball published on `download.zulip.com` for creating the image.
|
2021-08-20 22:54:08 +02:00
|
|
|
|
2021-08-20 21:45:39 +02:00
|
|
|
- Update the [Docker image](https://github.com/zulip/docker-zulip) and
|
2020-09-16 02:43:15 +02:00
|
|
|
do a release of that.
|
2021-08-20 21:45:39 +02:00
|
|
|
- Update the image of DigitalOcean one click app using
|
2020-09-16 02:43:15 +02:00
|
|
|
[Fabric](https://github.com/zulip/marketplace-partners) and publish
|
|
|
|
it to DO marketplace.
|
2021-08-20 21:45:39 +02:00
|
|
|
- Publish the blog post; check the box to "send by email."
|
|
|
|
- Email [zulip-announce](https://groups.google.com/g/zulip-announce),
|
2020-09-16 02:43:15 +02:00
|
|
|
post to [#announce](https://chat.zulip.org/#narrow/stream/1-announce),
|
|
|
|
and [send a tweet](https://twitter.com/zulip).
|
2017-06-06 23:20:02 +02:00
|
|
|
|
|
|
|
### Post-release
|
|
|
|
|
2021-11-25 06:33:52 +01:00
|
|
|
- Update the CI targets in `.github/workflows/production-suite.yml` to
|
|
|
|
include upgrades from the most recent point releases from the last
|
2021-12-28 18:19:04 +01:00
|
|
|
two series -- e.g after releasing 4.8, both `main` and `4.x`
|
2021-11-25 06:33:52 +01:00
|
|
|
should test upgrades from 3.4 and 4.8, and after releasing 5.0 both
|
|
|
|
`main` and `5.x` should test upgrades from 4.8 and 5.0.
|
2021-08-20 21:45:39 +02:00
|
|
|
- Following a major release (e.g. 4.0):
|
|
|
|
- Create a release branch (e.g. `4.x`).
|
|
|
|
- On the release branch, update `ZULIP_VERSION` in `version.py` to
|
2020-09-17 03:16:46 +02:00
|
|
|
the present release with a `+git` suffix, e.g. `4.0+git`.
|
2021-08-20 21:45:39 +02:00
|
|
|
- On `main`, update `ZULIP_VERSION` to the future major release with
|
2021-08-20 21:53:28 +02:00
|
|
|
a `-dev+git` suffix, e.g. `5.0-dev+git`. Make a Git tag for this
|
|
|
|
update commit with a `-dev` suffix, e.g. `5.0-dev`. Push the tag
|
2021-02-03 02:57:29 +01:00
|
|
|
to both zulip.git and zulip-internal.git to get a correct version
|
|
|
|
number for future Cloud deployments.
|
2021-08-20 21:45:39 +02:00
|
|
|
- Consider removing a few old releases from ReadTheDocs; we keep about
|
2021-05-13 21:36:23 +02:00
|
|
|
two years of back-versions.
|
2021-08-20 21:45:39 +02:00
|
|
|
- Following a minor release (e.g. 3.2), on the release branch:
|
|
|
|
- Update `ZULIP_VERSION` to the present release with a `+git`
|
2021-05-13 21:36:23 +02:00
|
|
|
suffix, e.g. `3.2+git`.
|
2021-08-20 21:45:39 +02:00
|
|
|
- Update `LATEST_RELEASE_VERSION` with the released version.
|
|
|
|
- Cherry-pick the changelog changes back to `main`.
|