Difference between revisions of "ReleasingWesnoth"
From The Battle for Wesnoth Wiki
(Categorize) |
(rewrite of release commands to match 1.3.19 release procedure) |
||
Line 1: | Line 1: | ||
− | + | === tools needed for releasing === | |
+ | * normal tools to build everything from Wesnoth and to fetch svn head | ||
+ | * po4a (to be able to update the manpages and manual) | ||
+ | * <docbook-xml-dtd-4.3 (to generate the manual html files, more recent versions seem not to work on my gentoo system, I am currently using app-text/docbook-xml-dtd-4.2-r2) | ||
+ | * xdelta 1.x (to create the xdelta files) | ||
+ | * optipng (only for needed to run utils/wesnoth-pngcrush, not for normal releases) | ||
− | + | === general maintance stuff, not strictly release associated === | |
+ | * run utils/wesnoth-pngcrush from the maindir of the svn rep every now and then, requires the package optipng | ||
+ | * run a pot-update regulary, one shortly before the release, this includes the following steps as of current 1.4-rc time: | ||
+ | change into the svn dir, svn up (to not get conflicts) and run ./autogen.sh | ||
+ | # recreate the manpages and manuals | ||
+ | make update-po4a | ||
+ | # update all other po-files | ||
+ | cd po && make update-po && cd .. | ||
+ | # make sure that no new files were created, if new manpages/manuals were created, add them via svn add | ||
+ | svn st | ||
+ | # commit the bunch of updated po-files and manpages/manuals | ||
+ | svn ci doc/ po/ | ||
+ | |||
+ | === release commands === | ||
+ | * bump the version in configure.ac, src/wesconfig.h, config.h.dummy | ||
+ | * check changelog and players_changelog, change the version of both | ||
+ | * commit | ||
+ | * do the following steps to generate a tarball: | ||
+ | # update svn, just to be sure that you have the latest version, write down the revision you are using | ||
+ | svn up | ||
+ | # exporting the svn dir to have a clean version of the tree and switch into the temporary release dir | ||
+ | svn export wesnoth wesnoth_release && cd wesnoth_release | ||
+ | # generate configure files | ||
+ | ./autogen.sh | ||
+ | # create a bzip2 compressed tarball, in this step all po-files and the manpages and the manual will be updated | ||
+ | make dist-bzip2 | ||
+ | * now there should be the tarball named wesnoth-VERSION.tar.bz2 in the root of wesnoth_release, move it somewhere for testing | ||
+ | * uncompress the tarball via "tar xfj wesnoth-VERSION.tar.bz2" and change into the resulting folder named "wesnoth-VERSION/" | ||
+ | * run configure with params to build all necessary stuff that should at least build (at least needed are --enable-editor, --enable-server and --enable-campaign-server, the rest is just meant to seperate all datadirs from the normal installation ones) | ||
+ | ./configure --enable-server --enable-editor --enable-campaign-server \ | ||
+ | --bindir=/games-bin --datadir=/games/ \ | ||
+ | --with-preferences-dir=.wesnoth-test --program-suffix=-test --with-datadir-name=wesnoth-test | ||
+ | * compile everything, use LC_ALL=C to have english error output if something goes wrong: | ||
+ | LC_ALL=C make | ||
+ | * remove all existing teststuff you currently have installed (probably requires running as root for the installed files, user privs are enough to remove stuff in ~/.wesnoth-test) | ||
+ | * install the game via "make install", running right from the sources is *not* enough to be sure that everything works as expected, for normal installation into your system, root privs are probably needed (replace "su -c" by sudo if your system does use sudo instead of su -c) | ||
+ | su -c "LC_ALL=C make install" | ||
+ | * '''test the build''' | ||
+ | this at least includes the following: | ||
+ | ** start the editor, check if creating a map is possible | ||
+ | ** start the game and try to connect to the official mp-server and to the add-on server | ||
+ | ** start the server, connect to it using the game to see if you can enter the lobby | ||
+ | ** check if in the game each campaign does start | ||
+ | ** check if you can start the ingame help and the credits | ||
+ | ** check if it is possible to create a local game | ||
+ | ** play at least one game/scenario (or droid your side to let the ai play), this can either be a normal campaign scenario or an mp game | ||
+ | |||
+ | If all of those points are working as expected, go on, if not, fix the problems and restart from the very beginning. | ||
+ | |||
+ | * if everything does work, tag using the revision you wrote down (replace BRANCH either with trunk for a normal dev release, or with branches/X.Y for a stable release, the tagnumber should be of the format X.Y.Z, USER is the useraccount at gna.org with commit privs): | ||
+ | svn -r REVISION copy svn+ssh://USER@svn.gna.org/svn/wesnoth/BRANCH svn+ssh://USER@svn.gna.org/svn/wesnoth/tags/TAGNUMBER | ||
+ | * create an updated macro-reference.xhtml: | ||
+ | cd wesnoth-VERSION-dir/data/tools | ||
+ | make macro-reference.xhtml | ||
+ | upload the created file ''macro-reference.xhtml'' to ftp.wesnoth.org/www/misc/ | ||
+ | * create the md5sum for the tarball: | ||
+ | md5sum wesnoth-VERSION.tar.bz2 > wesnoth-VERSION.tar.bz2.md5 | ||
+ | * create the xdelta of the uncompressed tarball, you do need the uncompressed tarball of the brevious release to be able to do so: | ||
+ | bunzip2 wesnoth-VERSION.tar.bz2 | ||
+ | xdelta delta wesnoth-OLDVERSION.tar wesnoth-VERSION.tar wesnoth-OLDVERSION.tar-wesnoth-VERSION.tar.xdelta | ||
+ | * upload the files wesnoth-VERSION.tar.bz2, wesnoth-VERSION.tar.bz2.md5 and wesnoth-OLDVERSION.tar-wesnoth-VERSION.tar.xdelta to frp.wesnoth.org/www/files and sourcefoge.net/incoming | ||
+ | * create the respective release at the wesnoth project at sf.net. Paste the content of players_changelog as release notes and the full changelog as changelog. If there is content in RELEASE_NOTES, do use it at the top of the "release notes"-section | ||
+ | * once the upload is completed, do contact the known packagers, this is the current list as of 1.3.19: | ||
+ | laurent.wacrenier |ATTT| gmail.com (old Mac OSX packager) | ||
+ | ulissesroc |ATTT| gmail.com (current Mac OSX packager) | ||
+ | joerg.hinrichs |ATTT| softeck.de (Windows packager) | ||
+ | hhetter |ATTT| novell.com (OpenSuse packager) | ||
+ | isaac |ATTT| warp.es (old debian packager) | ||
+ | rhonda |ATTT| deb.at (current debian packager) | ||
+ | bero |ATTT| arklinux.org (arklinux) | ||
+ | mr_bones_ |ATTT| gentoo.org (official gentoo packages, will only be included for stable and beta/rc releases) | ||
+ | markus.schmeing |ATTT| udo.edu (unofficial gentoo packages) | ||
+ | burningshadow |ATTT| syllable-norden.info (syllable) | ||
+ | enqlave |ATTT| gmail.com | ||
+ | sobotkap@centrum.cz | ||
+ | * Basic text for such an announcement: | ||
+ | Topic: Wesnoth VERSION is out | ||
+ | Body: | ||
+ | |||
+ | I am currently uploading the sources to sf.net, they are already available via files.wesnoth.org. I will announce the release tomorrow, so you can create and upload the packages in the meantime. | ||
+ | |||
+ | Some foo about changes/additions/stuff to keep in mind that is basically packager specific like added deps and stuff like this | ||
+ | |||
+ | Best regards and thank you for your contribution to Wesnoth | ||
+ | SIGNATURE | ||
+ | |||
+ | * Wait for about one day | ||
+ | * update the downloads website | ||
+ | * post an announcement in the forums, do at least mention the text from RELEASE_NOTES plus some other important changes | ||
+ | * update the frontpage | ||
+ | * copy the news into the "old news" in the wiki (so that everything will be listed there) | ||
+ | * submit versions updates for stable versions to all stites that are known to monitor Wesnoth, ask the respective packagers to do so for OS specific sites (like apple.com). | ||
+ | |||
+ | === sites monitoring Wesnoth releases === | ||
+ | This is a (probably completely outdated) list of sites that do monitor Wesnoth releases. Most of these require manual submissions of update request. This should be done by whoever has an account at the respective sites: | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
** http://freshmeat.net/projects/wesnoth | ** http://freshmeat.net/projects/wesnoth | ||
** http://happypenguin.org/show?Battle%20for%20Wesnoth | ** http://happypenguin.org/show?Battle%20for%20Wesnoth | ||
− | |||
** http://libsdl.org | ** http://libsdl.org | ||
** http://linuxgames.com | ** http://linuxgames.com | ||
Line 30: | Line 109: | ||
** http://tucows.com | ** http://tucows.com | ||
** http://maccentral.com | ** http://maccentral.com | ||
− | ** http://www.versiontracker.com | + | ** http://www.versiontracker.com |
** http://www.macgamefiles.com | ** http://www.macgamefiles.com | ||
+ | ** http://www.apple.com |
Revision as of 13:45, 27 February 2008
Contents
tools needed for releasing
- normal tools to build everything from Wesnoth and to fetch svn head
- po4a (to be able to update the manpages and manual)
- <docbook-xml-dtd-4.3 (to generate the manual html files, more recent versions seem not to work on my gentoo system, I am currently using app-text/docbook-xml-dtd-4.2-r2)
- xdelta 1.x (to create the xdelta files)
- optipng (only for needed to run utils/wesnoth-pngcrush, not for normal releases)
general maintance stuff, not strictly release associated
- run utils/wesnoth-pngcrush from the maindir of the svn rep every now and then, requires the package optipng
- run a pot-update regulary, one shortly before the release, this includes the following steps as of current 1.4-rc time:
change into the svn dir, svn up (to not get conflicts) and run ./autogen.sh # recreate the manpages and manuals make update-po4a # update all other po-files cd po && make update-po && cd .. # make sure that no new files were created, if new manpages/manuals were created, add them via svn add svn st # commit the bunch of updated po-files and manpages/manuals svn ci doc/ po/
release commands
- bump the version in configure.ac, src/wesconfig.h, config.h.dummy
- check changelog and players_changelog, change the version of both
- commit
- do the following steps to generate a tarball:
# update svn, just to be sure that you have the latest version, write down the revision you are using svn up # exporting the svn dir to have a clean version of the tree and switch into the temporary release dir svn export wesnoth wesnoth_release && cd wesnoth_release # generate configure files ./autogen.sh # create a bzip2 compressed tarball, in this step all po-files and the manpages and the manual will be updated make dist-bzip2
- now there should be the tarball named wesnoth-VERSION.tar.bz2 in the root of wesnoth_release, move it somewhere for testing
- uncompress the tarball via "tar xfj wesnoth-VERSION.tar.bz2" and change into the resulting folder named "wesnoth-VERSION/"
- run configure with params to build all necessary stuff that should at least build (at least needed are --enable-editor, --enable-server and --enable-campaign-server, the rest is just meant to seperate all datadirs from the normal installation ones)
./configure --enable-server --enable-editor --enable-campaign-server \ --bindir=/games-bin --datadir=/games/ \ --with-preferences-dir=.wesnoth-test --program-suffix=-test --with-datadir-name=wesnoth-test
- compile everything, use LC_ALL=C to have english error output if something goes wrong:
LC_ALL=C make
- remove all existing teststuff you currently have installed (probably requires running as root for the installed files, user privs are enough to remove stuff in ~/.wesnoth-test)
- install the game via "make install", running right from the sources is *not* enough to be sure that everything works as expected, for normal installation into your system, root privs are probably needed (replace "su -c" by sudo if your system does use sudo instead of su -c)
su -c "LC_ALL=C make install"
- test the build
this at least includes the following:
- start the editor, check if creating a map is possible
- start the game and try to connect to the official mp-server and to the add-on server
- start the server, connect to it using the game to see if you can enter the lobby
- check if in the game each campaign does start
- check if you can start the ingame help and the credits
- check if it is possible to create a local game
- play at least one game/scenario (or droid your side to let the ai play), this can either be a normal campaign scenario or an mp game
If all of those points are working as expected, go on, if not, fix the problems and restart from the very beginning.
- if everything does work, tag using the revision you wrote down (replace BRANCH either with trunk for a normal dev release, or with branches/X.Y for a stable release, the tagnumber should be of the format X.Y.Z, USER is the useraccount at gna.org with commit privs):
svn -r REVISION copy svn+ssh://USER@svn.gna.org/svn/wesnoth/BRANCH svn+ssh://USER@svn.gna.org/svn/wesnoth/tags/TAGNUMBER
- create an updated macro-reference.xhtml:
cd wesnoth-VERSION-dir/data/tools make macro-reference.xhtml
upload the created file macro-reference.xhtml to ftp.wesnoth.org/www/misc/
- create the md5sum for the tarball:
md5sum wesnoth-VERSION.tar.bz2 > wesnoth-VERSION.tar.bz2.md5
- create the xdelta of the uncompressed tarball, you do need the uncompressed tarball of the brevious release to be able to do so:
bunzip2 wesnoth-VERSION.tar.bz2 xdelta delta wesnoth-OLDVERSION.tar wesnoth-VERSION.tar wesnoth-OLDVERSION.tar-wesnoth-VERSION.tar.xdelta
- upload the files wesnoth-VERSION.tar.bz2, wesnoth-VERSION.tar.bz2.md5 and wesnoth-OLDVERSION.tar-wesnoth-VERSION.tar.xdelta to frp.wesnoth.org/www/files and sourcefoge.net/incoming
- create the respective release at the wesnoth project at sf.net. Paste the content of players_changelog as release notes and the full changelog as changelog. If there is content in RELEASE_NOTES, do use it at the top of the "release notes"-section
- once the upload is completed, do contact the known packagers, this is the current list as of 1.3.19:
laurent.wacrenier |ATTT| gmail.com (old Mac OSX packager) ulissesroc |ATTT| gmail.com (current Mac OSX packager) joerg.hinrichs |ATTT| softeck.de (Windows packager) hhetter |ATTT| novell.com (OpenSuse packager) isaac |ATTT| warp.es (old debian packager) rhonda |ATTT| deb.at (current debian packager) bero |ATTT| arklinux.org (arklinux) mr_bones_ |ATTT| gentoo.org (official gentoo packages, will only be included for stable and beta/rc releases) markus.schmeing |ATTT| udo.edu (unofficial gentoo packages) burningshadow |ATTT| syllable-norden.info (syllable) enqlave |ATTT| gmail.com sobotkap@centrum.cz
- Basic text for such an announcement:
Topic: Wesnoth VERSION is out Body: I am currently uploading the sources to sf.net, they are already available via files.wesnoth.org. I will announce the release tomorrow, so you can create and upload the packages in the meantime. Some foo about changes/additions/stuff to keep in mind that is basically packager specific like added deps and stuff like this Best regards and thank you for your contribution to Wesnoth SIGNATURE
- Wait for about one day
- update the downloads website
- post an announcement in the forums, do at least mention the text from RELEASE_NOTES plus some other important changes
- update the frontpage
- copy the news into the "old news" in the wiki (so that everything will be listed there)
- submit versions updates for stable versions to all stites that are known to monitor Wesnoth, ask the respective packagers to do so for OS specific sites (like apple.com).
sites monitoring Wesnoth releases
This is a (probably completely outdated) list of sites that do monitor Wesnoth releases. Most of these require manual submissions of update request. This should be done by whoever has an account at the respective sites: