Changes in ReleasingWidelands
Editor Comment
Formatting
Revision Differences of Revision 8
## 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 mostly the same as the steps for preparing the final release, to ensure that problems with the release problems are found with the release candidate. ¶
¶
### Step 1: First-Snow Feature Freeze ¶
¶
* Implement or reschedule targeted features for this build. ¶
* Maintenance stuff: ¶
* update developers ¶
* update changelog ¶
* check docs ¶
* merge translations ¶
* Agree on a date for first-snow feature freeze on widelands-public. ¶
* First-Snow feature freeze means: ¶
* no new features ¶
* no style fixes ¶
* no changes to campaigns ¶
* no new tagged strings ¶
* only minimal invasive bug fixes. That is if a bug can be fixed in a ¶
dirty-but-minimal-invasive change and in a correct way, the one that ¶
doesn't touch on any other code should be prefered and the correct way ¶
should go into a feature branch. ¶
¶
Development should not cease but continue in feature branches. No more stuff should go to trunk though. ¶
As soon as all targeted bugs are fixed, we continue with ¶
¶
### Step 2: Winter-Time feature freeze (The Real Feature freeze) ¶
¶
* When all targeted bugs are fixed, a date for winter-time feature freeze is ¶
set. This should be roughly two weeks from the last bug's fixings date. One week ¶
after this the build candidate release is to be scheduled. ¶
* Maintenance stuff: (all of the above) ¶
* Announce the feature freeze date on the homepage to give translators/graphic ¶
arists a chance to catch up. ¶
* This feature freeze extends to **everything**: from translations to media, ¶
code, style. So there is one week where everything should already be perfectly working before the ¶
build candidate just to make sure that no last minute things come up. ¶
* Obviously, new surfacing critical bugs are to be vanquished. Non critical bugs are to be defered to ¶
the next version. What's critical should be discussed on the mailing list if there is no consense. ¶
¶
### Step 3: Build candidate ¶
¶
* On the build candidate day the release does the following: ¶
* As soon as Windows, Mac and Linux binaries are available: ¶
¶
Approximately one week after the release candidate, the final release should follow: ¶
¶
### Step 4: Releasing ¶
¶
* Fix a date for releas on widelands public. ¶
* On the date: ¶
* As soon as Windows, Mac and Linux binaries are available: ¶
¶
### Step 5: Post Release ¶
¶
* Post-Release Mail to widelands-public: ¶
and more. ¶
¶
* Send cap-over-the-mill Mail to widelands-public about the next build ¶
¶
### 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 /build/win32/innosetup/Widelands.iss Script, which can be run with [Inno Setup](http://jrsoftware.org) -Compiler. ¶
¶
#### 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. ¶