Very good question. By default, Discourse ships beta versions. Most of the time (I mean… 99% of the time), it causes no issue, and can occasionally add neat, welcomed features (see the local image resizing I mention here ; and what to say about this one!
) that would come months later on the stable release.
I’ll try to get some information about that though, that’s an interesting subject.
I got some info:
Main:
When a new commit is added to Discourse it is on the main branch. Main is the absolute latest (most current) branch of Discourse, and we do not recommend anyone run their site tracking the main branch.Tests-passed:
When a new commit is pushed the to the main branch, our build server automatically runs all our tests against the latest code. Once they all pass the commit is added to ourtests-passedbranch. This is the branch all Discourse sites run by default.Beta:
Every few weeks we push the current commits ontests-passedtobeta. 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. When a beta is pushed all sites running ontests-passedorbetareceive the “new update available” email. Sites runningtests-passedwill update to the currenttests-passedcommits (including any new commits pushed after the beta), while those onbetawill not.Stable:
Every 4-6 months we release a newstablebuild. ~2 weeks before pushing stable we release our last beta. We then watch our logs closely to try and catch any lingering bugs that exist, and avoid adding any new features/risky changes. Once we’re satisfied with the state of the current beta, we push to stable.
So 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. We’re not really into fake deadlines.
That makes sense. I guess the main information here is:
In our case beta does not mean unstable
So 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.
Considering this versioning philosophy, upgrading only to “stable” versions would be of very minor benefits (if there are).