Skip to content
mpvader edited this page Jun 1, 2018 · 21 revisions

A new release is, on average, made every two months. Note that those two months are not strict: we take an opportunistic approach.

The feeds: develop, testing, candidate and release

Develop:

Once all is in master, the maintainer triggers an automatic build; done on the build server. When successful, all output is uploaded to the develop feed.

A small number of inhouse test systems is set to use the develop feed. The maintainer tests this; and once OK for further testing, forwards to the Testing feed.

Testing:

To be used by other developers, to test if their changes work OK in the latest release.

Once all testing has been completed; they inform the Venus-maintainer, and he then pushed onwards, to the Candidate feed:

Candidate:

A few hundred customer systems are configured to automatically update to this feed.

Release:

Lastly, when we give the green light, the version is shortened to the format for official releases, see for example here. A new build is triggered and then tested (from the develop feed); and thereafter pushed to testing, candidate and release.

The todo-list

Besides todos, this list also shows the status of each change; and holds the detailed change-log of the release thats being worked on.

Note that the 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 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.

Clone this wiki locally