-
Notifications
You must be signed in to change notification settings - Fork 59
How to release
-
Make sure changelog contains a section for Unreleased version and section contains all user-visible breaking changes, new features and bugfixes, link related issues. But refrain yourself from being too formal.
-
Prepare a pull request with updated CHANGELOG. Rename 'Unreleased' version to the next version number with release date and add a new empty section 'Unreleased' with empty
Added
,Changed
,Removed
subsections. Every release has a semantic version. A semantic version has the formvMAJOR.MINOR.PATCH
. Given a version number MAJOR.MINOR.PATCH, increment the:- MAJOR version when you make incompatible API changes,
- MINOR version when you add functionality in a backwards-compatible manner, and
- PATCH version when you make backwards-compatible bug fixes.
(TBD) You can specify pre-release versions by appending a hyphen and dot separated identifiers (for example, v1.0.1-alpha
or v2.2.2-beta.2
). Normal releases are preferred by the go command over pre-release versions, so users must ask for pre-release versions explicitly (for example, go get example.com/[email protected]
) if your module has any normal releases.
- Prepare the new release draft with release notes. Usually, release notes contain a short description and a list of changes copy-pasted from changelog. Below is a template for new release notes:
## Breaking changes
Warn a user about breaking changes here.
## New features
* Short description (#xx).
## Bugfixes
* Short description (#xx).
See release notes in expirationd as an example. Set 'Release title' to a new release version number, and set 'This is a pre-release' checkbox. Feel free to share release notes draft with teammates to get valuable feedback.
- Get an LGTM for a pull request with updated changelog and merge it to a master branch.
- Pull master branch and create annotated tag with release version number:
git tag -a --cleanup=verbatim x.y.z
. Annotate is used for convenience and is usually containing release notes. Push changes:git push --tags
. Or, in case of any error, remove them and proceed again:git tag -d x.y.z
. - Set a proper Git tag in release draft, remove 'This is pre-release' and publish release.
- Send request for announcing to the Tarantool's marketing team.