Doing an OpenTTD release

From OpenTTD
Jump to: navigation, search
External Links

OpenTTD GitHub
Contributing to OpenTTD - guidelines
OpenTTD Doxygen

General Reference

Coding style
Compiling OpenTTD
Add a setting
Add a squirrel function
Understanding the SaveGame handler
Bumping the savegame version
Doing an OpenTTD release

Language and Strings

Format of langfiles
Using OpenTTD strings
List of special strings

Window System

Using the window system
Colour codes that exist in OpenTTD
Adding a text box
Understanding the widget focus system
GUI style guide


The OpenTTD TCP protocol
The OpenTTD UDP protocol
Debugging desyncs
Server Admin Port development

Ingame Console

The console window
Console commands
Console variables
Using console scripting
Adding functions/commands to the console
Adding variables to the console
Console development history

Content APIs (modding frameworks)

Graphics and similar (NewGRF)
AI framework (NoAI)
GameScript framework (NoGO)

Other Reference

Map array (landscape grid)
Train acceleration

These things have to be done for each release:



  • backport all the fixes
  • run "make regression"
  • update all release version strings, especially in the following files:
    • readme.txt
    • os/debian/changelog
    • os/rpm/openttd.spec
    • os/windows/installer/install.nsi
    • os/os2/installer/make_installer.cmd
    • src/script/api/ai_changelog.hpp
    • src/script/api/game_changelog.hpp
  • update changelog.txt
    • sort order: Feature, Codechange, Fix then descending revision number
    • format: - (Feature|Codechange|Fix): ([<subsection (like OSX)>])? <message> ([FS#XXX])? (rXXXXX)
    • merge items that are solving a single goal
  • update the known-bugs.txt


  • Create Tag via GitHub.

Post release

  • wait for the farm
  • put a news message on the website
  • make a forum announcement
  • make a tweet @openttdnews
  • update the IRC topic
  • forwardport/merge the changes made in the prerelease
  • for non-RC releases:
    • create a wiki page and update the release history and template
    • update wiki templates: Template:Version
    • Add the new version to bananas minimal/maximum version list
    • poke package maintainers on IRC: blathijs (debian), heffer (fedora)

After creating a branch for a new version

  • Apply changes similar to PR#7319 (a67ee025294278f9113a1c8bcb5ee91d9e174f69)
    • Add a new (empty) AI compatibility script in bin/ai/
    • Add the new version to CheckAPIVersion in src/ai/ai_info.cpp + src/script/api/script_info_docs.hpp
    • Add the new version to src/script/api/ai_changelog.hpp
    • Update the version of regression in bin/ai/regression/regression_info.nut
    • Update the installers (debian/changelog, os2/installer/make_installer.cmd, rpm/openttd.spec, windows/installer/install.nsi)
    • Update the version in src/
    • Update the version in src/os/windows/
    • Add a note to src/saveload/saveload.h about which savegame version is used in the branch.
  • Backport changelog (and debian/changelog) to master branch
  • Update wiki pages: Template:VersionBox
Personal tools