-
Notifications
You must be signed in to change notification settings - Fork 844
Track 2 Module Release Process
Joel Hendrix edited this page May 3, 2021
·
5 revisions
- Releases should ALWAYS happen in master. Any exceptions MUST be approved by the Go SDK team.
- Execute autorest using the track 2 code generator.
autorest --use=@autorest/go@4.0.0-preview.19 <path to>/readme.md --go --tag=<tag> --go-sdk-folder=<azure-sdk-for-go local path> --module=github.com/Azure/azure-sdk-for-go/<module> --modelerfour.lenient-model-deduplication --license-header=MICROSOFT_MIT_NO_VERSION --file-prefix="zz_generated_"
- 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
zz_generated_connection.go
(don't use vscode as it mucks with formatting). E.g. inconst 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.