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.
- kiwix-build will push a branch in the repository https://github.com/flathub/org.kiwix.desktop, you must make a PR associated to this branch.
- Once the PR is merged, Flathub's buildbot will launch a new build, you can find it in https://buildbot.flathub.org/#/apps/org.kiwix.desktop
- The new build will be published automatically on Flathub 🎉