Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Automate release branch creation #374

Closed
@c24t

Description

@c24t

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    build & infraIssues related to build & infrastructure.release:after-gaTo be resolved after GA release

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions