# Improvements in update system: stable, staging & testing

**URL:** <https://discourse.zynthian.org/t/improvements-in-update-system-stable-staging-testing/10467>\
**Category:** Software\
**Tags:** oram, vangelis\
**Created:** [November 5, 2024, 5:51pm UTC](https://discourse.zynthian.org/t/improvements-in-update-system-stable-staging-testing/10467 "2024-11-05T17:51:06Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![jofemodo](https://discourse.zynthian.org/user_avatar/discourse.zynthian.org/jofemodo/32/2_2.png) [@jofemodo](https://discourse.zynthian.org/u/jofemodo)\
**Post date:** [November 5, 2024, 5:51pm UTC](https://discourse.zynthian.org/t/improvements-in-update-system-stable-staging-testing/10467/1 "2024-11-05T17:51:06Z")

</div>

Hi @zynthianers!

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

**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:

 ![Captura de pantalla de 2024-11-05 18-23-26](https://discourse.zynthian.org/uploads/default/original/2X/9/963b5bcf0ffc71f1ce144ceaf1778e0e1c9c622f.png)

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 🤓 . **Don’t use it for production!!**

Update & Enjoy!

---

<div class="post-metadata">

**Author:** ![Aethermind](https://discourse.zynthian.org/user_avatar/discourse.zynthian.org/aethermind/32/9208_2.png) [@Aethermind](https://discourse.zynthian.org/u/Aethermind)\
**Post date:** [November 5, 2024, 9:30pm UTC](https://discourse.zynthian.org/t/improvements-in-update-system-stable-staging-testing/10467/2 "2024-11-05T21:30:37Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![fussl](https://discourse.zynthian.org/letter_avatar_proxy/v4/letter/f/d07c76/32.png) [@fussl](https://discourse.zynthian.org/u/fussl)\
**Post date:** [November 5, 2024, 9:39pm UTC](https://discourse.zynthian.org/t/improvements-in-update-system-stable-staging-testing/10467/3 "2024-11-05T21:39:10Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![riban](https://discourse.zynthian.org/user_avatar/discourse.zynthian.org/riban/32/2331_2.png) [@riban](https://discourse.zynthian.org/u/riban)\
**Post date:** [November 6, 2024, 6:28am UTC](https://discourse.zynthian.org/t/improvements-in-update-system-stable-staging-testing/10467/4 "2024-11-06T06:28:16Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![Aethermind](https://discourse.zynthian.org/user_avatar/discourse.zynthian.org/aethermind/32/9208_2.png) [@Aethermind](https://discourse.zynthian.org/u/Aethermind)\
**Post date:** [November 6, 2024, 7:28am UTC](https://discourse.zynthian.org/t/improvements-in-update-system-stable-staging-testing/10467/5 "2024-11-06T07:28:20Z")

</div>

Totally crystal clear 👍. Thanks!

---

<div class="post-metadata">

**Author:** ![riban](https://discourse.zynthian.org/user_avatar/discourse.zynthian.org/riban/32/2331_2.png) [@riban](https://discourse.zynthian.org/u/riban)\
**Post date:** [November 6, 2024, 7:34am UTC](https://discourse.zynthian.org/t/improvements-in-update-system-stable-staging-testing/10467/6 "2024-11-06T07:34:55Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![wanthalf](https://discourse.zynthian.org/letter_avatar_proxy/v4/letter/w/ed655f/32.png) [@wanthalf](https://discourse.zynthian.org/u/wanthalf)\
**Post date:** [November 6, 2024, 11:52pm UTC](https://discourse.zynthian.org/t/improvements-in-update-system-stable-staging-testing/10467/7 "2024-11-06T23:52:10Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![riban](https://discourse.zynthian.org/user_avatar/discourse.zynthian.org/riban/32/2331_2.png) [@riban](https://discourse.zynthian.org/u/riban)\
**Post date:** [November 7, 2024, 6:19am UTC](https://discourse.zynthian.org/t/improvements-in-update-system-stable-staging-testing/10467/8 "2024-11-07T06:19:53Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![Yan](https://discourse.zynthian.org/letter_avatar_proxy/v4/letter/y/3e96dc/32.png) [@Yan](https://discourse.zynthian.org/u/Yan)\
**Post date:** [November 7, 2024, 6:30am UTC](https://discourse.zynthian.org/t/improvements-in-update-system-stable-staging-testing/10467/9 "2024-11-07T06:30:42Z")

</div>

Is a new flash required at every update ?

---

<div class="post-metadata">

**Author:** ![riban](https://discourse.zynthian.org/user_avatar/discourse.zynthian.org/riban/32/2331_2.png) [@riban](https://discourse.zynthian.org/u/riban)\
**Post date:** [November 7, 2024, 6:52am UTC](https://discourse.zynthian.org/t/improvements-in-update-system-stable-staging-testing/10467/10 "2024-11-07T06:52:28Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![Yan](https://discourse.zynthian.org/letter_avatar_proxy/v4/letter/y/3e96dc/32.png) [@Yan](https://discourse.zynthian.org/u/Yan)\
**Post date:** [November 7, 2024, 10:40am UTC](https://discourse.zynthian.org/t/improvements-in-update-system-stable-staging-testing/10467/11 "2024-11-07T10:40:17Z")

</div>

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 ?

---

<div class="post-metadata">

**Author:** ![wyleu](https://discourse.zynthian.org/user_avatar/discourse.zynthian.org/wyleu/32/514_2.png) [@wyleu](https://discourse.zynthian.org/u/wyleu)\
**Post date:** [November 7, 2024, 11:25am UTC](https://discourse.zynthian.org/t/improvements-in-update-system-stable-staging-testing/10467/12 "2024-11-07T11:25:06Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![jofemodo](https://discourse.zynthian.org/user_avatar/discourse.zynthian.org/jofemodo/32/2_2.png) [@jofemodo](https://discourse.zynthian.org/u/jofemodo)\
**Post date:** [November 7, 2024, 11:29am UTC](https://discourse.zynthian.org/t/improvements-in-update-system-stable-staging-testing/10467/13 "2024-11-07T11:29:10Z")

</div>

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!

---

<div class="post-metadata">

**Author:** ![Yan](https://discourse.zynthian.org/letter_avatar_proxy/v4/letter/y/3e96dc/32.png) [@Yan](https://discourse.zynthian.org/u/Yan)\
**Post date:** [November 7, 2024, 12:59pm UTC](https://discourse.zynthian.org/t/improvements-in-update-system-stable-staging-testing/10467/14 "2024-11-07T12:59:42Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![riban](https://discourse.zynthian.org/user_avatar/discourse.zynthian.org/riban/32/2331_2.png) [@riban](https://discourse.zynthian.org/u/riban)\
**Post date:** [November 7, 2024, 1:02pm UTC](https://discourse.zynthian.org/t/improvements-in-update-system-stable-staging-testing/10467/15 "2024-11-07T13:02:25Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![Hans\_JB](https://discourse.zynthian.org/letter_avatar_proxy/v4/letter/h/5e9695/32.png) [@Hans\_JB](https://discourse.zynthian.org/u/Hans_JB)\
**Post date:** [November 7, 2024, 2:22pm UTC](https://discourse.zynthian.org/t/improvements-in-update-system-stable-staging-testing/10467/16 "2024-11-07T14:22:01Z")

</div>

Can’t get any easier than that.

---

<div class="post-metadata">

**Author:** ![wanthalf](https://discourse.zynthian.org/letter_avatar_proxy/v4/letter/w/ed655f/32.png) [@wanthalf](https://discourse.zynthian.org/u/wanthalf)\
**Post date:** [November 7, 2024, 3:35pm UTC](https://discourse.zynthian.org/t/improvements-in-update-system-stable-staging-testing/10467/17 "2024-11-07T15:35:06Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![riban](https://discourse.zynthian.org/user_avatar/discourse.zynthian.org/riban/32/2331_2.png) [@riban](https://discourse.zynthian.org/u/riban)\
**Post date:** [November 7, 2024, 4:00pm UTC](https://discourse.zynthian.org/t/improvements-in-update-system-stable-staging-testing/10467/18 "2024-11-07T16:00:13Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![le51](https://discourse.zynthian.org/user_avatar/discourse.zynthian.org/le51/32/1706_2.png) [@le51](https://discourse.zynthian.org/u/le51)\
**Post date:** [November 7, 2024, 4:42pm UTC](https://discourse.zynthian.org/t/improvements-in-update-system-stable-staging-testing/10467/19 "2024-11-07T16:42:50Z")

</div>

> [@Yan](#):
>
> So basically, it’s not just a simple button in the admin menu ? And if not, why not ?

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

---

<div class="post-metadata">

**Author:** ![wanthalf](https://discourse.zynthian.org/letter_avatar_proxy/v4/letter/w/ed655f/32.png) [@wanthalf](https://discourse.zynthian.org/u/wanthalf)\
**Post date:** [November 8, 2024, 2:58pm UTC](https://discourse.zynthian.org/t/improvements-in-update-system-stable-staging-testing/10467/21 "2024-11-08T14:58:52Z")

</div>

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

[Next page](https://discourse.zynthian.org/t/improvements-in-update-system-stable-staging-testing/10467.md?page=2)
