(Initial planned release date: 2022-05-24)
Prepare release artifacts.
- Merge up and/or down as required.
- Outstanding changes from z branches should be merged up to main. Outstanding changes from "older" branches should be merged up through the branch to be released (e.g. 6.x -> main, if applicable).
- Any changes that have been resolved in "newer" branches but need to be pulled down to the release branch should be cherry-picked (e.g. backports to an LTS branch).
- This typically will have been done already, when the original changes went in, but good to double-check.
- Use the ticketmatch script at https://github.com/puppetlabs/ticketmatch to reconcile JIRA ticket states with commit messages since the last release.
- Run ticketmatch in the puppetserver repo WITHOUT the team value specified
- Run ticketmatch in the puppet repo WITH the team 'Froyo'
- Follow up with any reported problematic areas:
- Git commits in Jira: ensure these issues have the appropriate fix version and team or confirm that they are WIP and not targeted for the current release; non-SERVER tickets that landed in puppetserver can be ignored if they don't need a release note.
- Unresolved Jira tickets not in git commits: retarget these issues for the appropriate release and notify stakeholders.
- Unresolved Jira tickets found in git commits: ensure these issues have gone through CI and resolve them.
- Tickets missing release notes: add release notes to these issues or mark 'Not Needed'.
- Once the scope of the release has been confirmed and the correct SemVer version known, ensure the Versions and Dependencies page in Confluence is up to date.
- Once a release candidate has been determined, ensure it has promoted to the appropriate PE stream(s).
- If this release is destined to go out in a PE release, disable promotions between puppetserver and pe-puppet-server-extensions. This ensures that the puppetserver tag will ship in PE, while allowing work to continue on the FOSS branch.
- This can be done prior to tagging, since promotion via the release pipeline is enable separately.
- Example: https://github.com/puppetlabs/ci-job-configs/commit/a9b5ca9d3a87fc5740f2ceb1af08074523131516
- Tag and build packages.
- If this is an X or Y release, ensure the SNAPSHOT version in project.clj is updated with the new version. This is necessary for the tag/build/release job to work properly.
- Run the release pipeline for the maintenance branch being released from. This pipeline currently starts with "puppetserver (<branch>) Release 01: Tag & Deploy" and will automatically build, stage, and promote into PE. For example, this is the job for main.
- Verify tagged release version is built, tested, and artifacts exist at builds.delivery.puppetlabs.net.
- If you haven't already, notify the puppet-agent release lead that puppetserver 7.8.0 is built and ready for testing.