38.19.1. Release procedure

Ensure that the Automated tests are passing on a clean build:

mv out out.bak
./build-test --size 3 && ./test --size 3

The ./build-test command builds a superset of what will be downloaded which also tests other things we would like to be working on the release. For the minimal build to generate the files to be uploaded, see: Section 38.19.2, “release-zip”

The clean build is necessary as it generates clean images since it is not possible to remove Buildroot packages

Run all tests in Non-automated tests just QEMU x86_64 and QEMU aarch64.

TODO: not working currently, so skipped: Ensure that the benchmarks look fine:

./bench-all -A

Create a release candidate and upload it:

git tag -a -m '' v3.0-rc1
git push --follow-tags
./release-zip --all-archs
# export LKMC_GITHUB_TOKEN=<your-token>
./release-upload

Now let’s do an out-of-box testing for the release candidate:

cd ..
git clone https://github.com/cirosantilli/linux-kernel-module-cheat linux-kernel-module-cheat-release
cd linux-kernel-module-cheat-release

Clean up, and re-start from scratch:

cd ..
rm -rf linux-kernel-module-cheat-release
git clone https://github.com/cirosantilli/linux-kernel-module-cheat linux-kernel-module-cheat-release
cd linux-kernel-module-cheat-release

Go through all the other Getting started sections in order.

Once everything looks fine, publish the release with:

git tag -a v3.0
# Describe the release int the tag message.
git push --follow-tags
./release-zip --all-archs
# export LKMC_GITHUB_TOKEN=<your-token>
./release-upload