v3.2.0
v3.2.0
May 21, 2026 · GitHub ↗
CI hardening and release-flow automation. No library API or behavior changes.
Fixed
publish-apt-repono longer depends on the GitHub CLI being on the runner image — it consumes the.debfrom the same workflow's artifact instead ofgh release download, so self-hosted Linux runners can publish on tag pushes again
Build
BS::thread_poolpinned to release tagv5.1.0.1instead of trackingmasterfor reproducible builds- CI
clang-tidybumped from 18 to 19;bugprone-throwing-static-initializationenabled —debug_logger_initializer's ctor is nownoexceptwith thespdlogcalls wrapped intry/catch, preserving the static-init injection contract while making it honest update-pkgbuild.shaccepts-r / --remoteto select which git remote's tag to hash against (defaults toorigin); useful when cutting a release pointed at the public repo- New
Prepare releaseworkflow (workflow_dispatch): branchesprep/v<version>from the resolved target branch, bumpsCMakeLists.txt+packaging/msys2/PKGBUILD, draftsdocs/releases/release-notes-v<version>.mdfromgit log, and opens the prep PR. Auto-detects the target branch (or accepts atarget_branchinput /vars.RELEASE_TARGET_BRANCHoverride) so the same workflow runs on forks with onlymainand on forks with bothmainandrelease - New
Post-tag PKGBUILD sha256 cleanupworkflow (push tags: v*): replaces the prep PR's'SKIP'placeholder with the real sha of the source tarball; opens a follow-up PR. Auto-resolves the target branch via tag-commit reachability when bothmainandreleaseexist - New
set-release-bodyjob inc-cpp-ubuntu.yml: applies the curateddocs/releases/release-notes-v<tag>.mdto the GitHub Release body viagh release edit --notes-file; fails loudly if the notes file is missing so no tag ships without curated notes - New
setup-gh-clicomposite action: pinnedghon PATH for self-hosted Linux runners; no-op on github-hosted runners whereghis pre-installed