Releases/Create Release

From UFO:AI

< Releases(Redirected from Coding/Create Release)

Contents

Release guidelines

This is a guideline for release maintainer and main-developers how to create a release from SVN.

This is still TODO and needs major cleanup.

Main developers

  • Decide what version number the release needs. See #Version number system below.
  • Check if all locations that contain the version number are up to date. If not, update the files so they reflect the current version number.
    • src/qcommon/qcommon.h (Linux)
      #define UFO_VERSION x.y
    • build/projects/ufo.dev build/projects/ufo_ded.dev (Windows)
      FileVersion=x.y
      ProductVersion=x.y
      TODO Major=0 Minor=1 Release=2 Build=0
    • TODO: more locations?
  • Create svn tag with current version-number. See Releases/SVN below.
  • Update Changelog
  • Wait for #Release maintainers to finish their work and uplaod to sourceforge download area.
  • Update News section on the homepage with the release infomations and available release-files.
  • Create new tags for the bug tracker.

Release maintainers

  • Checkout the version tag from SVN. See Releases/SVN.
  • Compile (only for binary packages)
    • Note: If you compile in release mode: use preprocessor -DNDEBUG to disable all asserts.
  • Copy additional data into directory tree or create missing files:
    • Music - Download the music (TODO: link) and put it into the base/music/ directory.
    • Maps - Type make in base/maps/ to compile all of the maps (This takes a long time. we should find a solution to that. --Hoehrer)
    • Language files - Type make lang inside src/ to translate the gettext files
    • TODO: more data?
  • Remove SVN-only files (e.g ".svn" directories)
  • Edit default.cfg (and other configuration files) to fit your targeted platform (i.e. Linux, Windows, etc...). For source distributions please leave the configuration files as-is.
  • TODO: is something missing?
  • Create package/installer. See Packaging for more info on that.
  • Name your package/installer-file after the following filename convention (replace #VERSION# with a lowercase version number). The .tar.gz could also be any other compression format such as .zip or .tar.bz2):
    • ufoai-#VERSION#-macosx.dmg - MacOSX
    • ufoai-#VERSION#-win32.exe - Windows 32bit
    • ufoai-#VERSION#-linux.tar.gz - Linux (TODO 32/64bit systems?)
    • ufoai-#VERSION#-src.tar.gz - Source
  • Submit the package/installer to a project maintainer or upload it yourself.

Others

Version number system

Releases/Branch-names Release Candidates Development Releases
x.y x.y-RCz x.y-devz

Development releases (unstable)

This version numbers are used for unstable (pre-RC) releases for beta-testing.

  • 2.1-devz development release for 2.1
  • 2.2-devz development release for 2.2
  • 3.0-devz development release for 3.0
  • etc...
x - Is the major version number of the release.
y - Is depends on the minor verison number of the release.
z - Is the number of the dev-release candidate starting with 1.

Release candidates (mostly stable)

This version numbers are used for pre-stable releases of the code. i.e the code shoudl be feature-frozen.

Note: do not use uppercase letters when using this in filenames & SVN.

  • 2.0-RCz release candidate for 2.0
  • 2.1-RCz release candidate for 2.1
  • 3.0-RCz release candidate for 3.0
  • etc...
x - Is the major version number of the release.
y - Is depends on the minor version number of the release.
z - Is the number of the Release Candidate starting with 1.

Release versions (stable)

This version numbers are used for stable releases in the branches.

  • 2.0
  • 2.1
  • 2.2
  • 3.0
  • 3.1
  • etc...
x - Is the same as in the Release candidates. This number will most probably only changed if some major refractory of the code is made.
y - Starts with 0 for the first stable release and is incremented for each following release.
z - unused

Version tree

For each Release and Release Candidate we'll create a 'tag' in SVN so it can be accessed again later on.

See the existing tags for more.

Legacy info: There are also some branches that may be of interest, but are not used currently.

project-navigation