Release testing process
We run the following before a release:
Full CI matrix
Pull requests build only the oldest and newest compilers. Before a
release, trigger the full matrix for the Build / test workflow:
Actions tab ->
Build / test-> Run workflow -> branchmaster.
Or with the gh CLI:
gh workflow run "Build / test" --ref master
It also runs automatically every Saturday at 03:00 UTC.
The Meson build / test and Foreign architectures workflows still
run their full matrix on every push, so they need no manual trigger.
Windows x86 host
run_tests.bat
Linux x86 host
Clang, GCC; Arm, PPC cross-compile: ./run_tests.sh
Manual test of WASM and WASM_EMU256 targets.
Check libjxl build actions at https://github.com/libjxl/libjxl/pull/2269. (As of 2025-08-14 this is currently paused and requires a token update)
Version updates
Prepend to debian/changelog and update mentions of the current version in:
base.h
CMakeLists.txt
meson.build
MODULE.bazel
g3doc/faq.md
Signing the release
git archive --prefix=highway-X.Y.Z/ -o highway-X.Y.Z.tar.gz X.Y.Zgpg --armor --detach-sign highway-X.Y.Z.tar.gzEdit release and attach the resulting
highway-X.Y.Z.tar.gz.ascand .gz.
(See https://wiki.debian.org/Creating%20signed%20GitHub%20releases and to obtain the key, search hkps://keys.openpgp.org for janwas@google.com or since 1.3.0 jan.wassenberg@gmail.com)