Skip to content
Oleksii Vilchanskyi edited this page May 8, 2017 · 1 revision

Here we introduce the conventions between everybody with a write access to the repository.

Changelogs

Changelogs are written to CHANGELOG.md.

Changelogs are generated using GitHub Changelog Generator to give the big picture of all changes, but then extensively edited to match the desired look. As an example of what is the desired look, compare the outputs of the minimal example for github-changelog-generator given in the note below and git tag example from Tags section.

Changelogs are generated before tagging, since you will supply release notes as a tag's annotation. Therefore --future-release is used in the note below.

Note: do not just run github-changelog-generator. Firstly, it will automatically rewrite CHANGELOG. Instead, you will want to append the changelog manually after editing it. Secondly, it'll give you a lot of unneded information. Make sure to familiarize yourself with program's options. Minimal example: github_changelog_generator --since-tag v0.2.7 --future-release v0.2.8 --release-branch master.

Tags

Tags are done on any branch.

Annotated and GPG-signed tags (see git-tag(1)) are used. They are in form vA.B.C, where A,B,C are numbers 0-99 (example: v0.2.7).

Tags follow semver in general, but there are no strict rules. Listen to your heart.

Every tag contains a changelog as its annotation. See Changelogs and Releases for the details (example: git tag -l -n99 v0.2.8).

Note: while pushing new tags, remember not to do git push --tags as it pushes all tags. Always push only the newest tag (example: git push v0.2.8).

Releases

Releases are done only on master branch.

When we are ready to release the next iteration, the commit that bumps the VERSION file is tagged (example: git show v0.2.8).

Note: VERSION bump is the last commit in current iteration. Every next commit is included in the next iteration. Therefore make sure to commit all necessary changes before the bump.

Note: if there's no VERSION file in the root of the source code tree, this means a transition onto CMake has happened. Bump the numbers in the main CMakeLists.txt instead.

GitHub's release (e.g. release made through GitHub's UI or API) is created right after the tag is pushed.

Every release contains a changelog. See Changelogs for the details.

Clone this wiki locally