Skip to content

Publishing a New Release

yvt edited this page Dec 18, 2020 · 25 revisions
  1. Replace each version number in CMakeLists.txt, OpenSpades.h, Resources/PackageInfo.json, XSpades/PackageInfo.json, and XSpades/XSpades-Info.plist with the new one. Version numbers in Resources/PackageInfo.json, XSpades/PackageInfo.json must look like [x, x, x, 4] for a stable release.
  2. Create a new git commit with the following commit message: Bump version to x.y.z (x.y.z is the version you want to publish)
  3. Create a new git tag named vx.y.z (x.y.z is the version you want to publish)

Making a Windows binary package

  1. Follow the building steps in README.md. Before building the generated solution, change the build configuration to RelWithDebugInfo.
  2. Create a directory named OpenSpades-x.y.z-Windows and copy following files to it.
    • OpenSpades.exe and Resources from the build directory.
    • MSVC runtime DLL(s) (msvcp140.dll and vcruntime140.dll in case of MSVC 16).
    • COPYING-*, YSRSpades.dll, pthreadGC2.dll, libstdc++-6.dll, openal32.dll, and libgcc_s_dw2-1.dll from the previous release of OpenSpades.
    • The contents of Nonfree and Official Mods from the non-free pak to Resources.
  3. Open Resources/PackageInfo.json with a text editor and replace "SourceCode" with "Windows".
  4. Zip OpenSpades-x.y.z-Windows using whatever zip archiver you have. Make sure the root of the created zip archive contains a single directory named OpenSpades-x.y.z-Windows, not the contents of it.
  5. Store openspades.pdb along with OpenSpades-x.y.z-Windows.zip. You'll need it to analyze core dump files sent by users.

Making a macOS binary package

  1. Follow the building steps in README.md. Build the project with the Release build configuration.
  2. Copy COPYING-* from the previous release of OpenSpades to the same directory as the built application bundle (OpenSpades.app) is located.
  3. Zip OpenSpades.app and COPYING-* and rename it to OpenSpades-x.y.z-OSX.zip.

Official Distribution Channels

OpenSpades is distributed through the following channels:

  1. GitHub's "Releases" page
  2. GameJolt

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.zip
  • OpenSpades-x.y.z-OSX-GJ.zip

After publishing a new release

  1. Register a new version to openspades.yvt.jp/api/version.json and openspades.yvt.jp/api/version.gamejolt.json.
  2. Replace version numbers in Resources/PackageInfo.json, XSpades/PackageInfo.json with [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?)
  3. Update Trello.

References