Skip to content
Aschwin Marsman edited this page Mar 20, 2016 · 2 revisions

Introduction

Why write down the release procedure?

Simple: tbe is not just developed by Klaas any more, so we need to set processes and make sure that everyone understands where we are. It will prevent angry packagers, annoyed translators and such.

TODO: Figure out how to announce phase changes to everyone involved.

The development phases

Per milestone, we have several phases of development:

  • feature phase adding new features
  • bug fixing phase where no new features are added anymore
  • translations only phase where the strings in the C/C++ code are frozen and translators can catch up
  • packaging phase where even translations are frozen and new packages are being built
  • announcements phase where we announce the new version to the world (and probably start the new feature phase for the next release)

Feature phase

At the start of the feature phase, we have to triage the existing list of issues: what should make it into the next milestone and what should be postponed to future releases? Also: we might want to pull in features or bugs from future releases...

During feature phase, we will develop new features: new objects, etc.

Feature phase will usually overlap with the bug fixing phase.

Bug fixing phase

At some point, we'll stop developing new features and only allow bug fixes. All bug fixes should refer to an issue in the bug tracker. String changes are still allowed.

New levels can be added during bug fixing phase, but may not be deemed ready for a release.

During the bug fixing phase, bugs planned for a release may be moved to future releases.

Translations only phase

At some point, the code base is deemed stable enough to freeze the strings. Bug fixes are still allowed, but they are not allowed to adjust strings any more. This gives translators time to catch up. This phase will be announced to the translators over the Transifex messaging system.

Typically, this phase should last for less than a week.

Packaging phase

Packaging consists of several sub-phases, where code is tagged, releases are built and (likely) build scripts are adjusted. Once all packages are uploaded to the release page of github, we're ready to go.

Typically, this phase should last for less than a week.

Announcements phase

In the announcements phase, we write the blog post linking to the new downloads and listing the major new features and bugs squashed. We publish the blog post and notify various websites (todo: add list here).

Typically, this phase should last for less than a week.