Release lifecycle

This page details the release lifecycle for the Zulip server and client-apps, well as our policies around backwards-compatibility and security support policies. In short:

Server and web app

The Zulip server and web app are developed together in the Zulip server repository.

Stable releases

Starting with Zulip 4.0, the Zulip web app displays the current server version in the gear menu. With older releases, the server version is available via the API.

This ReadTheDocs documentation has a widget in the lower-left corner that lets you view the documentation for other versions. Other documentation, like our Help Center, API documentation, and Integrations documentation, are distributed with the Zulip server itself (E.g. https://zulip.example.com/help/).

Git versions

Many Zulip servers run versions from Git that have not been published in a stable release.

Compatibility and upgrading

A Zulip design goal is for there never to be a reason to run an old version of Zulip. We work extremely hard to make sure Zulip is stable for self-hosters, has no regressions, and that the Zulip upgrade process Just Works.

The Zulip server and clients apps are all carefully engineered to ensure compatibility with old versions. In particular:

As a result, we generally do not backport changes to previous stable release series except in rare cases involving a security issue or critical bug just after publishing a major release.

Security releases

When we discover a security issue in Zulip, we publish a security and bug fix release, transparently documenting the issue(s) using the industry-standard CVE advisory process.

When new security releases are published, we simultaneously publish the fixes to the master and stable release branches (E.g. 4.x), so that anyone using those branches can immediately upgrade as well.

See also our security model documentation.

Upgrade nag

Starting with Zulip 4.0, the Zulip web app will display a banner warning users of a server running a Zulip release that is more than 18 months old. We do this for a few reasons:

The nag will appear only to organization administrators starting a month before the deadline; after that, it will appear for all users on the server.

You can adjust the deadline for your installation by setting e.g. SERVER_UPGRADE_NAG_DEADLINE_DAYS = 30 * 21 in /etc/zulip/settings.py and then restarting the server.

Operating system support

For platforms we support, like Debian and Ubuntu, Zulip aims to support all versions of the upstream operating systems that are fully supported by the vendor. We document how to correctly upgrade the operating system for a Zulip server, including how to correctly chain upgrades when the latest Zulip release no longer supports your OS.

Note that we consider Ubuntu interim releases, which only have 8 months of security support, to be betas, not releases, and do not support them in production.

Server roadmap

The Zulip server project uses several GitHub labels to structure communication within the project about priorities:

The Zulip community feels strongly that all the little issues are, in aggregate, just as important as the big things. Most resolved issues do not have any of these priority labels.

We welcome participation from our user community in influencing the Zulip roadmap. If a bug or missing feature is causing significant pain for you, we'd love to hear from you, either in chat.zulip.org or on the relevant GitHub issue. Please an include an explanation of your use case: such details can be extremely helpful in designing appropriately general solutions, and also helps us identify cases where an existing solution can solve your problem. See Reporting issues for more details.

Client apps

Zulip's client apps officially support all Zulip server versions (and Git commits) released in the previous 18 months, matching the behavior of our upgrade nag.

The desktop apps automatically update soon after each new release. Because Zulip's desktop apps are implemented in Electron and thus contain a Chromium browser, security-conscious users should leave automatic updates enabled or otherwise arrange to promptly upgrade all users after a new security release.

New desktop app releases rarely contain new features, because the desktop app tab inherits its features from the Zulip server/web app. However, it is important to upgrade because they often contain important security or OS compatibility fixes from the upstream Chromium project.

The Zulip server supports blocking access or displaying a warning to users attempting to access the server with extremely old or known insecure versions of the Zulip desktop and mobile apps, with an error message telling the user to upgrade.

API bindings

The Zulip API bindings and related projects maintained by the Zulip core community, like the Python and JavaScript bindings, are released independently as needed.

https://github.com/zulip/zulip/issues?q=is%3Aissue+is%3Aopen+label%3A%22priority%3A+blocker%22

https://github.com/zulip/zulip/issues?q=is%3Aissue+is%3Aopen+label%3A%22priority%3A+high%22

https://github.com/zulip/zulip/issues?q=is%3Aissue+is%3Aopen+label%3A%22release+goal%22

https://github.com/zulip/zulip/issues?q=is%3Aissue+is%3Aopen+label%3A%22post+release%22