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

Releasing a new version

From Globulation2

Revision as of 17:55, 6 April 2007 by Kai Antweiler (talk | contribs) (Release phase)
Jump to: navigation, search

Test phase

  • First thing to do when planning a release is to propose it.
  • If no-one complains branch off a release candidate which must be used for testing and bugfixing only - and finally will be released:
# cp -a <old directory name> <new directory name>
# cd <new directory name>
# cvs update
# cvs tag -b <release tag name>-rc
# cvs update -r <release tag name>-rc

Normal glob2 development takes place in the original HEAD (i.e. MAIN) branch as usual.

  • Now announce that you branched off the release candidate and that everyone who wants to help testing or fixing it must do:
# cp -a <old directory name> <new directory name>
# cd <new directory name>
# cvs update -r <release tag name>-rc

And also every bugfix must be done for both branches HEAD and the release candidate to avoid cvs merging weaknesses.

  • Put a line like: "Changes in <release tag> (release soon)" under "Changes since latest release" in: Changes
  • Increment version number in configure.in
  • Increment Debian version number by doing debchange -i in debian/ (this must be done by nct on the mailing list)
  • Now wait about a week.

Release phase

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

  1. Go into the directory containing glob2 the release candidate
  2. Check that the local cvs is up to date (through "cvs up")
  3. Check that all the required graphics and maps are in the server (through "./mkdata" and "./mkmap")
  4. Run "make distclean"
  5. Set CXXFLAGS to "-O2 -g $CXXFLAGS", final release could be compiled without the -g and with -O3 but right now -g -O2 is a reasonable tradeoff between speed and debugability
  6. Run "./bootstrap"
  7. Run "./configure"; if any problem occurs, well, the release candidate is not ready for release!
  8. Run "make"; if any problem occurs, well, the release candidate is *still* not ready for release!
  9. Test the resulting binary; if any problem occurs, well, you should fix your code instead of releasing stuff!
  10. Run "make dist" to make the .tar.gz
  11. Run "fakeroot debian/rules binary" to make the debian package
  12. Upload them to glob2@www.globulation2.org:/home/glob2/public_html/releases/X.Y.Z (for example, alpha20 = 0.8.20).
  13. Send a mail to the ml, update web site, savannah news, and rest of the Worlds about the "Good news" ;-)
Misc