Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Automate release branch creation #374

Closed
c24t opened this issue Jan 23, 2020 · 5 comments
Closed

Automate release branch creation #374

c24t opened this issue Jan 23, 2020 · 5 comments
Labels
build & infra Issues related to build & infrastructure. release:after-ga To be resolved after GA release

Comments

@c24t
Copy link
Member

c24t commented Jan 23, 2020

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.

@c24t c24t added the build & infra Issues related to build & infrastructure. label Jan 23, 2020
@c24t
Copy link
Member Author

c24t commented Apr 16, 2020

New since the 0.5b0 release: move the "stable" tag to the head of the latest release branch.

@ocelotl
Copy link
Contributor

ocelotl commented Apr 16, 2020

Handling changelogs by hand can be a very tedious task, may I recommend gitchangelog?

@codeboten
Copy link
Contributor

it looks like #247 was completed but the github publish actions have been failing. Is the publishing still done manually?

@c24t
Copy link
Member Author

c24t commented Apr 22, 2020

I fixed the PyPI auth issue, step 5 should happen automatically on new releases now. We were doing it manually before.

@c24t c24t added this to the Automated Releases milestone Apr 30, 2020
c24t pushed a commit that referenced this issue May 11, 2020
)

The prepare-release workflow is triggered when a new release/<version> branch
is created. This workflow parses the <version> number from the branch name and
updates version.py/changelog.md files accordingly. It then creates a pull
request with those changes.

This addresses part of #374.

Co-authored-by: Mauricio Vásquez <[email protected]>
owais pushed a commit to owais/opentelemetry-python that referenced this issue May 22, 2020
…pen-telemetry#615)

The prepare-release workflow is triggered when a new release/<version> branch
is created. This workflow parses the <version> number from the branch name and
updates version.py/changelog.md files accordingly. It then creates a pull
request with those changes.

This addresses part of open-telemetry#374.

Co-authored-by: Mauricio Vásquez <[email protected]>
@codeboten codeboten added the release:after-ga To be resolved after GA release label Sep 24, 2020
srikanthccv pushed a commit to srikanthccv/opentelemetry-python that referenced this issue Nov 1, 2020
* feat(plugin-http): handle client errors

closes open-telemetry#347

Signed-off-by: Olivier Albertini <[email protected]>

* fix: handling error in line with spec

Signed-off-by: Olivier Albertini <[email protected]>
@lzchen
Copy link
Contributor

lzchen commented Dec 18, 2020

We have decided to release off of master and use tags instead.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build & infra Issues related to build & infrastructure. release:after-ga To be resolved after GA release
Projects
None yet
Development

No branches or pull requests

4 participants