Changes in ReleasingWidelands
Editor Comment
Updated for new launchpad stuff.
Revision Differences of Revision 6
## Releasing new versions of Widelands ¶¶
This document is about what steps are to perform to release a new build of Widelands. ¶
¶
We release one release candidate before each release, to make sure no completely stupid mistakes creep into a release. The steps for preparing the RC are
¶
¶
### Release cycle ¶
¶
The rough release cycle should work like this: ¶
¶
* Agree on a date for release and release candidate on widelands-public ¶
* Find a release manager. ¶
* Feature & Goal check# Updating the RoadMap and checking, if all goals are reached. ¶
* Check, that [ChangeLog](/changelog) is valid (Check with wiki page) ¶
* Check, that DevelopersPage (authors) file is valid (Check with wiki page) ¶
¶
* Check for rare maintenance tasks# UsingTheSconsBuildSystem#OtherTargets ¶
¶
* On the agreed-upon date, release the release candidate. ¶
* From that point on, only bugfixes and translation/documentation updates are allowed into trunk (trivial changes to image and sound data might be allowed, but be careful!) ¶
* Approximately one week after the release candidate, release the final build. ¶
¶
¶
### Releasing a build ¶
¶
As noted above, the steps for RC and final build should be the same, to flush out any problems with the process. ¶
¶
* Tag the build in our Subversion repository, using the remote svn cp command. ¶
* In the tagged version of the build ([__not__ in trunk), add build-specific patches# Change SConstruct to default to 'release' and 'build-NN[rc]' as BUILD_ID ¶
¶
* Prepare a release statement for news etc.; use release statements of previous releases as a template. ¶
* On SF.net, create a new release build-NN[rc] under the widelands package. ¶
* Export (using svn export) into a new directory called widelands, create a source tarball widelands-build-NN[rc].tar.bz2 from the unmodified directory. ¶
* Create binary packages for as many platforms as possible. Developers who are not the release manager are expected to contribute. ¶
* Upload all packages (source and binary) to the SF.net release, as they get packaged.# Upload the source tarball as early as possible, as some distro packagers need an official source tarball for reference. ¶
¶
* Allow roughly two days between tagging the build in our Subversion repository before posting news items. ¶
* Post news to:# SF.net project news ¶
* freshmeat.net (current project owner there is sigra) ¶
* Remember to send the email alert in File Release management on SF.net to people who are watching the widelands package ¶
* widelands-public & widelands-announce ¶
* wl.widelands.org homepage ¶
* Add group to tracker.
¶
¶
### Release cycle ¶
¶
The rough release cycle should work like this: ¶
¶
* Agree on a date for release and release candidate on widelands-public ¶
* From that point on, only bugfixes and translation/documentation updates are allowed into trunk (trivial changes to image and sound data might be allowed, but be careful!) ¶
* Find a release manager. ¶
* Feature & Goal check. Check the milestones targeted bugs and blueprints. ¶
* Check, that [ChangeLog](/changelog) is valid. This needs to be done in trunk. ¶
* Check, that DevelopersPage (authors) file is valid. This needs to be done in trunk. ¶
* Merge latest translations into trunk from lp:~sirver/widelands/translations ¶
* Branch from trunk, tag the release in the new branch. ¶
* Apply specific patches for this release. ¶
* Add a proper WL_RELEASE file. ¶
* Mark all bugs that have Fix Committed as Fix Released. Add as comment the name of this build. ¶
* Inform the packagers. ¶
* Use bzr export to export the source package (tar.bz2). Upload the source tarball as early as possible, as some distro packagers need an official source tarball for reference. ¶
* Mark the milestone as a release, upload the packages. ¶
* Approximately one week after the release candidate, release the final build. ¶
¶
¶
### Releasing a build ¶
¶
As noted above, the steps for RC and final build should be the same, to flush out any problems with the process. ¶
¶
* Prepare a release statement for news etc.; use release statements of previous releases as a template. ¶
* Announce the release: ¶
* Allow roughly two days between tagging the build in our Subversion repository before posting news items. ¶
* freshmeat.net (current project owner there is sigra) ¶
* widelands-public & widelands-announce & launchpad news & sf.net news. ¶
* wl.widelands.org homepage ¶
¶
¶
### Creating binary packages ¶
¶
#### Windows ¶
¶
For compilation of widelands-binary take a look at BuildingWidelandsUnderWindows and the README-file in [widelands-trunk]/build/win32 ¶
¶
Compilation of a Setup-file is done via
¶
#### Linux (directory independent) ¶
¶
These points are intended to help in creating a tarball that can easily be extracted and run in-place (e.g. in a user's home directory). For general Linux build info, see UsingTheSconsBuildSystem, among others. ¶
¶
Here are some things you need to be aware of: ¶
¶
* The locale directory must be correct; otherwise, Widelands will not find translations. Adding the parameters_install_prefix=. bindir=. datadir=. localedir=./locale_to the scons command line should work, but be sure to test the binary package before the actual release. ¶
* Some Linux distributions still don't have GLIBC 2.4 (i.e. Debian Etch). To support them, hack_build/scons-tools/scons_configure.py_and replace the compile flag -fstack-protector-all by -fno-stack-protector. You can check for GLIBC dependencies on the final executable using_strings widelands | grep GLIBC_. ¶
These are the suggested steps for building the package: ¶
¶
* Extract the release source package. ¶
* Build the widelands executable using SCons, but see the points above. ¶
* Perform some basic test (e.g. that translations are found). ¶
* Delete everything that is only relevant for source packages.# The following should be an exhaustive list of the files and subdirectories in the main Widelands directory:* campaigns ¶
* ChangeLog ¶
* COPYING ¶
* CREDITS ¶
* fonts ¶
* locale ¶
* maps ¶
* music ¶
* pics ¶
* sound ¶
* tribes ¶
* txts ¶
* widelands ¶
* worlds ¶
¶
* Delete SConscript files in subdirectories. ¶
¶
* Create the tarball. ¶
* Extract the tarball into a new directory and perform some basic tests before uploading. ¶
¶
#### Other ¶
¶
TODO: This section should contain (or point to) documentation concerning how to build binary packages for different platforms: ¶
¶
* Linux, installable (i.e..deb/.rpm packages that are integrated into the FHS hierarchy) ¶
* Mac OS X ¶
* others? ¶
* Delete all source releveant stuff; the remaining files in the main Widelands directory should be: campaigns ChangeLog COPYING CREDITS fonts locale maps music pics sound tribes txts widelands worlds ¶
¶