Difference between revisions of "Releasing Minetest"

From Minetest Developer Wiki
Jump to navigation Jump to search
(Adapt to build system changes due to commit 93fcab952b28f4db39d9326b83f14cbd86c0cf17)
Line 13: Line 13:
 
* '''Define''' a new version number by running util/bump_version.sh. Verify that this script correctly
 
* '''Define''' a new version number by running util/bump_version.sh. Verify that this script correctly
 
** updates the version number in CMakeLists.txt and the titles of doc/lua-api.txt and doc/menu_lua_api.txt
 
** updates the version number in CMakeLists.txt and the titles of doc/lua-api.txt and doc/menu_lua_api.txt
** comments out the line in CMakeLists.txt that sets VERSION_PATCH to ${VERSION_PATCH}-dev
+
** comments out the line in CMakeLists.txt that sets VERSION_STRING to ${VERSION_STRING}-dev
 
** increments ANDROID_VERSION_CODE in build/android/Makefile
 
** increments ANDROID_VERSION_CODE in build/android/Makefile
 
** and commits.
 
** and commits.
Line 74: Line 74:
 
=== Reenable -dev version suffix ===
 
=== Reenable -dev version suffix ===
  
* '''Uncomment''' the line near CMakeLists.txt:22 that sets VERSION_PATCH to ${VERSION_PATCH}-dev.
+
* '''Uncomment''' the line near CMakeLists.txt:24 that sets VERSION_STRING to ${VERSION_STRING}-dev.
 
* '''Commit.'''
 
* '''Commit.'''
  

Revision as of 16:42, 30 March 2015

Before releasing

Usually, a feature freeze for one week is announced in #minetest-dev. New features aren't accepted in this time and people focus on finding and fixing bugs.

The feature freeze and release date is set by core developers.

The process

This is mostly done by several core developers.

Update version in source

  • Define a new version number by running util/bump_version.sh. Verify that this script correctly
    • updates the version number in CMakeLists.txt and the titles of doc/lua-api.txt and doc/menu_lua_api.txt
    • comments out the line in CMakeLists.txt that sets VERSION_STRING to ${VERSION_STRING}-dev
    • increments ANDROID_VERSION_CODE in build/android/Makefile
    • and commits.
  • Tag the version in local git to allow the cmake versioning script to remove the git hash from the version. Do not push the tag to GitHub yet.
  • Build, get newest minetest_game, run and check if the thing seems to be working.

Build Windows version

  • Visual Studio 2010 currently makes best results (?).
  • Currently built by BlockMen (0.4.10). They have sound, gettext, cURL and TTF support.
  • Since 0.4.8, a MinGW build is also included, built by sfan5.
  • If at all possible, debug builds (for both MSVC and MinGW) should be produced along with the regular release builds.

Be sure that the Windows builds work before continuing to do anything!

Tweak Windows package a bit

  • Include minetest_game or other subgames that were decided on before the release.
  • Include msvcr100.dll and wrap_oal.dll in the package (bin/). The latter is one of the OpenAL DLLs that the CMake install scripts are currently missing. Those making official builds probably already know what they are doing.

Upload Windows package to somewhere

Update branches and tags of minetest and minetest_game on GitHub

  • See previous tags. Use the same tag for all of them; eg. "0.4.4".
  • GitHub's release functionality can be used if preferred.
  • The new release should be merged to the stable-0.4 branch on both minetest and minetest_game.

Update links on minetest.net

Some people from the community can edit the minetest.net page (celeron55, PilzAdam, rubenwardy, BlockMen, Jordach, sfan5).

As of 0.4.12, when an MSVC Windows build is made, a .pdb file is also generated. Each such file must be be provided and clearly associated with its respective build.

Write a release notice

Usually a new topic in the News section of the forum. Changelog can be found here.

Update stuff on launchpad to get Ubuntu builds for the new version

Juhani Numminen hasn't been around in a long while, so celeron55 or PilzAdam must update Launchpad.

Build and Publish Android APK

  • Sign the package: jarsigner -verbose -digestalg SHA1 -sigalg MD5withRSA -keystore keystore-minetest.jks bin/Minetest-release-unsigned.apk Minetest
  • Zipalign the apk: zipalign -v 4 bin/Minetest-release-unsigned.apk Minetest-release.apk
  • Notify the Android maintainers to update their APKs for their corresponding platforms.

Notify other known package maintainers

  • emptty (@ chat.freenode.net) maintains Debian packages.
  • Zeitgeist_/damiel (@ chat.freenode.net) is the proxy-maintainer for Minetest in Gentoo.
  • nrz/nerzhul (@ chat.freenode.net) maintains the FreeBSD port and uploads new releases to the Google/Android Play Store.

After releasing

Reenable -dev version suffix

  • Uncomment the line near CMakeLists.txt:24 that sets VERSION_STRING to ${VERSION_STRING}-dev.
  • Commit.