mirror of
https://github.com/owncloud/ocis
synced 2026-04-25 17:25:21 +02:00
2.7 KiB
2.7 KiB
Release Process
This document explains how to create releases in this project in each release scenario.
Currently there are 2 release procedures for this project:
Latest Release
This procedure is used when we want to create new release from the latest development edge (latest commit in the master branch).
The steps for this procedure are the following:
- Create a new branch from the
masterbranch with the following name format:pre_release/v{MAJOR}.{MINOR}.{BUILD}. For example, if we want to release for version0.6.0, we will first create a new branch from themastercalledpre_release/v0.6.0. - Update method
version.Version()to return the target version. - Update the
CHANGELOG.mdto include all the notable changes. - Create a new PR from this branch to
masterwith the title:Release v{MAJOR}.{MINOR}.{BUILD}(e.gRelease v0.6.0). - At least one maintainer should approve the PR. However if the PR is created by the repo owner, it doesn't need to get approval from other maintainers.
- Upon approval, the PR will be merged to
masterand the branch will be deleted. - Create new release from the
masterbranch. - Set the title to
Release v{MAJOR}.{MINOR}.{BUILD}(e.gRelease v0.6.0). - Set the newly release tag using this format:
v{MAJOR}.{MINOR}.{BUILD}(e.gv0.6.0). - Set the description of the release to match with the content inside
CHANGELOG.md. - Set the release as the latest release.
- Publish the release.
- Done.
Non-Latest Release
This procedure is used when we need to create fix or patch for the older releases. Consider the following scenario:
- For example our latest release is version
0.7.1which has the minimum go version1.18. - Let say our user got a critical bug in version
0.6.0which has the minimum go version1.15. - Due to some constraints, this user cannot upgrade his/her minimum go version.
- We decided to create fix for this version by releasing
0.6.1.
In this scenario, the procedure is the following:
- Create a new branch from the version that we want to patch.
- We name the new branch with the increment in the build value. So for example if we want to create patch for
0.6.0, then we should create new branch with name:patch_release/v0.6.1. - We create again new branch that will use
patch_release/v0.6.1as base. Let sayfix/handle-cve-233. - We will push any necessary changes to
fix/handle-cve-233. - Create a new PR that target
patch_release/v0.6.1. - Follow step
2-10as described in the Latest Release. - Publish the release without setting the release as the latest release.
- Done.