This guide explains the different types of Discourse releases and how different channels are used for updates.
Required user level: All users
Release channels
Discourse has four primary release channels, each serving a different purpose: main, tests-passed, beta, and stable.
The default channel used when installing a production version of Discourse is tests-passed.
The naming conventions used by Discourse differ a bit from other software companies:
main
On GitHub: https://github.com/discourse/discourse/tree/main
This channel represents the latest development version of Discourse. It contains the most recent features and improvements but may not be thoroughly tested and can be unstable, so it is not recommended for production environments. Developers and early adopters typically use this channel.
tests-passed
On GitHub: https://github.com/discourse/discourse/tree/tests-passed
This channel includes features and improvements from the main channel that have undergone a certain level of testing. It has the best balance between stability and access to the latest improvements. We commit new changes almost daily, and they are available in this channel.
beta
On GitHub: https://github.com/discourse/discourse/tree/beta
We use beta as a “milestone” to push out a collection of commits we want more sites to be running and test. We also release a beta if we have an important security fix we want sites to receive.
A beta release is considered a minor version bump.
When a beta version is release, all sites running on tests-passed or beta receive the “new update available” email.
stable
On GitHub: https://github.com/discourse/discourse/tree/stable
The stable channel is not necessarily more “stable” than tests-passed. It’s more about the idea that the bugs are known, and it serves as a checkpoint for a specific set of features and improvements. With tests-passed, there may be new bugs introduced, then fixed a few commits later.
Last edited by @hugh 2024-07-30T10:13:36Z
Last checked by @hugh 2024-07-30T10:13:40Z
Check document
Perform check on document: