release cycle - victronenergy/venus GitHub Wiki

Major vs maintenance releases

A new major release is, on average, made every two months. Note that those two months are not strict: we take an opportunistic approach. The major releases are numbered with v2.10, v2.20, v2.30, and-so-forth.

In case there are urgents things to fix, we make intermediate smaller releases, called a maintenance release. For these, only the last digit increases, for example v2.21, v2.22, v2.23. More information about how thats done, is in venus/README.md.

Version number formatting

Official releases have a clean version number, ie v2.06, or v2.10.

Version with a tilde in their version number, are either internal test versions, or beta versions.

For example, v2.06~12 is test version number 12 of version v2.06. The next build will be v2.06~13, and so forth. When releasing the final version of v2.06, the tilde and test number are removed, and the firmware is officially released as v2.06.

Release early in the week

Early in the week (Monday or Tuesday) and in the morning. Note that this requires the building & last verification to be done latest in the prior evening.

The feeds: develop, testing, candidate and release

The feeds are where Venus OS downloads a new version. You can also manually download the installer as well as update (.swu) files there.

Develop:

(never use this; unless your name is Jeroen H.)

Once all is in master, the maintainer (Jeroen H.) triggers an automatic build; done on the build server. When successful, the result is uploaded to the develop feed.

Immediately after the building, the CI starts automatic tests. Once passed, it pushes the build results to the Testing feed:

Testing:

(never use this, unless you've been told to do so)

To be used by other developers that contributed. They must test if their changes are included OK and work OK.

Once completed; they inform the Venus-maintainer, and he then pushes it onward, to the Candidate-feed.

https://updates.victronenergy.com/feeds/venus/testing/

Candidate:

This is also known as the beta-testing feed. A few hundred customer systems are configured to automatically update to this feed. More information about the beta-testing program is here.

https://updates.victronenergy.com/feeds/venus/candidate/

Release:

Finally, when all lights are green, one last small change is made: the version number is shortened to the format for official releases (v2.20~23 -> v2.20). And then a new build is triggered and tested (from the develop feed); and thereafter pushed to testing, candidate and release at the same moment.

https://updates.victronenergy.com/feeds/venus/release/

The todo-list

Besides todos, this list also shows the status of each change; and holds the detailed change-log of the release under way.

The todo list is not public.

Merge cycle example

An example to show the full process. Starting with a change in one of the many projects in Venus, up to a new release of Venus.

  1. The fix has been implemented
  2. It’s reviewed, and pushed to the master branch of the project. example
  3. A new version of gps-dbus is released (version no changes in codes, tagged and pushed). example
  4. The change is listed on the Venus-Todo page for inclusion; List it in the section that holds the queue for the Venus maintainer. Include a link to an issue, if there is one, and a description. When it’s a bugfix, then include the version number at which the bug was introduced.
  5. Venus maintainer changes the bitbake recipe to the new version. example
  6. And possibly also includes other changes.
  7. Venus maintainer increases the build number (v2.20~12 to v2.20~13 for example); and triggers a build. example
  8. The build is now in the Develop-feed. Maintainer tests it and there after pushes to testing-feed.
  9. All contributors test the version in testing for their changes: are they properly included and all OK?
  10. When all Ok, maintainer pushes to candidate

Finally, after several of such cycles, the version is made official (for example v2.20~18 is changed to v2.20) and pushed to the Release feed. Also a blog is made, the todo list wiki page is prepared for the next cycle, developer changelog copied into its own separate page. Also the public changelog, available for customers via https://professional.victronenergy.com, is updated.

Tbd: add git log of example project and git log of meta-victronenergy.