Releasing.wiki
author Wuzzy
Fri, 12 May 2023 14:52:24 +0000
changeset 2229 01c86f6ed8be
parent 2091 428ad3d1d034
permissions -rw-r--r--
GearTypes: fix links

#summary How releases are done in Hedgewars
= Releasing Hedgewars =
This page is a checklist of things to do in order to do a proper Hedgewars release.

== Getting ready for release ==

 * Fix common pitfalls
     * Make sure all `*.pas` files are ASCII only
     * Test Pas2C, fix anything that's broken
 * If new weapons have been added:
     * Test if new weapon can be selected in frontend, online play, local play
     * Test if new weapon can be saved properly in ammo scheme
     * Update `AMMO` in [https://hedgewars.org/kb/RacerRoomSetup the Official Racer room config file]
     * Update preview image of Big Armory mission
 * Try to announce string freeze in News a few weeks before the planned release to give translators a fair chance
 * Bump [ProtocolNumbers protocol number]
     * `HEDGEWARS_PROTO_VER` in `CMakeLists.txt`
     * Wiki page: [ProtocolNumbers]
 * Bump Hedgewars version number (if it hasn't already)
 * Update server sources
     * Update newest version
     * Make server aware of new version and new -dev version protocol numbers (`protoNumber2ver` in `gameServer/Utils.hs`)
     * Update MOTD to reflect version changes (`newServerInfo` in `gameServer/CoreTypes.hs`)
 * Update `ChangeLog.txt`
 * Update all translation strings
     * For frontend (.ts) and Lua (.lua): Run `tools/update_locale_files.sh` and grab a coffee
     * Other files might need manual updating
 * If there was a Shoppa tournament after the previous release: Update prizes
     * Put the names of the top 3 players on the plaques in _ShoppaKing_ and _TrophyRace_
     * Add the names of (at least) the top 3 players in the pool of random names in _Rope-Knocking Challenge_
 * Update system requirements, if neccessary:
     * 1) In the `README.md` file
     * 2) In the Hedgewars homepage: https://hedgewars.org/node/6977

== Releasing ==

 # Purge your repository: `hg purge --all` (needs `purge` extension). Warning: This resets ALL the files, make sure to backup whatever you need
 # Create a source tarball (`.tar.bz2`). Run `make package_source`
 # Create a Windows build
 # Create a macOS build, if possible
 # Test the builds
 # Create torrents
 # Add a tag for the relevant commit (name: `<version>-release`) (*after* the builds have succeeded!)
 # Start a branch with the name `<version>` (e.g. 1.0.0), on the commit you tagged
 # Update symlink for windows installer `download/releases/hedgewars-win32.exe` to point to the latest release installer
 # Update [https://hedgewars.org/release-archive release archive]
 # Update [https://hedgewars.org/download.html Download page]
 # Announce release on News section on [https://hedgewars.org/ www.hedgewars.org]
 # Announce release in IRC (`#hedgewars`)
 # Announce release in official server
     # Update protocol number
     # Update MOTD
     # In lobby, use command `/global Hedgewars X.Y.Z has just been released!`

== Post-release ==

 * Notify package managers of GNU/Linux distributions
 * Update Hedgewars Wiki
 * Update HWKB (esp. because of Lua)
 * Update game info on online game databases, if you have access
 * Add new version to Bugzilla
 * Optional: Add a couple of nice screenshots
 * Optional: Make a trailer
 
== For release candidates ==
Release candidates may be released before the actual release for testing. They might be combined with a string freeze.

 * Create a source tarball (see above)
 * Create a Windows build
 * Remember the commit ID to which the release canditate refers to
 * Write a post in News, you can use this post as a template: [https://hedgewars.org/node/6907]