* Newest VS2026 dropped support for the entirely working v140 tools for zero
good reason: https://developercommunity.visualstudio.com/t/Visual-
Studio-2026-188-update-removes-v/11121716
* This then breaks our CI since we can't install the toolset manually. After
lots of dancing, this set of magic words seems to work for now, but who can
say for how long.
* Previously `git log --oneline | grep -v 7a064ae | head -n 100` was throwing an
error `grep: write error: Broken pipe` which as far as I can tell is working
as intended and can't be fixed. So we remove pipes and use temporary files
like animals.
* For some reason the commit message check failed to detect a bad message on a
PR commit. The only clue is a 'broken pipe' message from tail in the log but
it doesn't reproduce on another repository with the same scripts :(.
* Temporarily ignore the bad commit from future checks until it drops out of the
most recent 100.
* This requires custom-installing the V140 toolset which unfortunately takes a
long time on CI :(.
* We also drop the VS2019 target as it has little use.
* The previous ignoring of the top commit was to avoid badly-written merge
commits added by github, we want to continue doing that for PRs but check all
commits on push as a safety measure.
* We commit statically linked x64 binaries for clang-format-15 for windows and
linux to make the transition easier for anyone running a linux distro that
doesn't yet support llvm 15, or in future for distros that drop support for
it.
* This helps downstream forks to run CI without seeing a false negative in the
mac release build due to being unable to upload the final package to the
server.
* Also added a script that can run as part of CI to verify that the docstring
matches, by generating a regex from the docstring documented parameter types
and return type and making sure we find a match within the C headers. This
ensures all parameters are documented with the right types, no extra
parameters are documented, and the return type is correct.
* The script also checks proper scoping so that if qrenderdoc docstrings
mention a renderdoc type, they need to scope it properly.