The need for automated checks
Today we added a check to our newsletter sending to make sure the text file for the announcement is from the current month. This hopefully avoids us sending out over 1000 emails with the old text the next time. Sorry, if you got one of these announcement newsletters with the wrong announcement.
Recently we got a new check when packing the plugins to check if the version number in the plugin file is the current version. Because it happened before, that the build machine failed and didn't copy over a new version. We also check that plugin files have a minimum file size and the linker didn't abort for some reason. The same script checks if all the plugins are from the same day to avoid missing to build one of them.
Since we mixed up linux files for ARM and Intel CPU architectures, we got checks in the package tool to verify the files for Intel are indeed built for Intel and ARM files are built for ARM architecture.
As all files need to be code signed, we check that all plugins are signed with the correct team ID (for macOS) and with the company name (for Windows). If the right thing is missing, the process is stopped and we stop packing. Building our Xojo plugins involves making sure 1600 DLLs are signed correctly. Even a failure rate of 1% results into several plugins we need to rebuild.
To avoid dependencies on Visual Studio Runtime libraries from 2019 (and only need 2015), we check for the dependency to VCRUNTIME140_1.DLL file and report this. Then we can change our code to avoid the dependency if possible and keep plugins running without newer runtime libraries.
When doing code signing and notarization for macOS, we have a script to not just do the code signing and notarize steps, but also verifying the result later. Double checking helps to find edge cases.
What checks do you do?