Release Schedule and Version Numbers#
Major Releases#
Phosh currently follow a six week development cycle and release schedule for major releases of its components targeting a weekend at the end or in the middle of the release month. The release calendar lists releases as well as the responsible release team members.
Two weeks to 10 days before the release (check the release calendar) the string freeze starts. From there on translatable strings might no longer be changed or added. Exceptions to this rule need to be discussed with the release team in the corresponding merge request or the development matrix channel. The freeze includes at least one weekend as most of the translators submit their work on weekends. This leaves about one month of merging bigger changes between releases. The string freeze is announced here. We cut at least one release candidate after the freeze. Maintainers are free to decide when to do that but are encouraged to do so at least seven days before the planned release data. They’re free to release alpha or beta releases before the release candidates at any time during a development cycle.
One week before the release the code freeze starts and only bug fixes will be merged. Exceptions to this rule need to be discussed with the release team in the corresponding merge request or the development matrix channel. Acceptable changes include things that were about ready before the freeze (unless they include string changes). The code freeze is announced in the development matrix channel.
If in doubt we mark a feature as approved (meaning ready to be merged) and merge it right after the freeze. Given the frequent major releases missing a major release only introduces a six week delay before changes reach users.
The freezes affect all core and recommended components. Libraries like gmobile are usually released ahead of the components to ease distribution integration. Dependencies and Related Software usually don’t follow Phosh’s release schedule.
Here’s an example release schedule in reverse order:
- Release date 2025-11-16 (weekend in the middle of the month)
- Release candidates due: 2025-11-09 (one week before the planned release date)
- Code freeze: 2025-11-09 (one week before the planned release date)
- String freeze 2025-11-06: (10 days before the planned release date)
See stack for more details about component types.
Version Numbering#
Major releases bump the middle version number and set the last component to zero e.g. 0.51.0,
0.52.0, … . The release candidates use ~rc1, ~rc2, … as version suffix. The
resulting version number is then e.g. 0.51~rc1. Note that meson doesn’t support ~ so we
. there. Helper scripts like
pre-rel-branch
or
rel-phosh-component
handle this properly. Alpha and beta releases use the same pattern but alpha and beta instead of
rc e.g. 0.51~beta2.
Minor Releases#
Major releases bump the last component, e.g. 0.51.1, 0.51.2 and are meant for critical
regressions. If a component needs a minor release you can raise that with the release time
and they’ll coordinate a date that matches all component that want to do so. There’s no fixed
date or schedule for minor releases.