-
Notifications
You must be signed in to change notification settings - Fork 901
Track 2 Module Release Process
Joel Hendrix edited this page Jun 27, 2020
·
5 revisions
- Releases should ALWAYS happen in master. Any exceptions MUST be approved by the Go SDK team.
- Update
azcore
to the latest version.go get -u github.com/Azure/azure-sdk-for-go/sdk/azcore@latest
- Run the apidiff tool to detect any breaking changes. Breaking changes REQUIRE the major version number to be bumped and the major version suffix to be added/updated in
go.mod
. - Determine the version number of the module as per semver 2.0 rules.
- For a new module, the version will be v1.0.0. If it's a preview, the version will be v0.1.0.
- When updating an existing module, determine the latest module version by looking at the git tags for that module.
git tag -l sdk/<module>/v*
- If updating a GA'ed module (i.e. v1.0.0+):
- For changes that do not impact public surface area (e.g. method bodies, comments), increment the patch version.
- For changes that add public surface area (e.g. new APIs), increment the minor version and reset the patch version to zero.
- For changes that modify public surface area (e.g. adding a new parameter to an API), increment the major version and reset the minor/patch versions to zero.
- If updating a preview module (i.e. v0.1.0+):
- For all non-breaking changes, increment the patch version.
- For all breaking changes, increment the minor version and reset the patch version to zero.
- If the preview module is being promoted to GA, set the version to v1.0.0.
- Update the version number in client.go (don't use vscode as it mucks with formatting). E.g. in
const telemetryInfo = "azsdk-go-armcompute/<version>"
replace<version>
with the version number determined earlier. - Execute the following tools:
go fmt .
go build
go vet
-
go test
(if applicable) go mod tidy
- Execute the
apidiff
tool using thechangelog
command to generate the CHANGELOG.md. - Create a PR with the changes, submit, and merge once all requirements have been satisfied.
- Create a module version tag.
git tag sdk/<module>/<version>
where<module>
is the module's path under thesdk
directory and<version>
is the version number determined earlier. Once the tag is created the module is released. - Visit
https://godoc.org/github.com/Azure/azure-sdk-for-go/sdk/<module>
to generate/update documentation on godoc.org.