Skip to content
This repository has been archived by the owner on Apr 17, 2023. It is now read-only.

Latest commit

 

History

History
75 lines (53 loc) · 3.06 KB

RELEASE.md

File metadata and controls

75 lines (53 loc) · 3.06 KB

Releasing a New Version

We use goreleaser to release new packages. Once the commit we want to release at, is tagged, the release workflow executes, which will:

  • Generate the build artefacts
  • Create a new release in Github

Create and merge release prep PR

  • Create a new branch from puppetlabs/main called maint/main/release_prep_<VER> (e.g. maint/main/release_prep_0.5.0)

  • Ensure the CHANGELOG is up-to-date and contains entries for any user visible new features / bugfixes. This should have been added as part of each ticket's work, but sometimes things are missed:

    Compare the changes between main and the latest release tag:

    For example: https://github.com/puppetlabs/prm/compare/0.5.0..main

  • Rename [Unreleased] to the version we are releasing and create a new [Unreleased] header at the top of the CHANGELOG:

## [Unreleased]

## [0.5.0]

- [(GH-123)](https://github.com/puppetlabs/prm/issues/123) New feature in 0.5.0
- [(GH-567)](https://github.com/puppetlabs/prm/issues/567) Bug fix in 0.5.0
  • Update the links at the bottom of the CHANGELOG with the new release version and update the [Unreleased] tag to compare from the version we're releasing now against main:
[Unreleased]: https://github.com/puppetlabs/prm/compare/0.5.0..main
[0.5.0]: https://github.com/puppetlabs/prm/releases/tag/0.5.0
[0.4.0]: https://github.com/puppetlabs/prm/releases/tag/0.4.0
...
  • Add and commit these changes
  • Create a PR against main:
    • Tag: maintenance
  • Wait for the tests to pass
  • Request a colleage to review and merge

Tag merge commit

After the release prep PR has been merged, perform a git fetch and git pull and ensure you are on the merged commit of the release prep that has just landed in puppetlabs:main.

Tag the merged commit and push to puppetlabs:

git tag -a <VER> -m "<VER>"
git push <remote> <VER>

For example, assuming:

  • Locally configured remote repo name for puppetlabs: origin
  • Version: 0.5.0
git tag -a 0.5.0 -m "0.5.0"
git push origin 0.5.0

This should trigger the release worfklow to perform the release. Ensure the workflow completes, then move on to the final steps.

Perform post release installation tests

  • Ensure that there is a new release for the version we tagged in Releases, with:
    • The correct version
    • The expected number of build artefacts
  • Perform a quick test locally to ensure that the installation instructions in the README work and that the latest version is installed on your local system / test system
  • Repeat the above steps for the Telemetry free version