Publishing a New Release - yvt/openspades GitHub Wiki
- Replace each version number in
CMakeLists.txt,OpenSpades.h,Resources/PackageInfo.json,XSpades/PackageInfo.json, andXSpades/XSpades-Info.plistwith the new one. Version numbers inResources/PackageInfo.json,XSpades/PackageInfo.jsonmust look like[x, x, x, 4]for a stable release. - Create a new git commit with the following commit message:
Bump version to x.y.z(x.y.zis the version you want to publish) - Create a new git tag named
vx.y.z(x.y.zis the version you want to publish)
Making a Windows binary package
- Follow the building steps in
README.md. Before building the generated solution, change the build configuration to RelWithDebugInfo. - Create a directory named
OpenSpades-x.y.z-Windowsand copy following files to it.OpenSpades.exeandResourcesfrom the build directory.- MSVC runtime DLL(s) (
msvcp140.dllandvcruntime140.dllin case of MSVC 16). COPYING-*,YSRSpades.dll,pthreadGC2.dll,libstdc++-6.dll,openal32.dll, andlibgcc_s_dw2-1.dllfrom the previous release of OpenSpades.- The contents of
NonfreeandOfficial Modsfrom the non-free pak toResources.
- Open
Resources/PackageInfo.jsonwith a text editor and replace"SourceCode"with"Windows". - Zip
OpenSpades-x.y.z-Windowsusing whatever zip archiver you have. Make sure the root of the created zip archive contains a single directory namedOpenSpades-x.y.z-Windows, not the contents of it. - Store
openspades.pdbalong withOpenSpades-x.y.z-Windows.zip. You'll need it to analyze core dump files sent by users.
Making a macOS binary package
- Follow the building steps in
README.md. Build the project with the Release build configuration. - Copy
COPYING-*from the previous release of OpenSpades to the same directory as the built application bundle (OpenSpades.app) is located. - Zip
OpenSpades.appandCOPYING-*and rename it toOpenSpades-x.y.z-OSX.zip.
Official Distribution Channels
OpenSpades is distributed through the following channels:
1. GitHub
Make sure to add the "This version is outdated" text to the previous version. This helps users find the latest version if they were directed to the release page via a link pointing to a old version.
2. GameJolt
We use a specialized update channel because the GameJolt client is capable of updating games automatically and therefore we don't want users to see a link to the GitHub releases page.
Open Resources/PackageInfo.json in each package and edit it as the following:
- "URL": "http://openspades.yvt.jp/api/version.json"
+ "URL": "http://openspades.yvt.jp/api/version.gamejolt.json"
Add NotoFonts.pak to Resources.
After doing that, repackage and name them as the following:
OpenSpades-x.y.z-Windows-GJ.zipOpenSpades-x.y.z-OSX-GJ.zip
After publishing a new release
- Register a new version to
openspades.yvt.jp/api/version.jsonandopenspades.yvt.jp/api/version.gamejolt.json. - Replace version numbers in
Resources/PackageInfo.json,XSpades/PackageInfo.jsonwith[y, y, y, 0]and"pre-y.y.y"(y.y.y is the next version with the revision number incremented) and create a new git commit with some message. (TODO: what message?) - Update Trello.