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!

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

3 Likes

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

If you fork zynthian then you need to decide what to follow. If you follow oram branch then you will have fewer but bigger changes to merge. If you follow vangelis then you will have many smaller changes to merge. It is your decision as to how you want to support your fork. If you intend to offer pull requests back into the upstream zynthian then you should use vangelis as this is our development branch and the only branch we will accept pull requests.

Is a new flash required at every update ?

No! You should only need to flash the image to the disk once for the major release. (We like to allow update between major release but this isn’t always possible so we have recommended (sometimes mandated) to reflash for a major release.) For point releases it is simply a matter of running the update from admin menu or webconf. When an update is available, a green circular arrow appears in the top right of the screen.

1 Like

So, given that my Pi running Zynthian is on my wireless network, is there a button somewhere on the menu, that I can press, that will download and install updates ? Or, must a user be versed in command prompts, linux and so on ?

Both gui admin and webconf software have update options, and webconf software allows you to configure the repositories you are using. No command line needed.

You have several options:

  • Check the admin menu for the “Update software” entry. This is the easiest way.
  • From webconf => software => update
  • From command line:

update_zynthian.sh

After this, for changing the software version you are using:

  • stable => default
  • staging => normal testers => quite stable.
  • testing => advanced testers => not so stable!
  • custom (advanced users only!)

You should access webconf → software => repositories

Enjoy!

1 Like

So basically, it’s not just a simple button in the admin menu ? And if not, why not ?

It is a simple button in the admin menu. It says, “Update Software” and only appears if there are updates available.

7 Likes

Can’t get any easier than that.

3 Likes

Ok. So I should probably open a new PR against Vangelis instead of the old one?

I just wondered how the stable/staging difference affects a fork. I don’t create tags myself, yet.

Stable is a tag. A system attached to a stable tag will be detached from oram branch.

Staging is the oram branch. A system attached to staging will be attached to the oram branch.

Testing is the vangelis branch. A system attached to testing will be attached to the vangelis branch.

Forks can syncronise with upstream repo and will have to manage any merging conficts. You are best off working in a development branch, derived from vangelis until you are sure that your development is ready, and then submit a PR to vangelis. You should regularly sync with upstream and merge vangelis to the dev branch.

1 Like

I know your use case of Zynthian is mostly as a Midi processing/routing unit.
So, please, consider that none of my “professionnal” midi gear has:

  • a simple procedure to update the firmware
  • especially with a “one click procedure”
  • is fully open sourced hardware and software and let YOU customised it To fit your needs.
  • with so much dayly improvements. It’s quiet getting too fast IMHO.
  • because our lovely dev are so brilliant and are listening To what users says
5 Likes

OK. Moved to Vangelis, did some cleanup, added formalities as much as I was able according to the original files, and re-created new PRs.

I will continue syncing with the upstream as long as I am alive, like I have been doing until now. The last changes in upstream formatting (I know, the random use of TABs and spaces in different files has irritated me as well) took me a whole night of work to manually reapply all my changes to the upstream. (I am happy I managed to resist throwing my zynthian and all the work from the window.)