|
|
Line 1: |
Line 1: |
|
|
{{Warning|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== |
|
==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. |
|
* 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: |
|
* 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 http://hg.globulation2.org/glob2/ |
|
# hg clone -r master glob2 glob2_release |
|
hg clone -r master glob2 glob2_release |
|
# cd glob2_release |
|
cd glob2_release |
|
# hg update tip |
|
hg update tip |
|
⚫ |
* Increment version number in SConstruct (find and edit env["VERSION"]) |
⚫ |
# hg push -r release-rc https://hg.globulation2.org/glob2/ |
|
|
|
* 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 |
|
⚫ |
|
|
⚫ |
|
|
|
* Now wait about a week for all bugs to be found and fixed in the release-rc branch. |
|
⚫ |
Note 1: Although pushing fixes to both branches (master and the new release-rc) isn't nessesary, it is probably wise to, so as to avoid conflicts later when merging. |
|
|
|
|
|
Note: Normal glob2 development can take place in the main branch (i.e. master) as usual. |
|
Note 2: Normal glob2 development can take place in the main branch (i.e. master) as usual. |
|
|
|
|
⚫ |
* Now announce that you branched off the release candidate and that everyone who wants to help testing or fixing it must do: |
|
|
|
|
|
⚫ |
# hg clone http://hg.globulation2.org/glob2/ |
|
⚫ |
# hg clone -r release-rc glob2 glob2_release |
|
⚫ |
|
|
⚫ |
|
|
|
|
|
⚫ |
Note: Although pushing fixes to both branches (master and the new release-rc) isn't nessesary, it is probably wise to, so as to avoid conflicts later when merging. |
|
|
|
|
⚫ |
* 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 "hg tag" and only propagate news about a release candidate - not a release. |
|
|
* Now wait about a week. |
|
|
|
|
|
|
==Release phase== |
|
==Release phase== |
|
|
|
|
Here is a detailed description of the remaining release process applied for all the alpha releases: |
|
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. |
|
⚫ |
* [[Uploading_to_Savannah|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" ;-) |
|
|
|
|
|
# Go into the directory containing glob2 the release candidate |
|
|
# Check that the local mercurial is up to date (through "hg pull && hg update") |
|
|
# 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 "hg tag RELEASE_NAME", in order to tag the Mercurial 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 |
|
⚫ |
# [[Uploading_to_Savannah|Upload them to Savannah]] in the folder relating to their version (for example, alpha22 = 0.8.22/). |
|
⚫ |
# Send a mail to the ml, update web site, savannah news, and rest of the Worlds about the "Good news" ;-) |
|
|
[[Category:Developer Resources]] |
|
[[Category:Developer Resources]] |
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 master glob2 glob2_release
cd glob2_release
hg update 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 about a week for all bugs to be found and fixed in the release-rc branch.
Note 1: Although pushing fixes to both branches (master and the new release-rc) isn't nessesary, it is probably wise to, so as to avoid conflicts later when merging.
Note 2: Normal glob2 development can take place in the main branch (i.e. master) 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" ;-)