Release Process¶
This is the general guide for releasing software packages at Teracy.
Starting¶
- Follow workflow, a releasing branch should be branched off from an origin branch that is ready to be released.
- The releasing branch should be named
releases/vX.X.X
. - For example: the
releases/v0.1.0
branch is branched off from thedevelop
branch. - Set the next iteration version for the
develop
branch. This will make sure there is no snapshot version conflict between thereleases
branch and thedevelop
branch. Moreover, thedevelop
branch will not be blocked. - Create an issue for DevOps team to create ci job if required.
- Create an issue for Blog team to preparing release announcement post.
Releasing¶
- Follow specific release process doccuments on each project, this should be done on your forked repository, then make pull requests when the release is ready.
- Remember that release branch should not introduce big changes.
- After each staging release, create an issue for release test campaign to make sure the release is stable enough and have good quality.
Ending¶
- Make sure that the tag step must be ready at least 3 days before the expected release date. Use UTC as standard reference time.
- Tag the release:
$ git tag -a v<version>
with thev<version> Release
message. For example,$ git tag -a v0.1.0
with thev0.1.0 Release
message. This message pattern could be later used for auto deployment, so make sure the message has the correct pattern. - Merge the tag release into the
master
branch, then the origin branch. This is specified on the project workflow. - Delete the released branch and we are done.
Note
Automation is one of our development philosophy, and we are working on it so that releasing should be automated and really easy to do.
See the releated issue: https://issues.teracy.org/browse/DEVOPS-21