2 Release process
Matthieu Gautier edited this page 2023-05-10 14:11:34 +02:00

Introduction

Kiwix-build CI is in charge of building the openzim/kiwix projects. Because of this, the release process of each project is a mix of actions to do in each project and kiwix-build repository. This page explains what the different steps to do for a release.

How it works

Versioning

Each project is versioned independently of other projects. We mostly follow the semantic versioning : https://semver.org/spec/v2.0.0.html

As projects depend of each other, we may have to rebuild a project if one of its dependencies has been release, even if the project itself has not changed (mainly to include bug fixes). In this case, we add a "build number" after the version number. So, a kiwix-desktop version 2.1.0 build for the third time will be tagged 2.1.0-2 (build number starts from 0 and the first build version (0) is not specified). This build number breaks the semantic versioning as it - is for prerelease.

Responsibilities.

The code of each project is handled in the corresponding repository. The versioning is made there (by creating tag). The publication of release is handled by kiwix-build. This is kiwix-build which will create the source archive, build the releases on different platform and publish everything.

New Releases

To do new releases, the process is the following:

Create new releases on projects.

The exact process is dependent of the project, but mostly you will have to do :

  • Update the Changelog.
  • Change the version number of the project.
  • (It is the good time to do some checking. As updating the minimum version of the dependencies, readme and so)
  • Tag the version using a the release version as tag name x.y.z. Push the tag on github.
  • Create the release on github.

Build and publish release.

Creating release of each project does NOT trigger a build or publication of the release itself.

To do so, you must update the file https://github.com/kiwix/kiwix-build/blob/master/kiwixbuild/versions.py to tell what we want to build. Follow carefully the comment in versions.py as it is what will define what is the release and what to build. Once you have made a commit with a up to date "definition" of the release, you must tag the kiwix-build project with a tag r_<number> and push it (the number is not important in itself be we follow a increasing number scheme).

Flatpak release

The release process of kiwix-desktop flatpak starts the same way that any other releases. You have to update the versions.py file and create a tag as describe above. However, for the publication of the release on flathub, extra steps are needed.