Wiki:help/howtos/development/release_management

Release Management

/!\ Work In Progress /!\

Subversion Repository

The subversion repository of Freetz follows the recommended repository layout by the subversion maintainers. [1]

/
  trunk
  branches
  tags

The main development is done in the trunk. A branch could be created if a developer wants to work on a topic without the guaranteed stability of his checkins all the time. Also a branch is forked when a new stable release is planned. This branch holds the future major version (e.g. 1.2).

Mainly bugfixes should be commited to this branch. But security version bumps are allowed, too.

Later on the Releases 1.2.1, 1.2.2 and so on should be tagged from this branch.

Tagged versions should never be modified afterwards even if they seem nothing else like a branch from the repository view.

Checklists

In the following sections you can find the TODOs before branching and tagging.

Creating a new stable branch

  • Before creating a new stable branch:
    • Update CHANGELOG file
    • Merge changes from last stable-branch (if not done already)
    • Rename devel-section to new stable version
  • Copy branch
  • After creating the new branch:
    • Update version in .version file
    • Update Config.in (set VERBOSITY_LEVEL=0 and SUBVERSION_STRING=n)
    • Remove labor firmwares (Config.in and FIRMWARES file)
    • Add new devel-section to CHANGELOG file in trunk

Tagging a new release

TODO

GIT

As the popularity of GIT is growing rapidly, we provide a GIT mirror on github. At the moment only the trunk is mirrored to github because of the different repository layout it's difficult to sync all branches and tags. The mirror can be found here. [2]

Downloads

TODO

References

[1] Subversion Best Practices
[2] Freetz Github Mirror