-
Notifications
You must be signed in to change notification settings - Fork 842
Track 1 Release Process
Joel Hendrix edited this page Jun 26, 2020
·
1 revision
- Merge any auto-generated PRs that are complete
- In SDK repo
git checkout latest
, pull upstream to ensure it’s up-to-date, then branch from it - Update Gopkg.toml file with latest go-autorest then run
dep ensure -update
- Update swagger_to_sdk_config.json with latest generator version (not strictly necessary but good to ensure we keep this in sync with the go-autorest version)
- Sync latest specs repo
- Run autorest on each config file
- CD to specs repo specification subdir
- get-childitem -recurse readme.md | foreach-object { write-host $_ ; autorest --use=@microsoft.azure/autorest.go@~2.1.99 $_ --go --multiapi --go-sdk-folder=D:\work\src\github.com\Azure\azure-sdk-for-go --use-onever }
- works but no parallelism so slow (~35 minutes)
- change this as required
- CD to profiles subdir in SDK repo and do
go generate ./...
to update all the profiles - Run
gofmt -w ./services
to format all generated content -
git add
all the things, submit PR to latest branch, when CI is green merge
- Do
git pull
on your latest to pick up the changes you just merged - Do
git checkout master
- Do
git merge latest
- Probably safe to take theirs for any conflicts but always verify
- Run API diff tool to get the list of affected packages (should be all due to generator changes)
- Run
apidiff changelog D:\work\src\github.com\Azure\azure-sdk-for-go\services <commit from last release> <HEAD commit>
- Run
- Update CHANGELOG.md with updated package info
- Update version/version.go with correct version info
- Commit all the things then create a PR to master
- Once PR is green push upstream
- Create a release in github (copy the CHANGELOG info you added into the notes)
- Once merged run the indexer tool (tools/indexer) to update godoc
- Merge any auto-PRs that are ready.
- Ensure your local master and latest branches are current.
- Run the “picker” tool (tools/picker) to merge non-breaking changes from latest into master.
- picker latest master
- Resolve any merge conflicts ( ignore conflicts in the profiles)
- Due to factors explained in https://github.com/Azure/azure-sdk-for-go/issues/2148, regenerate the profiles after the picker runs.
- Run the apidiff tool to generate a report between last release (e.g. v17.4.0) and HEAD (used to update CHANGELOG)
- Update CHANGELOG and version/version.go as required and commit
- Push to origin/master and create PR to upstream/master
- Once CI is green and PR approved push to upstream/master
- Run the indexer tool (tools/indexer) to update godocs