Supported balenaOS version matrix

What is the best way to tell the latest version of balenaOS that is compatible with a given version of openBalena?

For example, I am running openBalena version tagged v3.1.1 and would like to know the latest version of balenaOS I can run and still be compatible with my openBalena instance

So far, I have begun tracking down the breaking changes I encounter in the latest version of balenaOS, finding when they entered the codebase and tracing the versions back from there. It has become quite the rabbit-hole and I am wondering if there is a table published with this information

Hi, could you please share with us what are the breaking changes that prevents recent balenaOS versions to work with openBalena? Our aim is for all balenaOS releases to be openBalena compatible and it seems this is something we could definitely improve on.

When the supervisor starts on the device it is hitting this /v3/{uuid}/state endpoint which is returning a 404 off of openBalena. I’ve tracked down the lines and commit where it was changed and will reply here with it when I get a chance

I believe it is this commit: Refactor current state report to patch v3 state · balena-os/balena-supervisor@381abea · GitHub

Line 44 of the new changes in src/api-binder/report.ts swaps the v2 endpoint for the v3 endpoint. I am assuming this is what causes the 404 but I have not verified that I don’t get a 404 back from openBalena when I use the v2 endpoint.

Hi, the v3 target state changes were introduced in open-balena-api v.0.199.0, so please try to update to openBalena v3.7.0 (open-balena/CHANGELOG.md at master · balena-io/open-balena · GitHub)>
You will then need to use a balenaOS version >= v2.98.14 which is when the v3 target state change was introduced.
Note that we don’t specifically test balenaOS with openBalena, so please let us know of any problem you encounter.

Unfortunately we don’t want to update openBalena as that is a risk and we don’t currently have the necessary failsafes in place to restore the server if the upgrade fails.

It sounds like the best way for me to proceed is to guess-and-check/track down via GitHub where breaking changes may have entered balenaOS so that I can install the latest yet still compatible version of balenaOS, correct?

Hi again, the supervisor is the component that manages cloud communication in balenaOS. If breaking changes are introduced, the major version will be updated. For example, the v3 target state was introduced in v13.0.0. balena-supervisor/CHANGELOG.md at master · balena-os/balena-supervisor · GitHub