[v2.3.1] – 2026-06-05
No user-visible feature changes. This release adds reproducible builds —
locks the build toolchain so that the same source commit always produces
byte-identical binaries, giving users an independent way to verify a release
binary against the published source code.
See Verifying Releases in README.md and
Reproducible Builds in CONTRIBUTING.md
for the verification workflow and the full technical details.
Added
setup-build-environment-example.cmd— a one-shot script that sets up a
complete build environment on a fresh Windows installation (VM,
Windows Sandbox,
or similar), downloads the source tree from GitHub, installs Visual
Studio Build Tools and CMake, and runsbuild.cmdto produce the
distributable ZIP. Every step is visible and documented inside the script.
Changed
- Build toolchain pinned for reproducible builds. The exact MSVC compiler
version (19.51.36246), toolset (14.51) and Windows SDK (10.0.26100.0)
are locked inbuild.cmdand the CI workflow. The build uses the NMake
Makefiles generator with the compiler environment activated per architecture
viaVsDevCmd.bat -vcvars_ver=14.51— no VS generator flag is needed and
cmake's VS instance detection is bypassed entirely.
The MSVC compiler flags/Brepro,/experimental:deterministicand linker
flag/BREPROeliminate per-build noise from object files and the PE
timestamp. Source-file paths in debug info are normalised via/pathmap.
File timestamps in the ZIP are set torelease-date=frompluginst.inf. sha256sums.sha256added to every release ZIP. The file lists the SHA-256
of every other file in the archive. The CI build log andbuild.cmdboth
print the SHA-256 of the produced ZIP itself, providing an independent
reference for cross-build comparison.- Line endings in ZIP text files normalised to CRLF. Markdown, INI and
INF files in the release ZIP are now guaranteed to use Windows line endings
regardless of the platform or git configuration the build was run under.