Free and Open Source real time strategy game with a new take on micro-management

Difference between revisions of "Releasing a new version"

From Globulation2

Jump to: navigation, search
(Test phase)
Line 34: Line 34:


;Note 2: Normal glob2 development can take place in the main branch (i.e. default) as usual.
;Note 2: Normal glob2 development can take place in the main branch (i.e. default) as usual.
<!-- ~~~ would suggest to always develop new features in branches. Note 2 so should only apply if the user is not into hg for using a branch.-->
<!-- [[User:Leo]] would suggest to always develop new features in branches. Note 2 so should only apply if the user is not into hg for using a branch.-->


==Release phase==
==Release phase==

Revision as of 17:09, 26 January 2008

Some permissions needed: The following guide assumes that you have upload ability to savannah (you will need to be a group member), and write access to Mercurial (contact Nct if you need a username and password access). If you don't have these, then you probably arn't allowed to make releases :P

Test phase

  • First thing to do when planning a release is to propose it. Email the development mailing list and say you think a release should be made.
  • If no-one complains branch off a release candidate which must be used for testing and bugfixing only - and finally will be released:
hg clone http://hg.globulation2.org/glob2/
hg clone -r default glob2 glob2_release
cd glob2_release
hg update -C tip
  • Increment version number in SConstruct (find and edit env["VERSION"])
  • Run 'scons', 'scons install', and 'scons dist' and make sure all three work (compile, install, and package). If that works, then push the new branch using:
hg push -r release-rc https://hg.globulation2.org/glob2/
  • Put a line like: "Changes in <release tag> (release soon)" under "Changes since latest release" in: Changes
  • Now announce (on the mailing list) that you branched off the release candidate and that everyone who wants to help testing or fixing it must do the following:
hg clone http://hg.globulation2.org/glob2/
hg clone -r release-rc glob2 glob2_release
cd glob2_release
hg update tip
  • Now wait for the go of all relevant developers and make sure, all cases are tested in depth including
    • custom maps
      • with all AIs and
      • all maps played
    • map editor and
      • playability of those maps
    • tutorial and
    • campaign
    • LAN and YOG both with
      • more than two players and with
      • all major systems (Linux, Mac and Windows preferably
      • both 32bit and 64bit) involved.
    • ...
Note 1
Although pushing fixes to both branches (default and the new release-rc) isn't necessary, it is probably wise to do so to avoid conflicts when merging later.
Note 2
Normal glob2 development can take place in the main branch (i.e. default) as usual.

Release phase

Here is a detailed description of the remaining release process applied for all the alpha releases:

Testing

  • Pull a new copy of the release branch:
hg clone http://hg.globulation2.org/glob2/
hg clone -r release-rc glob2 glob2_release
cd glob2_release
hg update tip
  • Run 'scons -c'
  • Run 'scons CXXFLAGS="-O2 -g"'; if any problem occurs, then the release candidate is not ready for release! (the final release could be compiled without the -g and with -O3 but right now -g -O2 is a reasonable tradeoff between speed and debugability)
  • Run 'scons install'; if any problem occurs, then the release candidate is *still* not ready for release!
  • Test the resulting installed with 'gdb glob2'; if any problem occurs, then the release candidate is nearly ready for release, but too buggy to go out right now, wait another day or two!

Releasing

  • If the testing above was successfull, run 'scons dist' to create a tar.gz package.
  • Upload it to Savannah in the folder relating to their version (for example, alpha22 = 0.8.22/).
  • Send a mail to the development mailing list, update the wiki, update savannah news, and tell rest of the Worlds about the "Good news" ;-)
Misc