-
Notifications
You must be signed in to change notification settings - Fork 108
Commit
Signed-off-by: Abhinandan Purkait <[email protected]>
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,39 +1,39 @@ | ||
# Release Process | ||
zfs-localpv follows a monthly release cadence. The scope of the release is determined by contributor availability. The scope is published in the [Release Tracker Projects](https://github.com/orgs/openebs/projects/10). | ||
zfs-localpv follows a on quaterly release cadence for minor version releases. The scope of the release is determined by contributor availability. The scope is published in the [Release Tracker Projects](https://github.com/orgs/openebs/projects/78). | ||
|
||
## Release Candidate Verification Checklist | ||
## Prerelease Candidate Verification Checklist | ||
|
||
Every release has release candidate builds that are created starting from the third week into the release. These release candidate builds help to freeze the scope and maintain the quality of the release. The release candidate builds will go through: | ||
Every release has a prerelease tag that gets created on branch creation, explained further below. This prerelease tag is meant for all the below action items throughout the release process: | ||
- Platform Verification | ||
- Regression and Feature Verification Automated tests. | ||
- Exploratory testing by QA engineers | ||
- Strict security scanners on the container images | ||
- Upgrade from previous releases | ||
- Exploratory testing by QA engineers. | ||
- Strict security scanners on the container images. | ||
- Upgrade from previous releases. | ||
- Beta testing by users on issues that they are interested in. | ||
- Dogfooding on OpenEBS workload and e2e infrastructure clusters. | ||
|
||
If any issues are found during the above stages, they are fixed and a new release candidate builds are generated. | ||
If any issues are found during the above stages, they are fixed and the prerelease tag is overidden by the newer changes and are up for above action items again. | ||
|
||
Once all the above tests are completed, a main release tagged image is published. | ||
Once all the above tests are completed, a main release is created. | ||
|
||
## Release Tagging | ||
|
||
zfs-localpv is released as container image with versioned tag. | ||
zfs-localpv is released with container images and a respective helm chart as the only recommended way of installation. Even though the [zfs-operator](./deploy/zfs-operator.yaml) is also published, it is generated by templating the helm chart itself. | ||
|
||
Before creating a release, the repo owner needs to create a separate branch from the active branch, which is `develop`. Name of the branch should follow the naming convention of `v.0.7.x` if release is for 0.7.0. | ||
Before creating a release, the repo owner needs to create a separate branch from the active branch, which is `develop`. Name of the branch should follow the naming convention of `release/2.7` if release is for `2.7.x`. | ||
|
||
Once the release branch is created, changelog from `changelogs/unreleased` needs to be moved to release specific folder, if release branch is `v0.7.x` then folder will be `changelogs/v0.7.x`. | ||
Upon creation of a release branch ex. `release/2.7`, two automated PRs open up to change the chart versions of the charts in `release/2.7` branch to `2.7.0-prerelease` and `develop` to `2.8.0-develop`. Post merge of these two PRs, the `2.7.0-prerelease` and `2.8.0-develop` tags are pushed to respective docker registries and also the respective helm charts against these tags are published. The prerelease versions increment via automated PRs on every release creation. For example once `2.7.0` is published a `2.7.1-prerelease` image and chart would be published to allow testing of further patch releases and so on. | ||
|
||
The format of the release tag is either "Release-Name-RC1" or "Release-Name" depending on whether the tag is a release candidate or a release. (Example: 0.7.0-RC1 is a GitHub release tag for zfs-localpv release candidate build. 0.7.0 is the release tag that is created after the release criteria are satisfied by the zfs-localpv builds.) | ||
The format of the release tag follows semver versioning. The final release tag is of format `X.Y.Z` and the respective prerelease and develop tags are `X.Y.Z-prerelease` and `X.Y+1.0-develop`. | ||
|
||
Once the release is triggered, Travis build process has to be monitored. Once Travis build passes, images are pushed to docker hub and quay.io. Images can be verified by going through docker hub and quay.io. Also, the images shouldn't have any high level vulnerabilities. | ||
Once the release is triggered, the freezed code undergoes stages as such linting, unit-tests and bdd-tests and the code coverage is updated accordingly. Post the former jobs, the image build is triggered with the specified tag, the chart is run though scripts that update the tags at places whereever deemed necessary and eventually publish the images and respective helm charts. | ||
|
||
Images are published at following location : | ||
The helm charts are hosted on github deployments for the corresponding releases. | ||
|
||
Images and Helm charts are published at following location : | ||
|
||
https://quay.io/repository/openebs/zfs-driver?tab=tags | ||
https://hub.docker.com/r/openebs/zfs-driver/tags | ||
https://github.com/openebs/zfs-localpv/tree/gh-pages | ||
|
||
Once a release is created, update the release description with the changelog mentioned in `changelog/v0.7.x`. Once the changelogs are updated in the release, the repo owner needs to create a PR to `develop` with the following details: | ||
1. update the changelog from `changelog/v0.7.x` to `zfs-localpv/CHANGELOG.md` | ||
2. If a release is not an RC tag then PR should include the changes to remove `changelog/v0.7.x` folder. | ||
3. If a release is an RC tag then PR should include the changes to remove the changelog from `changelog/v0.7.x` which are already mentioned in `zfs-localpv/CHANGELOG.md` as part of step number 1. | ||
Once a release is created:- | ||
1. The repo owner updates the release page changelog with all the necessary content. | ||
2. The repo owner updates the [CHANGELOG.md](./CHANGELOG.md) file with the changelog for the release. |
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.