Using Release Channels

Gina Häußge edited this page Sep 9, 2016 · 6 revisions

Starting with OctoPrint 1.2.16, OctoPrint's bundled Software Update plugin offers so called release channels, allowing you to choose between the "Stable", "Maintenance RCs" and "Devel RCs" release channels as update source for OctoPrint itself.

You can change OctoPrint's release branch via "Settings" > "Software Update", there clicking the little wrench icon and in "Release" tracking mode selecting your desired release branch under "OctoPrint Release Channel".

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 branch.

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

  • Maintenance release candidates 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 release candidates are not available yet, but once the first release candidate of what is going to be
    1.3.0 is tagged, this is where you'll find it. 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.

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.

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.2.15 but then broke in 1.2.16, 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 RC channels?

As a general rule of thumb, only run any of the RC release channels if you feel comfortable, or better yet excited :), 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!

Manually switching to an RC branch


Note: OctoPrint starting from 1.2.16rc1 will take care of this when you select your desired release channel in the Software Update plugin's settings and update to a release candidate for the first time.


Substitute <rc branch> with either rc/maintenance or rc/devel, depending on whether you are interested in maintenance or devel release candidates.

OctoPi

source ~/oprint/bin/activate
cd ~/OctoPrint
git pull
git checkout <rc branch>
python setup.py clean
python setup.py install
sudo service octoprint restart

Make sure to also configure OctoPrint's Software Update plugin to do release tracking and to track the release channel you are interested in, via "Settings" > "Software Update" and there clicking the little wrench icon in the upper right corner.

Manual install

cd /path/to/OctoPrint
source ./venv/bin/activate
git pull
git checkout <rc branch>
python setup.py clean
python setup.py install

Then restart OctoPrint.

Make sure to also configure OctoPrint's Software Update plugin to do release tracking and to track the release channel you are interested in, via "Settings" > "Software Update" and there clicking the little wrench icon in the upper right corner.

How to roll back to stable releases


Note: OctoPrint starting from 1.2.16rc1 will take care of this when you select the "Stable" release channel in the Software Update plugin's settings and update to a stable release for the first time.


OctoPi

source ~/oprint/bin/activate
cd ~/OctoPrint
git pull
git checkout master
python setup.py clean
python setup.py install
sudo service octoprint restart

Make sure to also configure OctoPrint's Software Update plugin to do release tracking and to track the "Stable" release channel, via "Settings" > "Software Update" and there clicking the little wrench icon in the upper right corner.

Manual install

cd /path/to/OctoPrint
source ./venv/bin/activate
git pull
git checkout master
python setup.py clean
python setup.py install

Then restart OctoPrint.

Make sure to also configure OctoPrint's Software Update plugin to do release tracking and to track the "Stable" release channel, via "Settings" > "Software Update" and there clicking the little wrench icon in the upper right corner.