There’s a good explanation of the branches we use here:
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 our tests-passed
branch. This is the branch all Discourse sites run by default.
Beta:
Every few weeks we push the current commits on tests-passed
to 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. When a beta is pushed all sites running on tests-passed
or beta
receive the “new update available” email. Sites running tests-passed
will update to the current tests-passed
commits (including any new commits pushed after the beta), while those on beta
will not.
Stable:
Every 4-6 months we release a new stable
build. ~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 Discourse is in a perpetual beta state, meaning that we’re always working on new features and refinement. In our case beta does not mean unstable; we host sites with millions of monthly pageviews on our tests-passed and beta versions.
23 Likes