Difference between revisions of "ReleasingWesnoth"
m (→release commands: spelling fixes) |
(A quick wikifying, much more can be done) |
||
Line 1: | Line 1: | ||
− | === | + | == Tools == |
− | |||
− | |||
− | |||
− | |||
− | |||
− | === | + | Tools needed for releasing: |
− | * | + | |
− | * | + | * Normal tools to build everything from Wesnoth and to fetch the Subversion head |
− | + | * <code>po4a</code> (to be able to update the manpages and manual) | |
− | # | + | * <code>docbook-xml-dtd</code> (to generate the manual HTML files, I am currently using <code>app-text/docbook-xml-dtd-4.5</code>, not needed anymore for >= 1.5.x but manual files should be regenerated by hand before packaging!) |
+ | * <code>xdelta</code> 1.x (to create the Xdelta files) | ||
+ | * <code>optipng</code> (only for needed to run <code>utils/wesnoth-pngcrush</code>, not for normal releases) | ||
+ | |||
+ | == General maintenance == | ||
+ | |||
+ | Not strictly release associated. | ||
+ | |||
+ | * Run <code>utils/wesnoth-pngcrush</code> from the main directory of the Subversion repository every now and then, requires the package optipng | ||
+ | * Run a <code>pot-update</code> regulary, once shortly before the release, this includes the following steps as of current 1.4-rc time: | ||
+ | |||
+ | Change into the Subversion dir, svn up (to not get conflicts) and run ./autogen.sh | ||
+ | # Recreate the manpages and manuals | ||
make update-po4a | make update-po4a | ||
− | # | + | |
+ | # Update all other po files | ||
cd po && make update-po && cd .. | 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 | svn st | ||
− | # | + | |
+ | # Commit the bunch of updated po files and manpages/manuals | ||
svn ci doc/ po/ | svn ci doc/ po/ | ||
− | |||
− | |||
− | |||
− | |||
− | == | + | * Run <code>make</code> inside <code>data/tools</code> (runs a check for unresolved references, followed by <code>wmllint</code> with appropriate options, followed by a check for unused image and resource files) |
− | * | + | * Run <code>wmlindent</code> from <code>data/tools</code> to indent all content correctly |
− | * | + | * Run <code>data/tools/about_cfg_to_wiki</code> from svn root and copy the output to [[Credits]] to updates the credits on the website |
− | * | + | * Have a look at the pages from the category [[:Category:Review_on_Release|Review on Release]] |
− | * | + | |
− | # | + | == Release commands == |
+ | |||
+ | * Bump the version in <code>configure.ac</code>, <code>src/wesconfig.h</code>, <code>config.h.dummy</code> | ||
+ | * Check <code>changelog</code> and <code>players_changelog</code>, change the version of both | ||
+ | * Commit | ||
+ | * Do the following steps to generate a tarball: | ||
+ | |||
+ | # Update Subversion repository, just to be sure that you have the latest version, | ||
+ | # write down the revision you are using | ||
svn up | svn up | ||
− | # | + | |
+ | # Exporting the Subversion directory to have a clean version of the tree and | ||
+ | # switch into the temporary release dir | ||
svn export wesnoth wesnoth_release && cd wesnoth_release | svn export wesnoth wesnoth_release && cd wesnoth_release | ||
− | # | + | |
+ | # Generate configure files | ||
./autogen.sh | ./autogen.sh | ||
− | # | + | |
+ | # Create a bzip2 compressed tarball, | ||
+ | # in this step all po files, the manpages and the manual will be updated | ||
make dist-bzip2 | make dist-bzip2 | ||
− | * | + | |
− | * | + | * Now there should be the tarball named <code>wesnoth-VERSION.tar.bz2</code> in the root of <code>wesnoth_release</code>, move it somewhere for testing |
− | * | + | * Uncompress the tarball with <code>tar xfj wesnoth-VERSION.tar.bz2</code> and change into the resulting folder named <code>wesnoth-VERSION/</code> |
+ | * Run <code>configure</code> with parameters to build all necessary stuff that should be built (at least <code>--enable-editor</code>, <code>--enable-server</code> and <code>--enable-campaign-server</code> are needed, the rest is just meant to seperate all data directories from the normal installation ones) | ||
+ | |||
./configure --enable-server --enable-editor --enable-campaign-server \ | ./configure --enable-server --enable-editor --enable-campaign-server \ | ||
--bindir=/games-bin --datadir=/games/ \ | --bindir=/games-bin --datadir=/games/ \ | ||
--with-preferences-dir=.wesnoth-test --program-suffix=-test --with-datadir-name=wesnoth-test | --with-preferences-dir=.wesnoth-test --program-suffix=-test --with-datadir-name=wesnoth-test | ||
− | * | + | |
+ | * Compile everything, use <code>LC_ALL=C</code> to have English error output if something goes wrong: | ||
+ | |||
LC_ALL=C make | LC_ALL=C make | ||
− | * | + | |
− | * | + | * Remove all existing test stuff you currently have installed (probably requires running as root for the installed files, user privilegies are enough to remove stuff in <code>~/.wesnoth-test</code>) |
+ | * Install the game with <code>make install</code>, running right from the sources is '''not''' enough to be sure that everything works as expected, for normal installation into your system, root privilegies are probably needed (replace <code>su -c</code> by <code>sudo</code> if your system uses it) | ||
+ | |||
su -c "LC_ALL=C make install" | 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 multiplayer 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 in-game 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 a multiplayer game | ||
If all of those points are working as expected, go on, if not, fix the problems and restart from the very beginning. | 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 <code>BRANCH</code> either with <code>trunk</code> for a normal development release, or with <code>branches/X.Y</code> for a stable release, the tag number should be of the format <code>X.Y.Z</code>, <code>USER</code> is the user account at [http://gna.org/ gna.org] with commit privilegies): | |
+ | |||
svn -r REVISION copy svn+ssh://USER@svn.gna.org/svn/wesnoth/BRANCH svn+ssh://USER@svn.gna.org/svn/wesnoth/tags/TAGNUMBER | 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 [http://www.wesnoth.org/macro-reference.xhtml macro-reference.xhtml]: | ||
+ | |||
cd wesnoth-VERSION-dir/data/tools | cd wesnoth-VERSION-dir/data/tools | ||
make macro-reference.xhtml | make macro-reference.xhtml | ||
− | + | ||
− | + | Upload the created file <code>macro-reference.xhtml</code> to ftp://ftp.wesnoth.org/www/misc/ | |
− | + | ||
− | + | Create an updated unit tree: | |
− | + | ||
+ | * <code>ssh</code> to server.wesnoth.org | ||
+ | * Run <code>update_unit_tree <new version></code> to update http://units.wesnoth.org/ | ||
+ | |||
+ | Create the md5sum for the tarball: | ||
+ | |||
md5sum wesnoth-VERSION.tar.bz2 > wesnoth-VERSION.tar.bz2.md5 | 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 previous release to be able to do so: | ||
+ | |||
bunzip2 wesnoth-VERSION.tar.bz2 | bunzip2 wesnoth-VERSION.tar.bz2 | ||
xdelta delta wesnoth-OLDVERSION.tar wesnoth-VERSION.tar wesnoth-OLDVERSION.tar-wesnoth-VERSION.tar.xdelta | xdelta delta wesnoth-OLDVERSION.tar wesnoth-VERSION.tar wesnoth-OLDVERSION.tar-wesnoth-VERSION.tar.xdelta | ||
− | * | + | |
− | * | + | * Upload the files <code>wesnoth-VERSION.tar.bz2</code>, <code>wesnoth-VERSION.tar.bz2.md5</code> and <code>wesnoth-OLDVERSION.tar-wesnoth-VERSION.tar.xdelta</code> to ftp://ftp.wesnoth.org/www/files/ and sourceforge.net/incoming |
− | + | * Create the respective release at the wesnoth project at sf.net. Paste the content of <code>players_changelog</code> as release notes and the full changelog as <code>changelog</code>. If there is content in <code>RELEASE_NOTES</code>, 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.4.4: | ||
+ | |||
amirserdang |ATTT| gmail.com (current Mac OSX packager) | amirserdang |ATTT| gmail.com (current Mac OSX packager) | ||
joerg.hinrichs |ATTT| softeck.de (old Windows packager) | joerg.hinrichs |ATTT| softeck.de (old Windows packager) | ||
Line 87: | Line 128: | ||
enqlave |ATTT| gmail.com (unknown) | enqlave |ATTT| gmail.com (unknown) | ||
sobotkap |ATTT| centrum.cz (OpenSolaris) | sobotkap |ATTT| centrum.cz (OpenSolaris) | ||
− | + | ||
+ | Basic text for such an announcement: | ||
+ | |||
Topic: Wesnoth VERSION is out | Topic: Wesnoth VERSION is out | ||
Body: | Body: | ||
Line 98: | Line 141: | ||
SIGNATURE | SIGNATURE | ||
− | * | + | * Contact Soliton so that he updates the server to support the new version (required for development releases, should not be needed for stable releases after RC time is started) |
− | * | + | * Login to server.wesnoth.org via ssh and run <code>update_unit_tree <new version></code> to update http://units.wesnoth.org/ |
− | * | + | * Up version to <code>wesnoth-VERSION+svn</code> in <code>configure.ac</code>, <code>src/wesconfig.h</code>, <code>config.h.dummy</code>, <code>changelog</code> and <code>players_changelog</code> |
* Wait for about one day | * 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 sites 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 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: | |
− | This is a (probably completely outdated) list of sites that | ||
− | + | * http://freshmeat.net/projects/wesnoth | |
− | + | * http://happypenguin.org/show?Battle%20for%20Wesnoth | |
− | + | * http://libsdl.org | |
− | + | * http://linuxgames.com | |
− | + | * http://icewalkers.com | |
− | + | * http://tucows.com | |
− | + | * http://maccentral.com | |
− | + | * http://www.versiontracker.com | |
− | + | * http://www.macgamefiles.com | |
− | + | * http://www.apple.com | |
[[Category:Development]] | [[Category:Development]] |
Revision as of 19:06, 22 March 2009
Contents
Tools
Tools needed for releasing:
- Normal tools to build everything from Wesnoth and to fetch the Subversion head
po4a
(to be able to update the manpages and manual)docbook-xml-dtd
(to generate the manual HTML files, I am currently usingapp-text/docbook-xml-dtd-4.5
, not needed anymore for >= 1.5.x but manual files should be regenerated by hand before packaging!)xdelta
1.x (to create the Xdelta files)optipng
(only for needed to runutils/wesnoth-pngcrush
, not for normal releases)
General maintenance
Not strictly release associated.
- Run
utils/wesnoth-pngcrush
from the main directory of the Subversion repository every now and then, requires the package optipng - Run a
pot-update
regulary, once shortly before the release, this includes the following steps as of current 1.4-rc time:
Change into the Subversion 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/
- Run
make
insidedata/tools
(runs a check for unresolved references, followed bywmllint
with appropriate options, followed by a check for unused image and resource files) - Run
wmlindent
fromdata/tools
to indent all content correctly - Run
data/tools/about_cfg_to_wiki
from svn root and copy the output to Credits to updates the credits on the website - Have a look at the pages from the category Review on Release
Release commands
- Bump the version in
configure.ac
,src/wesconfig.h
,config.h.dummy
- Check
changelog
andplayers_changelog
, change the version of both - Commit
- Do the following steps to generate a tarball:
# Update Subversion repository, just to be sure that you have the latest version, # write down the revision you are using svn up # Exporting the Subversion directory 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, 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 ofwesnoth_release
, move it somewhere for testing - Uncompress the tarball with
tar xfj wesnoth-VERSION.tar.bz2
and change into the resulting folder namedwesnoth-VERSION/
- Run
configure
with parameters to build all necessary stuff that should be built (at least--enable-editor
,--enable-server
and--enable-campaign-server
are needed, the rest is just meant to seperate all data directories 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 test stuff you currently have installed (probably requires running as root for the installed files, user privilegies are enough to remove stuff in
~/.wesnoth-test
) - Install the game with
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 privilegies are probably needed (replacesu -c
bysudo
if your system uses it)
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 multiplayer 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 in-game 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 a multiplayer 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 development release, or with branches/X.Y
for a stable release, the tag number should be of the format X.Y.Z
, USER
is the user account at gna.org with commit privilegies):
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://ftp.wesnoth.org/www/misc/
Create an updated unit tree:
ssh
to server.wesnoth.org- Run
update_unit_tree <new version>
to update http://units.wesnoth.org/
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 previous 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
andwesnoth-OLDVERSION.tar-wesnoth-VERSION.tar.xdelta
to ftp://ftp.wesnoth.org/www/files/ and sourceforge.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 aschangelog
. If there is content inRELEASE_NOTES
, 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.4.4:
amirserdang |ATTT| gmail.com (current Mac OSX packager) joerg.hinrichs |ATTT| softeck.de (old Windows packager) cycholka |ATTT| wp.pl (current Windows packager) hhetter |ATTT| novell.com (OpenSuse 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, basically inactive) burningshadow |ATTT| syllable-norden.info (syllable) enqlave |ATTT| gmail.com (unknown) sobotkap |ATTT| centrum.cz (OpenSolaris)
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
- Contact Soliton so that he updates the server to support the new version (required for development releases, should not be needed for stable releases after RC time is started)
- Login to server.wesnoth.org via ssh and run
update_unit_tree <new version>
to update http://units.wesnoth.org/ - Up version to
wesnoth-VERSION+svn
inconfigure.ac
,src/wesconfig.h
,config.h.dummy
,changelog
andplayers_changelog
- 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 sites 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 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: