这是indexloc提供的服务,不要输入任何密码
Skip to content
lewri edited this page Aug 31, 2025 · 12 revisions

Release Checklist

  • 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 commit and 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

Source signing file for Debian distros (asc file):

#!/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

Windows

Before new version is tagged

  • Update vcpkg dependencies, submit any non-CorsixTH specific changes upstream
  • Copy new vcpkg git hash into CMake\VcpkgDeps.cmake replacing the old VCPKG_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

When each new version is tagged

  • 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, and lua files and folders in build\win-x64-rel\CorsixTH\RelWithDebInfo to `WindowsInstaller\x64"
  • Copy all dll, exe, and lua files and folders in build\win-x86-rel\CorsixTH\RelWithDebInfo to `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.

Windows Defender SmartScreen

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

  1. Go to the Microsoft Defender Submission Portal
  2. Choose the "Software Developer" submission option
  3. Login with a Microsoft account
  4. 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 version shown
    • 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.
  5. 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.

See Also:

How To Create Windows Installer

MacOS

Compiling for MacOS for distribution purposes

Clone this wiki locally