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
Line 1: Line 1:
==Test phase==
This developers article has been moved to http://globulation2.devjavu.com/


* First thing to do when planning a release is to propose it.
Please go there to find in. Thank you.
* 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:
[[Category:NewWiki]]

# 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: [http://globulation2.org/wiki/Changes 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)
* Do a release dry run, i.e.: all the release steps below except the "cvs tag" and only propagate news about a release candidate - not a release.
* Now wait about a week.

==Release phase==

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

# Go into the directory containing glob2 the release candidate
# Check that the local cvs is up to date (through "cvs up")
# Check that all the required graphics and maps are in the server (through "./mkdata" and "./mkmap")
# Run "make distclean"
# 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
# Run "./bootstrap"
# Run "./configure"; if any problem occurs, well, the release candidate is not ready for release!
# Run "make"; if any problem occurs, well, the release candidate is *still* not ready for release!
# Test the resulting binary; if any problem occurs, well, you should fix your code instead of releasing stuff!
# Run "cvs tag RELEASE_NAME", in order to tag the CVS so that packagers can fetch this *exact* source tree for this release
# Run "make dist" to make the .tar.gz
# Run "fakeroot debian/rules binary" to make the debian package
# Upload them to glob2@www.globulation2.org:/home/glob2/public_html/releases/X.Y.Z (for example, alpha20 = 0.8.20).
# Send a mail to the ml, update web site, savannah news, and rest of the Worlds about the "Good news" ;-)
[[Category:Developer Resources]]

Revision as of 05:31, 9 April 2007

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)
  • Do a release dry run, i.e.: all the release steps below except the "cvs tag" and only propagate news about a release candidate - not a release.
  • 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 "cvs tag RELEASE_NAME", in order to tag the CVS so that packagers can fetch this *exact* source tree for this release
  11. Run "make dist" to make the .tar.gz
  12. Run "fakeroot debian/rules binary" to make the debian package
  13. Upload them to glob2@www.globulation2.org:/home/glob2/public_html/releases/X.Y.Z (for example, alpha20 = 0.8.20).
  14. Send a mail to the ml, update web site, savannah news, and rest of the Worlds about the "Good news" ;-)
Misc