Improvements in update system: stable, staging & testing

Hi @zynthianers!

I’ve been improving the updating system so we finally have a decent playground for further evolution without disruption :wink:

IMPORTANT! If currently you are in Oram branch, next time you update your zynthian it will be fixed to the last stable tag-release and “stable (oram-2409.001)” will be selected in the webconf repo version selector, like this:

If you open the selector, you could see all the available options:

  • Stable is the current stable tag-release which is a version of Oram.
  • Staging => Oram is the staging branch for the current stable version.
  • Testing => Vangelis is the development and testing branch.
  • Custom => You can select the branch for each repository. Advanced feature!!

But what the hell is a tag-release??!!

A tag-release is a fixed point in the version tree that we (the developers) have decided to tag as “stable”. As our current stable branch is named “oram”, the tag releases will be named like this:

  • oram-2409
  • oram-2409.001
  • oram-2503.012

What you need to know is:

When updating, if you have selected “stable” in the webconf’s version selector, your zynthian will check for new tag-releases and will “jump” automatically to the last available tag-release.

No other updates will be received. No system package updates (apt) nor discrete “commits”.

Having fixed and well known release points is good for you and also for developers. We hope it will improve stability while easing debugging and development of new features.

Regarding “staging”, it works as you are used to. You will get all updates from oram branch, that acts as the staging branch. Note that it’s “staging” not “testing” branch!! When “Staging” is selected, system packages (apt) wont be updated unless required by some “update recipe”, so, you could expect staging branch to be very stable.

Regarding “testing”, this is the development branch, where things are happening, evolving quite fast. You can expect almost daily updates and things broken from time to time. Hopefully, not fully broken, but partially broken or so :nerd_face: . Don’t use it for production!!

Update & Enjoy!

6 Likes

Hi @jofemodo, this sounds logical and very promising, in terms of development with system reliability.

Sorry for the dumb question, but I am not completely sure to have grasped correctly the difference between a staging and stable OS release.

In a nutshell, which of the two is “safer” when it comes to system stability, temporarily renouncing to a bit of newer developments?

I seem to understand that maybe stable is more solid, because it should only include tested point steps of the OS development.

Am I right or otherwise?

Thanks

Switched to Staging.
Software ERROR. Nothing works, not even SSH, nor AP, nor ethernet.
Oh, I’m so happy to have a restore stick on USB… again a 32GB write to µSD… checking “endurance”.
Last Vangelis was working well, so I’ll better refrain from any kind of updates furtheron.

Stable - Use this for production. It is the most stable and tested release.

Staging - Use this for testing the next stable point release.

Testing - Only for developers or those who want to test a particular fix. This branch will be broken more often than the other two.

So - most users should use stable.

3 Likes

Totally crystal clear :+1:. Thanks!

The waters were muddied somewhat over the past few months because oram is such a big change to the previous version and took so long to build that, in the later months of development we got to a state where oram was a better option (more maintained) than the stable version so we started recommending users to move to oram before its release. We aim to avoid that with a rolling oram release cycle and more regular point releases. Of course we will suggest users test things in the vangelis branch so that we can validate those fixes or enhancements and some users may wish to sit on vangelis for longer periods if they want or need a particular feature but I hope that the normal user can remain on the stable version of oram and receive fairly prompt updates.

We aspire to a simple user workflow whilst allowing more complex configuration for the daring adventurers.

2 Likes

What does it mean for us with our own fork (with or without special branch)? Just stay in “staging” mode?