diff --git a/README.md b/README.md index 6b2c30edb..cbe310e2b 100644 --- a/README.md +++ b/README.md @@ -742,7 +742,9 @@ See the [Reference Guide](https://docs.dapr.io/reference/cli/) for more informat ## Contributing to Dapr CLI See the [Development Guide](https://github.com/dapr/cli/blob/master/docs/development/development.md) to get started with building and developing. +## Release process for Dapr CLI +See the [Release Guide](https://github.com/dapr/cli/blob/master/docs/development/release.md) for complete release process for Dapr CLI. ## Code of Conduct Please refer to our [Dapr Community Code of Conduct](https://github.com/dapr/community/blob/master/CODE-OF-CONDUCT.md) diff --git a/docs/development/release.md b/docs/development/release.md new file mode 100644 index 000000000..87684659e --- /dev/null +++ b/docs/development/release.md @@ -0,0 +1,45 @@ + +# Release Guide + +This document describes how to release Dapr CLI along with associated artifacts. + +## Prerequisites + +Only the repository maintainers and release team are allowed to execute the below steps. + +## Pre-release build + +Pre-release build will be built from `release-.` branch and versioned by git version tag suffix e.g. `-rc.0`, `-rc.1`, etc. This build is not released to users who use the latest stable version. +**Pre-release process** +1. Create a PR to update the `Dapr runtime` and `Dapr dashboard` pre-release versions in workflow and tests files wherever applicable, and merge the PR to master branch. For example, please take a look at this PR - https://github.com/dapr/cli/pull/1019. Please note that this PR is just for reference and only reflects the absolute minimum number of file changes. These versions update could lead to some other changes also. + +2. Create branch `release-.` from master and push the branch. e.g. `release-1.11`. You can use the github web UI to create the branch or use the following command. + +```sh +$ git checkout master && git reset --hard upstream/master && git pull upstream master +$ git checkout -b release-1.11 +$ git push upstream release-1.11 +``` +3. Add pre-release version tag (with suffix -rc.0 e.g. v1.11.0-rc.0) and push the tag. + +```sh +$ git tag "v1.11.0-rc.0" -m "v1.11.0-rc.0" +$ git push upstream v1.11.0-rc.0 + +``` +4. CI creates the new build artifacts. +5. Test and validate the functionalities with the specific version. +6. If there are regressions and bugs, fix them in release-* branch. e.g `release-1.11` branch. +7. Create new pre-release version tag (with suffix -rc.1, -rc.2, etc). +8. Repeat from 5 to 7 until all bugs are fixed. + + +## Release the stable version to users + +> **Note**: Make sure stable versions of `dapr runtime` and `dapr dashboard` are released before releasing the CLI and update their references in workflow and tests files wherever applicable. + +Once all bugs are fixed, stable version can be released. Create a new git version tag (without the suffix -rc.x e.g. v1.11.0) and push the tag. CI will create the new build artifacts and release them. + +## Release Patch version + +Work on the existing `release-.` branch to release a patch version. Once all bugs are fixed, create a new patch version tag, such as `v1.11.1-rc.0`. After verifying the fixes on this pre-release, create a new git version tag such as `v1.11.1` and push the tag. CI will create the new build artifacts and release them.