'''Note: See ReleaseProcessDraft for a more specific (and updated) list.''' Brief approximation: * Ensure Alpha name and number have been updated in [source:ps/trunk/binaries/data/mods/public/gui/session//top_panel/label.xml label.xml], [source:ps/trunk/binaries/data/mods/public/gui/pregame/mainmenu.xml mainmenu.xml], [source:ps/trunk/binaries/data/mods/public/mod.json mod.json], and [source:ps/trunk/source/ps/Pyrogenesis.cpp Pyrogenesis.cpp]. * Feature freeze + regenerate the translation templates via [source:ps/trunk/source/tools/i18n/updateTemplates.py updateTemplates.py] and the translations (for backup purposes) via [source:ps/trunk/source/tools/i18n/pullTranslations.py pullTranslations.py] * Test for release blocking bugs (minimum 5 days, promised to the translators) * Commit freeze + pull final version of translations for this version and check for vandalism * Edit the [source:/ps/trunk/source/tools/dist/remove-incomplete-translations.sh remove-incomplete-translations.sh] script to include all languages that need to be in the release (Include only >90% languages supported by our fonts and font system - see progress [https://www.transifex.com/projects/p/0ad/ on Transifex]) * Test some more * Change the MUC room for the lobby in [source:ps/trunk/binaries/data/config/default.cfg default.cfg] and on the server. (Maybe reset the rankings) * Change the bot's welcome message to notify users that a new version is available. * Check that SVN compiles and runs on Linux * Check that SVN compiles and runs on Linux (Gentoo) with `--without-pch` * Check that SVN compiles and runs on Windows * Check that SVN compiles and runs on OS X * Run Windows autobuilder (or build manually with VS 2008 if autobuild is down - update [source:/ps/trunk/build/svn_revision svn_revision.txt] first!) * Update public trunk checkout * Ensure it is clean (`svn st --no-ignore`) * Check that debug/unnecessary files are excluded from the Windows installer script [source:/ps/trunk/source/tools/dist/0ad.nsi source/tools/dist/0ad.nsi] * Run [source:/ps/trunk/source/tools/dist/build.sh source/tools/dist/build.sh] * Build OS X app bundle: * Requires OS X and Xcode * Read documentation in [source:ps/trunk/build/workspaces/build-osx-bundle.sh build-osx-bundle.sh], update options if necessary (defaults work with Xcode 4.2+ and Lion) * Run `build-osx-bundle.sh --release`, by default it creates a 64-bit 10.7+ compatible bundle, `~/0ad-export/0ad.app` * Package app into DMG (as outlined [http://mac101.net/content/how-to/how-to-create-dmg-art-for-fancy-application-installations/ here] and [http://el-tramo.be/guides/fancy-dmg/ here]) * Use Disk Utility to create an uncompressed DMG large enough to hold `0ad.app` * Set background image, `build/resources/dmgbackground.png` * Copy `0ad.app` and Applications shortcut, arrange icons, set folder view options as desired * Create a bzip2-compressed DMG with [http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/hdiutil.1.html hdiutil]: `hdiutil convert 0ad.dmg -format UDBZ -o 0ad-[version]-alpha-osx64` * Test on Windows: * Delete `%localappdata%\0ad\cache` * Extract release * Run `pyrogenesis.exe`, check everything seems to work * Run `Atlas.bat`, check everything seems to work * Delete `%localappdata%\0ad\cache` * Build Debug version, check everything seems to work * Run `test` project * Test on Linux: * Delete `~/.cache/0ad` * Extract release * Build with `config=debug`, run `test_dbg`, run game, run editor * Build with `config=release`, run `test`, run game, run editor * Test on OS X: * Delete `~/Library/Caches/0ad/` * Mount release DMG * Run 0ad and test that it works on e.g. Snow Leopard and Lion * Test Atlas (main menu > Tools & Options > Scenario Editor) * Delete `~/Library/Caches/0ad/` * Update OBS packages [https://build.opensuse.org/package/show?package=0ad&project=games 0ad], [https://build.opensuse.org/package/show?package=0ad-data&project=games 0ad-data]: * Update version numbers in `0ad.changes`, `0ad.dsc`, `0ad.spec` * Replace `.tar.gz` with new version * Update [https://launchpad.net/~wfg/+archive/0ad PPA packages] (ping ricotz on IRC): * Find an Ubuntu machine. * Copy `source/tools/dist/ubuntu/` into a place for packaging * Update `changelog` files * Update `build.sh` version number * Run `build.sh`. (Optionally disable the `debuild -b` lines because they're not needed, we only require the source packages.) * `dput ppa:wfg/0ad ` * On error goto beginning * Upload releases to http://releases.wildfiregames.com/ * Verify sha1sums on server * Upload to Sourceforge: {{{ rsync -v --progress -e ssh 0ad-${SVNREV}-*.{exe,gz,xz} philiptaylor,zero-ad@frs.sourceforge.net:/home/frs/project/z/ze/zero-ad/releases/ }}} * Update release redirects to point to SF * Update release pages (links, file sizes, checksums?): * LatestReleaseWindows * LatestReleaseMac * LatestReleaseLinux * Announce release: * Official website http://play0ad.com * Forum * Update Alpha version on official website (Settings > General > Tagline) * Update download pages on official website (http://play0ad.com/download/mac, http://play0ad.com/download/win, http://play0ad.com/download/source) * Official social media platforms ([http://www.facebook.com/play0ad Facebook], [https://twitter.com/play0ad Twitter], [https://plus.google.com/105243244628275530704/posts Google+].) * ModDB/IndieDB * Freecode * Freegamer * E-mail regular bloggers/reporters * ? * Profit == Building on EC2 Sign up to EC2. Create an EC2 instance (Ubuntu 14.04, 64-bit, c3.xlarge). ssh into it (as user 'ubuntu'). {{{ screen sudo apt-get update sudo apt-get upgrade sudo apt-get install zip cmake nsis p7zip-full # Standard dependencies for building the game: sudo apt-get install build-essential libboost-dev libboost-filesystem-dev \ libboost-signals-dev libcurl4-gnutls-dev libenet-dev libminiupnpc-dev \ libnspr4-dev libnvtt-dev libogg-dev libopenal-dev libpng-dev \ libsdl2-dev libvorbis-dev libwxgtk2.8-dev libxcursor-dev libxml2-dev \ subversion zlib1g-dev libgloox-dev libicu-dev sudo mkdir /mnt/0ad sudo chown ubuntu:ubuntu /mnt/0ad cd /mnt/0ad svn co http://svn.wildfiregames.com/public/ps/trunk/ 0ad cd 0ad/build/workspaces ./update-workspaces.sh -j4 cd gcc make -j4 mkdir /mnt/0ad/dist cd /mnt/0ad/dist cp ../0ad/source/tools/dist/build.sh . cp ../0ad/source/tools/dist/remove-incomplete-translations.sh . nano build.sh # change PREFIX ./build.sh rsync -avP 0ad-*.{tar.gz,tar.xz,exe} philip@zaynar.co.uk:/var/www/releases/rc/ }}} Then delete the EC2 instance so you don't keep paying for it. The whole process takes about 2 hours.