- Split out roadmap page. - Reorganize content. - Clarify the major points and reduce redundancy.
8.7 KiB
Release lifecycle
This page provides an overview of Zulip server and client app release lifecycles. As discussed below, we highly recommend running the latest Zulip server release. We work extremely hard to make sure these releases are stable and have no regressions, and that the upgrade process Just Works.
New server releases are announced via the low-traffic zulip-announce email list. Please subscribe to get notified about new security releases.
Server and web app versions
The Zulip server and web app are developed together in the Zulip server repository.
Stable releases
:::{note}
The first digit of the Zulip server release version is its major release series (e.g., 9.4 is part of the 9.x series).
:::
Organizations self-hosting Zulip primarily use stable releases (e.g., Zulip {{ LATEST_RELEASE_VERSION }}).
-
New major releases, like Zulip 9.0, are published twice a year, and contain hundreds of features, bug fixes, and improvements to Zulip's internals.
-
New maintenance releases, like 9.4, are published roughly once a month. Maintenance releases are designed to have no risky changes and be easy to reverse, to minimize stress for administrators.
When upgrading to a new major release series, we recommend always upgrading to the latest maintenance release in that series, so that you use the latest version of the upgrade code.
Security releases
When we discover a security issue in Zulip, we publish a security and bug fix release, transparently documenting the issue using the industry-standard CVE advisory process.
When new security releases are published, we simultaneously publish
the fixes to the main
and stable release branches, so
that anyone using those branches can immediately upgrade as well.
See also our security model documentation.
Git versions
Many Zulip servers run versions from Git that have not been published in a stable release.
- You can upgrade to
main
for the latest changes. - We maintain Git branches with names like
9.x
containing backported commits frommain
that we plan to include in the next maintenance release. Self-hosters can upgrade to these stable release branches to get bug fixes staged for the next stable release (which is very useful when you reported a bug whose fix we choose to backport). We support these branches as though they were a stable release. - The bleeding-edge server for the Zulip development community
at https://chat.zulip.org runs the
chat.zulip.org
branch. It's upgraded tomain
several times a week. We also often "test deploy" changes not yet inmain
to this branch, to facilitate design feedback. - Zulip Cloud runs the
zulip-cloud-current
branch plus some cherry-picked changes. This branch is usually delayed by one to two weeks frommain
to allow for recent changes to be validated further prior to being deployed to customers. - You can also run a fork of Zulip.
What version am I running?
The Zulip web app displays the current server version in the gear menu; it's also available via the API.
Versioned documentation
To make sure you can access documentation for your server version, the help
center, API documentation,
and integrations documentation are
distributed with the Zulip server itself (e.g.,
https://zulip.example.com/help/
).
This ReadTheDocs documentation has a widget in the top left corner that lets you view the documentation for other versions.
Client apps
Zulip's official client apps support all Zulip server versions (and Git commits) released in the previous 18 months.
The API changelog details all changes to the API, to make it easy for client developers to maintain compatibility.
Mobile app
The Zulip mobile apps release new versions from the development branch frequently (usually every couple weeks). Except when fixing a critical bug, releases are first published to our beta channels.
Mobile and desktop client apps update automatically, unless a user disables automatic updates.
Desktop app
The Zulip desktop app is implemented in Electron, the browser-based desktop application framework used by essentially all modern chat applications. The Zulip UI in these apps is served from the Zulip server (and thus can vary between tabs when it is connected to organizations hosted by different servers).
The desktop app automatically updates soon after each new 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. Be sure to leave automatic updates enabled, or otherwise arrange to promptly upgrade after new security releases.
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.
Server and client app compatibility
Zulip is designed to make sure you can always run the latest server release (and we highly recommend that you do so!). We therefore generally do not backport changes to previous stable release series, except in rare cases involving a security issue or critical bug discovered just after publishing a major release.
The Zulip server preserves backwards compatibility in its API to support versions of the mobile and desktop apps released in the last 12 months. Because these clients auto-update, the vast majority of active clients will have upgraded by the time we desupport a version.
As noted above, Zulip's official client apps support all Zulip server versions (and Git commits) released in the previous 18 months.
Upgrade nag
The Zulip web app will display a banner warning users of a server running a Zulip release that is more than 18 months old, and is no longer officially supported by mobile and desktop apps. 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, for
example, SERVER_UPGRADE_NAG_DEADLINE_DAYS = 30 * 21
in
/etc/zulip/settings.py
, and restarting the server.
:::{warning}
Servers older than 18 months are likely to be vulnerable to security bugs in Zulip or its upstream dependencies.
:::
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.
API bindings
The Zulip API bindings, and related projects like the Python and JavaScript bindings, are released independently as needed.