-
Notifications
You must be signed in to change notification settings - Fork 378
Cutting a version
lewri edited this page Aug 31, 2025
·
12 revisions
- Ensure the changelog.txt and LICENSE.txt files are up to date
- Announce first beta date, get buy in from packagers
- Bump the version in CorsixTH/Lua/api_version.lua
- Bump the SAVEGAME_VERSION in CorsixTH/Lua/app.lua
- Add a new version line to App:getVersion in CorsixTH/Lua/app.ua
- Add the release block to CorsixTH/com.corsixth.corsixth.metainfo.xml - validate (appstreamcli validate .xml)
- Bump the release link in CorsixTH/corsix-th.6
-
git commitand push all of the above changes to CorsixTH organization -
git tag --sign --annotate -m "<version> release" v<version>and push the tag - Draft a new release in GitHub from the tag, and copy the changelog to the description
- Announce to the packagers that the tag and draft page are available and they can upload their assets.
- Create and attach the release artifacts
- Debian asc file
- Windows Installer (if using the 'Windows Installer' Github Action you must match the 'Use workflow from' option to the release tag, or the Windows installer may be incorrectly configured)
- Windows Portable Zip
- MacOS DMG
- Flatpak (not attached)
- Publish the release
#!/bin/sh
VERSION=$1
CORSIXPATH=$HOME/projects/CorsixTH
wget https://github.com/CorsixTH/CorsixTH/archive/refs/tags/v$VERSION.tar.gz
git -C $CORSIXPATH -c tar.tar.gz.command='gzip -cn' archive --format=tar.gz --prefix=CorsixTH-$VERSION/ -o `pwd`/CorsixTH.tar.gz v$VERSION
gpg --detach-sign --armor CorsixTH.tar.gz
mv CorsixTH.tar.gz.asc CorsixTH-$VERSION.tar.gz.sig
gpg --verify CorsixTH-$VERSION.tar.gz.sig v$VERSION.tar.gz
rm v$VERSION.tar.gz
rm CorsixTH.tar.gz
- Update vcpkg dependencies, submit any non-CorsixTH specific changes upstream
- Copy new vcpkg git hash into
CMake\VcpkgDeps.cmakereplacing the oldVCPKG_COMMIT_SHA - Create new build folders for new version x64 and x86
- Create packages for the new builds:
cmake --preset win-x64-rel
cd build\win-x64-rel
cmake --build . --config RelWithDebInfo
cd ..\..
cmake --preset win-x86-rel
cd build\win-x86-rel
cmake --build . --config RelWithDebInfo
- Smoke test the above builds. You will need to specify
--interpreter=<path to source>/CorsixTH/CorsixTH.lua - Push vcpkg changes to CorsixTH repository
- Perform a clean build
cd build\win-x64-rel
cmake --build . --config RelWithDebInfo --clean-first
cd ..\..
cd build\win-x86-rel
cmake --build . --config RelWithDebInfo --clean-first
- Delete everything from "WindowsInstaller\x86" and "WindowsInstaller\x64"
- Copy all
dll,exe, andluafiles and folders inbuild\win-x64-rel\CorsixTH\RelWithDebInfoto `WindowsInstaller\x64" - Copy all
dll,exe, andluafiles and folders inbuild\win-x86-rel\CorsixTH\RelWithDebInfoto `WindowsInstaller\x86" - Copy the needed visual studio runtime redistributable files into the above locations.
cp "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Redist\MSVC\14.32.31326\x64\Microsoft.VC143.CRT\*.dll" "<corsix_root>\WindowsInstaller\x64"
cp "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Redist\MSVC\14.32.31326\x86\Microsoft.VC143.CRT\*.dll" "<corsix_root>\WindowsInstaller\x86"
Note: To determine the appropriate version of the runtime if there are multiple installed, check CMakeCache.txt in the build folder.
The same version will be in the CMAKE_AR variable.
- Edit Win32Script.nsi and set PRODUCT_VERSION to the version being released
- Run NSIS and compile Win32Script.nsi
- Add the resulting CorsixTHInstaller.exe to the release page
- Create 'portable' zip file, by installing and then zipping the resulting folder. Remove Uninstall.exe from the archive.
Our installers often get flagged by Windows Defender and ask for confirmation to run.
To combat this the release exe should be submitted to Microsoft for Malware Analysis
Full guidance: https://learn.microsoft.com/en-gb/microsoft-365/security/defender/submission-guide?view=o365-worldwide
- Go to the Microsoft Defender Submission Portal
- Choose the "Software Developer" submission option
- Login with a Microsoft account
- On the form complete the following:
- Select the Microsoft security product used to scan the file:
Microsoft Defender Smartscreen - Company Name:
CorsixTH - Do you have a Microsoft support case number:
No - Select the file:
Upload the CorsixTHInstaller.exe - Should this file be removed from our database at a certain date?:
No - What do you believe this file is?:
Incorrectly detected as malware/malicious - Detection name:
Windows protected your PC - Definition version (recommended): Go to Start > Windows Security > Virus and threat protection > Virus & threat protection updates > Check for updates > Enter the
Security intelligence versionshown - Additional information:
Windows Defender SmartScreen prevented an unrecognized app from starting. Running this app might put your PC at risk. CorsixTHInstaller.exe Publisher: Unknown publisher The installer package exe is detected as a false positive.
- Select the Microsoft security product used to scan the file:
- Submit the form. The analysis will take ~24 hours and you will get confirmation once complete. The installer should no longer trigger Smartscreen warnings after 12 more hours.