Release Steps

From The Battle for Wesnoth Wiki
Revision as of 04:29, 20 February 2024 by Pentarctagon (talk | contribs) (New Stable Series)

Pre-release (stable only)

  • Start the string freeze two weeks before the release.
  • Do the pot update:
scons pot-update update-po4a manual
git add -A
git commit -am "pot-update and regenerate doc files"
  • Email the translator's mailing list stating that the string freeze is starting.

Release (stable and master branches)

cd data/tools/
make macro-reference.html
  • If stable
scp macro-reference.html wesnoth@wesnoth.org:WWW/html/macro-reference.html
  • If master
scp macro-reference.html wesnoth@wesnoth.org:WWW/html/macro-reference-1.<version>.html
  • Regenerate the game credits and paste the contents to Credits on the wiki:
data/tools/about_cfg_to_wiki -w ./wesnoth > ./about.wiki
  • Check the changelog_entries folder for entries and update the changelog as necessary.
  • Run the pot update (second time if this is a stable release).
  • Do the pre-tag commit (check a previous commit as an example - this removes the "+dev" suffix everywhere).
  • The the post-tag commit (check a previous commit as an example - this re-adds the "+dev" suffix everywhere).
  • Tag the pre-tag commit with:
git tag -a <version> -m "Wesnoth <version> (Alpha)" <commit hash>
- (Alpha)/(Beta) is only added for dev releases depending on where we are in the release cycle.
  • Push the commits and the tag:
git push
git push origin <version>
  • Ping the packagers on Discord that the release has been tagged:
@packagers <version> has been tagged.
  • Check that the new version is allowed on its respective multiplayer server.
  • Update the header in Discord's #development channel.
  • Add items to the Release Notes page on this wiki for the release.
  • Sync items on the Release Notes page to the changelog.
  • Upload source code tarball to SourceForge and files.wesnoth.org (done by loonycyborg).
  • Send an email to the packagers mailing list (done by loonycyborg).
  • Upload the release to the various places Wesnoth is distributed (Steam, itch.io, SourceForge, macOS App Store, Flathub).
    • Windows/Linux - handled by loonycyborg.
    • macOS - handled by hrubymar.
  • Post the forum announcements.
  • Update the Downloads wiki page.
  • Add the News forum post.
  • Post the Discord announcement.
    • Make sure to publish it.
    • Short link is: https://r.wesnoth.org/t#####
  • Post the itch.io devlog (copy of the Discord announcement).
  • Update the wesnoth.org front page.
    • See a previous version update commit to the wesmere repository.
    • ssh into the website VM and execute the following shell commands (yes, it is specifically 'make', not 'make install'!):
sudo -iu wesnoth
cd ~/git/wesmere/static
git pull
make
  • Generate the Steam announcement by running the following command in your local wesnoth repository root:
python3 data/tools/steam-changelog changelog.md <version> > <version>.txt
  • Post the Steam announcement.
  • Log into Wesnoth's Steam page.
    • Click "A Game Update".
    • Pick "Small Update".
    • Paste the output of of the above python command into the event description.
    • Click "Link To Build" and select the appropriate branch.
    • Edit the appropriate .xcf file from the Resources repository (wesnoth_event_header.xcf for stable releases, wesnoth_beta_header.xcf for development releases) and export it to PNG.
      • This requires the oldania font to be installed, which on Linux/Ubuntu-derivatives can be installed via the command:
apt install fonts-adf-oldania
  • Post the announcement to Fosstodon.
  • Post the announcement to Reddit. (Elvish_Hunter)
    • Add the "Development release"/"Stable release" flair.
    • Don't paste the link in the post, directly post it as a link.

New Stable Series

Beta 1

Write up the new Start page (ie: https://www.wesnoth.org/start/1.16/).

Beta 2

Make the new Start page available to Translators.

RC1

Before release, the new multiplayer server and add-ons server instances need to be setup.

  • Multiplayer server - needs no changes since it goes to port 15000 and then that redirects based on version.
  • Add-ons server - The port is the version number, for example 1.16 is 15016, 1.18 is 15018, etc.
    • C++ update (currently default_campaignd_port in addon/validation.cpp)
    • Python update (data/tools/wesnoth/campaignserver_client.py)
    • Website update (bin/valen.pl) in the valen repository