Release process

Introduction

The Tryton Release process is inspired by the OpenBSD Release Process. To get a conception of the process please have a look at a video of The OpenBSD Release Process at AsiaBSDCon 2009. The next release date is chosen after a release and published at Tryton’s events calendar.

What is released?

  • Every part of Tryton, the user needs to install and run the complete application.
  • Development and build-for-release specific parts are not released, they are always current in the development tree.

Schedule

Releases are published every 6 months. So a long term release is published every 2.5 years.
Maintenance releases are not planned and are published when there are fixes.

Maintenance

Minor Releases are maintained for at least 1 year.
Long Term Release are maintained for at least 5 years.
Maintenance means there will be bug-fix releases during the period.

Here is an example of the timeline:

* 6.0  5/2021 -->  5/2026    |---.---.---.---.---|
* ...
* 7.0 10/2023 --> 10/2028           |---.---.---.---.---|
* 7.2  5/2024 -->  5/2025             |---|
* 7.4 10/2024 --> 10/2025               |---|
* 7.6  5/2025 -->  5/2026                 |---|
* 7.8 10/2025 --> 10/2026                   |---|
* 8.0  5/2027 -->  5/2032                     |---.---.---.---.---|             

Version number of Tryton releases

The Tryton version number is made of thee parts like the following example:

Tryton Version 2.3.5

Major release

The first and second number are series numbers.
These general version numbers…

  • … are used to indicate a major step in the evolution of Tryton;
  • … are published twice per year;
  • … can change parts of the database structure;
  • … could need manual steps for database upgrade;

Long Term Release are release with series ending by 0.

Minor release

The third number is the minor version number of Tryton.
Releases changing this number…

  • … are published to fix bugs;
  • … don’t change the database structure;
  • … don’t need a database upgrade;
  • … are considered as unproblematic for update;

Migration

The migration between series is managed by updating the database. Some release may require manual operation which are published under migration category.
The process is supported from one series to the direct following and from one LTS to the direct next one (by applying operations of each series in between).

Development state

The second number indicates development state:

  • even number and null: Release version
  • odd number: Development version

Major release preparation

The development is frozen about 2 weeks before the scheduled date.
“freezing” is handled by maintainers discipline.

During freezing:

  • Translation teams update the translation of each repositories.
  • Everybody test and report issues until release.
  • The reviews related to new features are not reviewed and not applied.

Release process

We use the scripts from Tryton / Tools / Maintenance · GitLab from within the repository to release.

It just requires to have the environment variable TRYTON_GPG_KEY.

Major release

Execute the following command:

$ do_major_release

Add new series to tryton-docker .

Build a demo database for the new series with the module authentication_none using:

$ tryton_demo.py

Upload the database backup to the demo server.
Update web server to redirect to the new series. Update module list and download links.

Build clients for Windows, MacOS and Flatpack.

Minor release

Execute the following command:

$ do_minor_release

Optionally build clients for Windows, MacOS and FlatPack.

2 Likes

4 posts were split to a new topic: Reduce release freeze

2 posts were split to a new topic: How long old series before LTS are supported?

A post was merged into an existing topic: Reduce release freeze

2 posts were split to a new topic: Clarrification of the release schedule