diff --git a/docs/RELEASE.md b/docs/RELEASE.md new file mode 100644 index 000000000..b49c6227b --- /dev/null +++ b/docs/RELEASE.md @@ -0,0 +1,69 @@ +# Dapr .NET SDK Release Process + +> This information is intended for SDK maintainers. SDK users can ignore this document. + +## Publish a SDK Release Candidate (RC) + +RC release versions canonically use the form `-rc` where `` represents the overall release version (e.g. `1.0`) and `` represents a specific iteration of RC release (e.g. `01`, `02`, ..., `0n`). + +Assume we intend to release `` (e.g. `1.0-rc01`) of the SDK. + +1. Create a release branch (if not already done) from `master` + + ```bash + git checkout -b release- + ``` + +1. Push the release branch to the `dotnet-sdk` repo (i.e. typically `origin`) + + ```bash + git push origin v + ``` + +1. Create a tag on the release branch for the RC version + + ```bash + git tag v-rc + ``` + +1. Push the tag to the `dotnet-sdk` repo (i.e. typically `origin`) + + ```bash + git push origin v-rc + ``` + + > This final step will generate a build and automatically publish the resulting packages to NuGet. + +## Publish a SDK Release + +Official (i.e. supported) release versions canonically use the form `` where `` represents the overall release version (e.g. `1.0`). + +1. Create a release branch (if not already done) from `master` + + ```bash + git checkout -b release- + ``` + +1. Push the release branch to the `dotnet-sdk` repo (i.e. typically `origin`) + + ```bash + git push origin v + ``` + +1. Create a tag on the release branch for the release + + ```bash + git tag v + ``` + +1. Push the tag to the `dotnet-sdk` repo (i.e. typically `origin`) + + ```bash + git push origin v + ``` + + > This final step will generate a build and automatically publish the resulting packages to NuGet. + +## NuGet Package Publishing + +Publishing to NuGet requires keys generated by a member of the Dapr organization. Such keys are added as a [GitHub Action secret](https://github.com/dapr/dotnet-sdk/settings/secrets/actions) with the name `NUGETORG_DAPR_API_KEY` These keys expire and therefore must be maintained and the GitHub Actions secret updated periodically.