# Is Discourse always in "beta"?

**URL:** https://meta.discourse.org/t/is-discourse-always-in-beta/198215
**Category:** Support
**Created:** [July 26, 2021, 3:11pm UTC](https://meta.discourse.org/t/is-discourse-always-in-beta/198215 "2021-07-26T15:11:10Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![Wanderer](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/wanderer/32/233165_2.png) [@Wanderer](https://meta.discourse.org/u/Wanderer)
#### Post date: [July 26, 2021, 3:11pm UTC](https://meta.discourse.org/t/is-discourse-always-in-beta/198215/1 "2021-07-26T15:11:10Z")

</div>

I noticed that every now and then my Discourse site send me an email telling that a new version is available to install, but every time the version is “x.y.z.beta something”, so I’d like to know: is Discourse always some “beta” version? Is it good to install in a production environment (i.e. to serve hundreds, maybe thowsands people)? Or does this concerns only free and not “cloud” versions?

---

<div class="post-metadata">

### Author: ![awesomerobot](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/awesomerobot/32/142900_2.png) [@awesomerobot](https://meta.discourse.org/u/awesomerobot)
#### Post date: [July 26, 2021, 3:55pm UTC](https://meta.discourse.org/t/is-discourse-always-in-beta/198215/3 "2021-07-26T15:55:50Z")

</div>

There’s a good explanation of the branches we use here:

> [@Updates always come before release notes](https://meta.discourse.org/t/updates-always-come-before-release-notes/88919/7):
>
> **Main:**  
> When a new commit is added to [Discourse](https://github.com/discourse/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.

---

<div class="post-metadata">

### Author: ![justin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/justin/32/157614_2.png) [@justin](https://meta.discourse.org/u/justin)
#### Post date: [July 26, 2021, 3:57pm UTC](https://meta.discourse.org/t/is-discourse-always-in-beta/198215/4 "2021-07-26T15:57:40Z")

</div>

To add to what @awesomerobot posted:

Our nomenclature is a bit different than other software companies, but what it means when we release a _beta_ is we’re releasing a new incremental version. We’ve said, “That’s enough changes for now. Let’s notify sites about new updates.”

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.

### Regarding the branches

Stable/beta are not necessarily any more “stable” than tests-passed. It’s more the idea that the bugs are known. With tests-passed there may be new bugs introduced then fixed a few commits later.

Tests-passed 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.

---

<div class="post-metadata">

### Author: ![bksubhuti](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/bksubhuti/32/254360_2.png) [@bksubhuti](https://meta.discourse.org/u/bksubhuti)
#### Post date: [April 16, 2022, 12:41am UTC](https://meta.discourse.org/t/is-discourse-always-in-beta/198215/5 "2022-04-16T00:41:11Z")

</div>

I’m on this thread because of the same reason.  
Why don’t the [install instructions](https://github.com/discourse/discourse/blob/main/docs/INSTALL-cloud.md) tell us to install the stable branch?

How can I change to the stable branch or is it too late since I’m on a “higher version”  
Can the instructions be updated?

If it is too late, how do I stay on the stable branch once it is updated?  
Do I need to keep incrementally updating until I get there?

---

<div class="post-metadata">

### Author: ![Stephen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/stephen/32/95011_2.png) [@Stephen](https://meta.discourse.org/u/Stephen)
#### Post date: [April 16, 2022, 1:48am UTC](https://meta.discourse.org/t/is-discourse-always-in-beta/198215/6 "2022-04-16T01:48:06Z")

</div>

You can’t swap to stable until it catches up. Discourse doesn’t support downgrades.

A better question is: _why would you want to_?

Stable isn’t as widely used, the focus for development is on tests-passed.

Assuming you aren’t blindly upgrading a production site, and are testing each upgrade prior to deployment, the most feature-rich and well supported release is going to be the default.

---

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [April 16, 2022, 6:47am UTC](https://meta.discourse.org/t/is-discourse-always-in-beta/198215/7 "2022-04-16T06:47:58Z")

</div>

> [@Stephen](#):
>
> the focus for development is on tests-passed.

Sorry, this must be somekind language barrier matter-issue, but does _the focus_ mean

- development of Discourse itself and how branches are build
- everybody else is doing mostly development of Discourse

First one means that production sites that have focus on functional and stable forum should use _test-passed_.

Second one means a production site, that products forum, not coding, should use _stable_.

Yes. I desperate need some english lessons because these nuances aren’t totally clear for me.

But when the first guess is right, why there is _stable_-branch if it is not ment to be used?

---

<div class="post-metadata">

### Author: ![justin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/justin/32/157614_2.png) [@justin](https://meta.discourse.org/u/justin)
#### Post date: [April 16, 2022, 9:15pm UTC](https://meta.discourse.org/t/is-discourse-always-in-beta/198215/8 "2022-04-16T21:15:50Z")

</div>

> [@Jagster](#):
>
> First one means that production sites that have focus to functional and stable forum should use _test-passed_ .

We run `tests-passed` in production on our hosting. It’s 100% meant for production sites.

> [@Jagster](#):
>
> But when the first guess is right, why there is _stable_ -branch if it is not ment to be used?

Stable means all the software bugs are known. You won’t be getting anything new (including new bugs, but also bug fixes) until the next stable version is released. It’s simply site preference – want features as they come? Use tests-passed. Want an absolutely stable build that won’t change except in major version updates? Use stable.

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [April 16, 2022, 10:59pm UTC](https://meta.discourse.org/t/is-discourse-always-in-beta/198215/9 "2022-04-16T22:59:46Z")

</div>

To that I’d add “want to wait 6 to 8 months for something that is a bug but not deemed a security risk to be fixed?” Use `stable`.

---

<div class="post-metadata">

### Author: ![RGJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rgj/32/523185_2.png) [@RGJ](https://meta.discourse.org/u/RGJ)
#### Post date: [April 17, 2022, 9:18am UTC](https://meta.discourse.org/t/is-discourse-always-in-beta/198215/10 "2022-04-17T09:18:48Z")

</div>

That’s not entirely true. There are many bugfixes backported to stable.

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [April 17, 2022, 9:53am UTC](https://meta.discourse.org/t/is-discourse-always-in-beta/198215/11 "2022-04-17T09:53:51Z")

</div>

Well, that’s quite true I’m sure.

But hypebole is the best thing ever!

---

<div class="post-metadata">

### Author: ![justin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/justin/32/157614_2.png) [@justin](https://meta.discourse.org/u/justin)
#### Post date: [April 18, 2022, 9:46pm UTC](https://meta.discourse.org/t/is-discourse-always-in-beta/198215/12 "2022-04-18T21:46:34Z")

</div>

> [@RGJ](#):
>
> There are many bugfixes backported to stable.

True, the showstopper ones. Smaller bugs are not.

---

<div class="post-metadata">

### Author: ![bksubhuti](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/bksubhuti/32/254360_2.png) [@bksubhuti](https://meta.discourse.org/u/bksubhuti)
#### Post date: [April 20, 2022, 12:01am UTC](https://meta.discourse.org/t/is-discourse-always-in-beta/198215/13 "2022-04-20T00:01:30Z")

</div>

**It would be good if there were a choice in the general instructions, sort of like LibreOffice download choices or Debian.**

I am hosting the site on DO but my co-owner was originally from [discoursehosting.net](http://discoursehosting.net) as a subdomain, and he sees all of this maintenance and say “Why don’t we just use discourse hosting?”

I told him that we have our own name, server, higher tier plugins (like emoji likes and google sign in), and other things. I told him that he was probably using older discourse and never updated either.

I too would rather just use stable and forget about it until 6 months later. I’m a daily driver of Ubuntu, but I get a little nervous typing in those few build commands. Plus the server goes down for 5 minutes when I rebuild.

On the other hand, I’m going to request a backup feature to be integrated and would jump on beta for it 🤣

---

<div class="post-metadata">

### Author: ![RGJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rgj/32/523185_2.png) [@RGJ](https://meta.discourse.org/u/RGJ)
#### Post date: [April 20, 2022, 5:53am UTC](https://meta.discourse.org/t/is-discourse-always-in-beta/198215/14 "2022-04-20T05:53:59Z")

</div>

> [@bksubhuti](#):
>
> … my co-owner was originally from [discoursehosting.net](http://discoursehosting.net) as a subdomain, and he sees all of this maintenance and say “Why don’t we just use discourse hosting?”
> 
> I told him that we have our own name, server, higher tier plugins (like emoji likes and google sign in), and other things. I told him that he was probably using older discourse and never updated either.

Just to avoid any kind of speculation: at [Communiteq](https://www.communiteq.com) (formerly [discoursehosting.net](http://discoursehosting.net)) you get your own hostname, plugins of your choice on the Professional plan and up, and we backup and update your forum for you. So yes, most of your problems will indeed be solved by using managed hosting.

---

<div class="post-metadata">

### Author: ![bksubhuti](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/bksubhuti/32/254360_2.png) [@bksubhuti](https://meta.discourse.org/u/bksubhuti)
#### Post date: [April 20, 2022, 9:28am UTC](https://meta.discourse.org/t/is-discourse-always-in-beta/198215/15 "2022-04-20T09:28:16Z")

</div>

The original issue was to request provide a stable build option in the [github install instructions](https://github.com/discourse/discourse/blob/main/docs/INSTALL-cloud.md). I see that you provide stable releases for your customers. Perhaps you can kindly explain how to clone and install a stable release? That was also my original question.

As a small and semi-private group, there is no justification for anything less than the DO $5 server. However, you have a great service for $40 per month for the professional plan or the basic plan. I wish you the best of luck. It is a good deal compared to the official discourse plans. All options are great for those who can afford this. That is the great part of FOSS.

---

<div class="post-metadata">

### Author: ![Stephen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/stephen/32/95011_2.png) [@Stephen](https://meta.discourse.org/u/Stephen)
#### Post date: [April 20, 2022, 2:59pm UTC](https://meta.discourse.org/t/is-discourse-always-in-beta/198215/16 "2022-04-20T14:59:41Z")

</div>

I believed the decision to install on tests-passed by default is quite intentional.

It’s far easier to support new installations at a single software level. As the support provided here is community-based and for the most part 100% free there’s no good reason to complicate it.

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [April 21, 2022, 9:33am UTC](https://meta.discourse.org/t/is-discourse-always-in-beta/198215/17 "2022-04-21T09:33:05Z")

</div>

> [@bksubhuti](#):
>
> Perhaps you can kindly explain how to clone and install a stable release?

The [standard install](https://meta.discourse.org/t/142537?silent=true) instructions are simplified for a reason.  
Running `stable` is considered an advanced setup, so you need to edit the `app.yml` by hand. You can search for “version” and see documented there what to do.

Modifying discourse-setup to include this as an option would be confusing to most people, so I don’t think it’ll be added there.

---

<div class="post-metadata">

### Author: ![Dannii](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/dannii/32/129087_2.png) [@Dannii](https://meta.discourse.org/u/Dannii)
#### Post date: [April 23, 2022, 12:58pm UTC](https://meta.discourse.org/t/is-discourse-always-in-beta/198215/18 "2022-04-23T12:58:37Z")

</div>

Maybe a helpful metaphor is that the “stable” branch is like the disc based Microsoft Office, whereas the “tests-passed” branch is like the cloud based Office 365. Both are viable options, and both get updates eventually, but for a product that’s fundamentally online already and which has a small support team, it’s more productive to be able to instruct people to update their installations to the current code, so that bugs can be tested and fixed promptly. As a forum admin it’s great to be able to report a bug and update to a version that fixes it within a few days, sometimes even the next day. I haven’t used any other web apps that are as responsive as that. (Not that every bug is fixed instantly, but many are.)

---

<div class="post-metadata">

### Author: ![mlgtechuser](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mlgtechuser/32/262708_2.png) [@mlgtechuser](https://meta.discourse.org/u/mlgtechuser)
#### Post date: [July 9, 2022, 7:31pm UTC](https://meta.discourse.org/t/is-discourse-always-in-beta/198215/19 "2022-07-09T19:31:54Z")

</div>

> [@pfaffman](#):
>
> Running `stable` is considered an advanced setup, so you need to edit the `app.yml` by hand. You can search for “version” and see documented there what to do.

@pfaffman, I followed the link and the one it led to, but saw nothing about setting the config to `stable`. What am I missing? Do you mean 'search the `app.yml` file for “version” '?

---

<div class="post-metadata">

### Author: ![Benjamin\_D](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/benjamin_d/32/277831_2.png) [@Benjamin\_D](https://meta.discourse.org/u/Benjamin_D)
#### Post date: [July 9, 2022, 8:59pm UTC](https://meta.discourse.org/t/is-discourse-always-in-beta/198215/20 "2022-07-09T20:59:09Z")

</div>

> <https://github.com/discourse/discourse_docker/blob/e30ccb9042d9952d0cc17a866f67b6d5c1dcbd13/samples/standalone.yml#L37>

but I don’t think you can go from `test-passed` to `stable` (as you would go back in commit and probably need to reverse some migrations in the database, unless your `test-passed` version is old enough to be over-passed by the newest stable I suppose 🤔)

---

<div class="post-metadata">

### Author: ![mlgtechuser](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mlgtechuser/32/262708_2.png) [@mlgtechuser](https://meta.discourse.org/u/mlgtechuser)
#### Post date: [July 9, 2022, 9:52pm UTC](https://meta.discourse.org/t/is-discourse-always-in-beta/198215/21 "2022-07-09T21:52:58Z")

</div>

Thanks for the speedy reply!

> [@Benjamin\_D](#):
>
> unless your `test-passed` version is old enough to be over-passed by the newest stable I suppose

I was expecting that the updating would just suspend until the next `stable` release cycle.

> [@Benjamin\_D](#):
>
> you would go back in commit

Any insight on this? Why would anything immediately change from flipping the `#version` switch?

[Next page](https://meta.discourse.org/t/is-discourse-always-in-beta/198215.md?page=2)
