Why does Discourse always install "beta" versions by default?

In Discourse, four primary release channels serve different purposes: main, tests-passed, beta, and stable.

The default channel used when installing a production version of Discourse is tests-passed.

Our nomenclature differs a bit from other software companies and will be explained here.

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

It 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.
It is not much different than most other software releases out there, which usually release small changes every two weeks. We commit new changes almost daily instead, and they’re available via tests-passed.

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 push a beta if we have an important security fix we want sites to receive.
:information_source: When a beta is pushed, all sites running on tests-passed or beta receive the “new update available” email.

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.


For us, a beta is a minor version bump, and a version is a major version bump. They’re checkpoints we give ourselves to celebrate the work we’ve done. We tend to release two major versions a year, but it all depends on feature development and the like.

6 Likes