There's still a lot of manual work involved in each release. These are the steps I followed for the opentelemetry v0.3.0 release :
1. Create a new empty release branch
Cut a new release branch from master/HEAD, specify the minor version, e.g.v0.3a.x
This branch will be used for all minor releases, hence the .x
Push this branch to upstream
2. Create a PR for version number and changelog updates
Cut another new branch from the release branch, specify micro version, e.g.v0.3a0-release
Update version numbers from "dev" to "X" (or "aX" in the case of alpha releases)
Update changelogs to include release date, new release name
Check for changes from last release that should have been included in changelogs, but weren't
Open a PR targeting the release branch (see Update versions and changelogs for 0.3a release #328 )
Once this PR is merged, we'll create the GH release from the release branch
3. Make the same changes on master
Cut a new branch from master, e.g. v0.3a0-master-update
Update the version number, make it a "dev" version greater than release version number, e.g. 0.4.dev0
Cherry-pick changelog changes step 2
Open a PR targeting master (see Pick up changelogs from #328, update dev version #331 )
4. Create a new GH release from the release branch
Create the GH release from the release branch, using a new tag for this micro version, e.g. v0.3.0
Copy the changelogs from all packages that changed into the release notes (and reformat to remove hard line wraps)
5. Check that packages were uploaded to PyPI
This should be handled automatically on release by the publish action from #247 .
If for some reason the action failed, do it manually:
To avoid pushing untracked changes, check out the repo in a new dir
Switch to the release branch (important so we don't publish packages with "dev" versions)
Build distributions with ./scripts/build.sh
Delete distributions we don't want to push (e.g. testutil)
Push to PyPI as twine upload --skip-existing --verbose dist/*
Double check PyPI!
See also #252 and #247 .
There's still a lot of manual work involved in each release. These are the steps I followed for the opentelemetry v0.3.0 release:
1. Create a new empty release branch
master/HEAD, specify the minor version, e.g.v0.3a.x.x2. Create a PR for version number and changelog updates
v0.3a0-release3. Make the same changes on master
v0.3a0-master-update0.4.dev04. Create a new GH release from the release branch
v0.3.05. Check that packages were uploaded to PyPI
This should be handled automatically on release by the publish action from #247.
If for some reason the action failed, do it manually:
./scripts/build.shtestutil)twine upload --skip-existing --verbose dist/*See also #252 and #247.