How to use the release channels to help test release candidates

OctoPrint's bundled Software Update plugin offers so called release channels, allowing you to choose between the stable and a number of release candidate channels for OctoPrint itself and - starting with OctoPrint 1.5.0 - also for any plugins which offer this functionality

You can change the release channel via "Software Update" in the settings, simply select your desired channel in the drop down.

OctoPrint Release Channels and Release Candidates

OctoPrint currently supports three release channels, "Stable", "Maintenance RCs" and "Devel RCs".

When selecting either of the two RC channels, OctoPrint will not only notify and offer to upgrade to stable releases but also any release candidates tagged for either channel.

There are two RC release channels because OctoPrint is actually developed on two branches:

  • Maintenance RCs will be derived from the maintenance branch, so basically the branch dedicated to moving the current stable releases forward. You can expect "small" releases here, usually consisting of fixes and improvements. They are tagged on the rc/maintenance branch.
  • Devel RCs will be derived from the devel branch, so basically the branch dedicated to developing the next major release. You can expect larger changes here, especially a lot of new and changed features and - at the very beginning - potentially less stable versions for the one or other specific use case than what you are used to. They are tagged on the rc/devel branch.

You'll be able to freely switch between release channels right from OctoPrint's UI, and OctoPrint will take care of everything necessary to up/downgrade in the background (unless you've installed the OctoPrint server under Windows, in which case please see here on how to update manually).

However, note that release candidates are candidates for a reason. Bugs may occur, and if you come across anything broken when running a release candidate, you should take the time to do a full bug report immediately so the issue can be resolved quickly before it hits the stable release and hence everyone.

Also note that as of OctoPrint 1.8.0rc1, OctoPrint no longer supports Python 2, so Python 2 instances are excluded from using release channels other than Stable too. If your instance is still running on Python 2, you need to upgrade.

What will cause a release candidate to be revised?

Not all bugs will cause an OctoPrint release candidate to be revised before full release. Considering that no software can ever be bug free, that would lead to a endless cycle sadly. Instead, we focus on identifying and solving regressions.

What is a regression? When we talk about a regression in the context of OctoPrint release candidates, what is meant is a bug newly introduced in the release candidate, NOT a bug already present in the current stable version. In a nutshell, if something still worked fine in OctoPrint 1.3.6 but then broke in 1.3.7rc1, that's a regression.

Not all regressions will cause a release candidate to be revised - there might be bugs with little actual consequence that can wait until the next stable version. But things that really break existing functionality and make OctoPrint unusable for a select group of people certainly will cause another release candidate to be put out after the problem has be dealt with.

Should I run any of the RCs?

As a general rule of thumb, only run any of the RCs released on the RC release channels if you feel comfortable, or better yet excited :slight_smile: , to help in ironing out small kinks and are not scared of potentially having to do the one or other manual step via SSH and the command line if push really comes to shove.

If you don't, no harm done, just stick to the "Stable" channel!

I only see the stable channel!

If you only see the "Stable" channel, your OctoPrint instance might still be running on Python 2. Python 2 has been end-of-life since January 1st 2020 and OctoPrint 1.8.0 and later no longer supports running under it, meaning that Python 2 instances are also excluded from release channels and instead redirected to a legacy repository with a bare minimum of support. Read more on this here.

Plugin Release Channels and Release Candidates

As of OctoPrint 1.5.0, release channels are available in the UI for plugins to use as well. This means that plugin authors can enlist their users into testing releases for them. It is up to the author what to call these, so if you are unsure what one of the channels mean please get in touch with the plugin author.

Similarly to OctoPrint, you can swap release channels to help out the plugin authors in releasing top-quality plugins. Often plugin authors are looking for feedback with pre-release versions, be sure to let them know what you think!

Are you a plugin author that wants to add release channels? @cp2004 has written a guide on how to do just that:

How to add release channels to your OctoPrint plugin