#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 ==
* 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`
* 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 ==
* Add a tag for the relevant commit
* Create a Windows build
* Create a macOS build, if possible
* Create torrents
* 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 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]