diff --git a/docs/README.release-management.txt b/docs/README.release-management.txt index 9628b3a1..bce6350f 100644 --- a/docs/README.release-management.txt +++ b/docs/README.release-management.txt @@ -11,30 +11,14 @@ Source and Data Archives: ========================= There are 3 archives that are built for a given release (starting with versions -after 3.6.0). In order to build a release you must have all files checked out -of svn for that specific release (example: trunk) - -To set the current version for release, modify the file mk/linux/mg-version.sh -and change the two variables: - -OLD_MG_VERSION=3.6.0.1 -MG_VERSION=3.6.0.2 - -*Note: Please ensure the MG_VERSION variable matches the version set in the -MegaGlest binary, this can be checked by running: ./megaglest --version -It is possible to have the mg-version.sh script NOT match the binary in cases -where we are releasing binary compatible updates to the archives in which case -we typically use a forth digit in the version # (as seen above) - -After setting the correct verions in mg-version.sh you should call: -./mg-version-synch.sh - -This will update associated installers to use the correct version stamps - -To set the actual binary to the desired version you must manually edit -glest_game/facilities/game_util.cpp -const string glestVersionString = "v3.8-dev"; +after 3.6.0). In order to build a release you must have all git repositories +checked out for that specific release (example, tag: 3.11.0) or downloaded all +source archives/"tarballs" which in their name have same version, equal to tag. +To set the current version for release, modify the file source/version.txt +and change there available variables, then run mk/linux/mg-version-synch.sh script +for updating version number everywhere where it is needed and then you only have +to commit changed files. #1. The source archive: This archive contains source code for binary compilation of the application and diff --git a/mk/linux/mg-version-synch.sh b/mk/linux/mg-version-synch.sh index 75863f8f..604d728a 100755 --- a/mk/linux/mg-version-synch.sh +++ b/mk/linux/mg-version-synch.sh @@ -1,45 +1,106 @@ -#!/bin/bash +#!/bin/sh # Use this script to synchronize other scripts and installers with the version # in mg-version.sh for a Version Release # ---------------------------------------------------------------------------- # Written by Mark Vejvoda -# Copyright (c) 2011 Mark Vejvoda under GNU GPL v3.0+ +# Copyright (c) 2011-2015 Mark Vejvoda under GNU GPL v3.0+ CURRENT_VERSION=`./mg-version.sh --version` OLD_VERSION=`./mg-version.sh --oldversion_binary` - +VERSION_INFO_FILE="$(dirname "$(readlink -f "$0")")/../../source/version.txt" +LastCompatibleSaveGameVersion="$(awk -F '=' '/^LastCompatibleSaveGameVersion =/ {print $2}' "$VERSION_INFO_FILE" | awk -F '"' '{print $2}')" +MapeditorVersion="$CURRENT_VERSION" +G3dviewerVersion="$CURRENT_VERSION" +modifymore="yes" +echo +echo '===== Updating Game ======' +# const string glestVersionString = "v3.12-dev"; +echo 'Game version # before:' +grep -E '^const string glestVersionString = "[^"]*";$' ../../source/glest_game/facilities/game_util.cpp +sed -i 's/^const string glestVersionString = "[^"]*";$/const string glestVersionString = "v'$CURRENT_VERSION'";/' ../../source/glest_game/facilities/game_util.cpp +echo 'Game version # after:' +grep -E '^const string glestVersionString = "[^"]*";$' ../../source/glest_game/facilities/game_util.cpp +echo +if [ "$modifymore" = "yes" ]; then + # const string lastCompatibleSaveGameVersionString = "v3.9.0"; + echo 'Compatible Save Game version # before:' + grep -E '^const string lastCompatibleSaveGameVersionString = "[^"]*";$' ../../source/glest_game/facilities/game_util.cpp + sed -i 's/^const string lastCompatibleSaveGameVersionString = "[^"]*";$/const string lastCompatibleSaveGameVersionString = "v'$LastCompatibleSaveGameVersion'";/' ../../source/glest_game/facilities/game_util.cpp + echo 'Compatible Save Game version # after:' + grep -E '^const string lastCompatibleSaveGameVersionString = "[^"]*";$' ../../source/glest_game/facilities/game_util.cpp + echo +fi +if [ "$modifymore" = "yes" ] && [ "$(git status >/dev/null 2>&1; echo "$?")" -eq "0" ]; then + # const string GIT_RawRev = "$4446.1a8673f$"; + GitCommitForRelease="`git rev-list HEAD --count`.`git log -1 --format=%h`"; + echo 'GitCommitForRelease # before:' + grep -E '^GitCommitForRelease = "[^"]*";$' "$VERSION_INFO_FILE" + grep -E '^const string GIT_RawRev = "\$[^"$]*\$";$' ../../source/glest_game/facilities/game_util.cpp + sed -i 's/^GitCommitForRelease = "[^"]*";$/GitCommitForRelease = "'$GitCommitForRelease'";/' "$VERSION_INFO_FILE" + sed -i 's/^const string GIT_RawRev = "$[^"]*";$/const string GIT_RawRev = "$'$GitCommitForRelease'$";/' ../../source/glest_game/facilities/game_util.cpp + echo 'GitCommitForRelease # after:' + grep -E '^GitCommitForRelease = "[^"]*";$' "$VERSION_INFO_FILE" + grep -E '^const string GIT_RawRev = "\$[^"$]*\$";$' ../../source/glest_game/facilities/game_util.cpp +fi +echo +if [ "$modifymore" = "yes" ]; then + echo '===== Updating Mapeditor ======' + # const string mapeditorVersionString = "v1.6.1"; + echo 'Mapeditor version # before:' + grep -E '^const string mapeditorVersionString = "[^"]*";$' ../../source/glest_map_editor/main.cpp + sed -i 's/^const string mapeditorVersionString = "[^"]*";$/const string mapeditorVersionString = "v'$MapeditorVersion'";/' ../../source/glest_map_editor/main.cpp + echo 'Mapeditor version # after:' + grep -E '^const string mapeditorVersionString = "[^"]*";$' ../../source/glest_map_editor/main.cpp + echo + echo '===== Updating G3dviewer ======' + # const string g3dviewerVersionString= "v1.3.6"; + echo 'G3dviewer version # before:' + grep -E '^const string g3dviewerVersionString= "[^"]*";$' ../../source/g3d_viewer/main.cpp + sed -i 's/^const string g3dviewerVersionString= "[^"]*";$/const string g3dviewerVersionString= "v'$G3dviewerVersion'";/' ../../source/g3d_viewer/main.cpp + echo 'G3dviewer version # after:' + grep -E '^const string g3dviewerVersionString= "[^"]*";$' ../../source/g3d_viewer/main.cpp +fi +echo echo '===== Updating Linux Installer ======' # local GAME_VERSION = "x.x.x"; echo 'Linux Installer version # before:' -grep -E '^local GAME_VERSION = "[^"]*";$' mojosetup/megaglest-installer/scripts/config.lua;sed -i 's/^local GAME_VERSION = "[^"]*";$/local GAME_VERSION = "'$CURRENT_VERSION'";/' mojosetup/megaglest-installer/scripts/config.lua +grep -E '^local GAME_VERSION = "[^"]*";$' mojosetup/megaglest-installer/scripts/config.lua +sed -i 's/^local GAME_VERSION = "[^"]*";$/local GAME_VERSION = "'$CURRENT_VERSION'";/' mojosetup/megaglest-installer/scripts/config.lua echo 'Linux Installer version # after:' grep -E '^local GAME_VERSION = "[^"]*";$' mojosetup/megaglest-installer/scripts/config.lua - +echo echo '===== Updating Windows Installer ======' # !define APVER 3.6.0 echo 'Windows Installer version # before:' -grep -E '^\!define APVER [^"]*$' ../windoze/Installer/MegaGlestInstaller.nsi;sed -i 's/^\!define APVER [^"]*$/\!define APVER '$CURRENT_VERSION'/' ../windoze/Installer/MegaGlestInstaller.nsi +grep -E '^\!define APVER [^"]*$' ../windoze/Installer/MegaGlestInstaller.nsi +sed -i 's/^\!define APVER [^"]*$/\!define APVER '$CURRENT_VERSION'/' ../windoze/Installer/MegaGlestInstaller.nsi echo 'Windows Installer version # after:' grep -E '^\!define APVER [^"]*$' ../windoze/Installer/MegaGlestInstaller.nsi - -echo 'Windows Installer version # before:' -grep -E '^\!define APVER_OLD [^"]*$' ../windoze/Installer/MegaGlestInstaller.nsi;sed -i 's/^\!define APVER_OLD [^"]*$/\!define APVER_OLD '$OLD_VERSION'/' ../windoze/Installer/MegaGlestInstaller.nsi -echo 'Windows Installer version # after:' -grep -E '^\!define APVER_OLD [^"]*$' ../windoze/Installer/MegaGlestInstaller.nsi - -echo '===== Updating Windows Updater ======' -echo 'Windows Updater version # before:' -grep -E '^\!define APVER [^"]*$' ../windoze/Installer/MegaGlestUpdater.nsi;sed -i 's/^\!define APVER [^"]*$/\!define APVER '$CURRENT_VERSION'/' ../windoze/Installer/MegaGlestUpdater.nsi -echo 'Windows Updater version # after:' -grep -E '^\!define APVER [^"]*$' ../windoze/Installer/MegaGlestUpdater.nsi - -echo 'Windows Updater version # before:' -grep -E '^\!define APVER_OLD [^"]*$' ../windoze/Installer/MegaGlestUpdater.nsi;sed -i 's/^\!define APVER_OLD [^"]*$/\!define APVER_OLD '$OLD_VERSION'/' ../windoze/Installer/MegaGlestUpdater.nsi -echo 'Windows Updater version # after:' -grep -E '^\!define APVER_OLD [^"]*$' ../windoze/Installer/MegaGlestUpdater.nsi - -grep -E '^\!define APVER_UPDATE [^"]*$' ../windoze/Installer/MegaGlestUpdater.nsi;sed -i 's/^\!define APVER_UPDATE [^"]*$/\!define APVER_UPDATE '$CURRENT_VERSION'/' ../windoze/Installer/MegaGlestUpdater.nsi -echo 'Windows Updater version # after:' -grep -E '^\!define APVER_UPDATE [^"]*$' ../windoze/Installer/MegaGlestUpdater.nsi - - +echo +if [ "$modifymore" = "yes" ]; then + echo 'Windows Installer version # before:' + grep -E '^\!define APVER_OLD [^"]*$' ../windoze/Installer/MegaGlestInstaller.nsi + sed -i 's/^\!define APVER_OLD [^"]*$/\!define APVER_OLD '$OLD_VERSION'/' ../windoze/Installer/MegaGlestInstaller.nsi + echo 'Windows Installer version # after:' + grep -E '^\!define APVER_OLD [^"]*$' ../windoze/Installer/MegaGlestInstaller.nsi + echo + echo '===== Updating Windows Updater ======' + echo 'Windows Updater version # before:' + grep -E '^\!define APVER [^"]*$' ../windoze/Installer/MegaGlestUpdater.nsi + sed -i 's/^\!define APVER [^"]*$/\!define APVER '$CURRENT_VERSION'/' ../windoze/Installer/MegaGlestUpdater.nsi + echo 'Windows Updater version # after:' + grep -E '^\!define APVER [^"]*$' ../windoze/Installer/MegaGlestUpdater.nsi + echo + echo 'Windows Updater version # before:' + grep -E '^\!define APVER_OLD [^"]*$' ../windoze/Installer/MegaGlestUpdater.nsi + sed -i 's/^\!define APVER_OLD [^"]*$/\!define APVER_OLD '$OLD_VERSION'/' ../windoze/Installer/MegaGlestUpdater.nsi + echo 'Windows Updater version # after:' + grep -E '^\!define APVER_OLD [^"]*$' ../windoze/Installer/MegaGlestUpdater.nsi + echo + echo 'Windows Updater version # before:' + grep -E '^\!define APVER_UPDATE [^"]*$' ../windoze/Installer/MegaGlestUpdater.nsi + sed -i 's/^\!define APVER_UPDATE [^"]*$/\!define APVER_UPDATE '$CURRENT_VERSION'/' ../windoze/Installer/MegaGlestUpdater.nsi + echo 'Windows Updater version # after:' + grep -E '^\!define APVER_UPDATE [^"]*$' ../windoze/Installer/MegaGlestUpdater.nsi + echo +fi diff --git a/mk/linux/mg-version.sh b/mk/linux/mg-version.sh index c37441dc..ef735ca7 100755 --- a/mk/linux/mg-version.sh +++ b/mk/linux/mg-version.sh @@ -1,12 +1,13 @@ -#!/bin/bash +#!/bin/sh # Use this script to idenitfy previous and current Version for a Version Release # ---------------------------------------------------------------------------- # Written by Mark Vejvoda # Copyright (c) 2011 Mark Vejvoda under GNU GPL v3.0+ -OLD_MG_VERSION=3.11.0 -OLD_MG_VERSION_BINARY=3.11.0 -MG_VERSION=3.12-dev +VERSION_INFO_FILE="$(dirname "$(readlink -f "$0")")/../../source/version.txt" +OLD_MG_VERSION="$(awk -F '=' '/^OldReleaseGameVersion =/ {print $2}' "$VERSION_INFO_FILE" | awk -F '"' '{print $2}')" +OLD_MG_VERSION_BINARY="$OLD_MG_VERSION" +MG_VERSION="$(awk -F '=' '/^CurrentGameVersion =/ {print $2}' "$VERSION_INFO_FILE" | awk -F '"' '{print $2}')" if [ "$1" = "--oldversion" ]; then echo "$OLD_MG_VERSION" diff --git a/source/g3d_viewer/main.cpp b/source/g3d_viewer/main.cpp index 1f0c9203..624fca2c 100644 --- a/source/g3d_viewer/main.cpp +++ b/source/g3d_viewer/main.cpp @@ -58,7 +58,7 @@ const char *folderDelimiter = "/"; //int GameConstants::updateFps= 40; //int GameConstants::cameraFps= 100; -const string g3dviewerVersionString= "v1.3.6"; +const string g3dviewerVersionString= "v3.12-dev"; // Because g3d should always support alpha transparency string fileFormat = "png"; diff --git a/source/glest_game/facilities/game_util.cpp b/source/glest_game/facilities/game_util.cpp index fae6f020..02440651 100644 --- a/source/glest_game/facilities/game_util.cpp +++ b/source/glest_game/facilities/game_util.cpp @@ -43,7 +43,7 @@ const string lastCompatibleSaveGameVersionString = "v3.9.0"; const string GIT_RawRev = string(GITVERSION); const string GIT_Rev = string("Rev: ") + string(GITVERSION); #else -const string GIT_RawRev = "$4446.1a8673f$"; +const string GIT_RawRev = "$5060.7451e49$"; const string GIT_Rev = "$Rev$"; #endif diff --git a/source/glest_map_editor/main.cpp b/source/glest_map_editor/main.cpp index cd77f590..744deb16 100644 --- a/source/glest_map_editor/main.cpp +++ b/source/glest_map_editor/main.cpp @@ -46,7 +46,7 @@ string getGameReadWritePath(string lookupKey) { namespace MapEditor { -const string mapeditorVersionString = "v1.6.1"; +const string mapeditorVersionString = "v3.12-dev"; const string MainWindow::winHeader = "MegaGlest Map Editor " + mapeditorVersionString; // =============================================== diff --git a/source/version.txt b/source/version.txt new file mode 100644 index 00000000..71ba4036 --- /dev/null +++ b/source/version.txt @@ -0,0 +1,13 @@ +# How it currently works? +# Set version here (only here) and just start mk/linux/mg-version-synch.sh script. +# Versions will be updated everywhere automatically. +# Then you should commit changed files and that's all. + +CurrentGameVersion = "3.12-dev"; +# ^ typical version numbers look like this: "3.11-beta1.0", "3.12-dev", "3.12.0" + +OldReleaseGameVersion = "3.11.0"; +LastCompatibleSaveGameVersion = "3.9.0"; + +GitCommitForRelease = "5060.7451e49"; +# ^ will be automatically generated