Use the ticketmatch script to ensure all tickets referenced in the commit log have a bug targeted at the release, and ensure all tickets targeted at the release have a corresponding commit.
- cd ~/work
- git clone https://github.com/puppetlabs/ticketmatch
- cd ~/work/puppet # or whatever the repo is you're releasing from
- ruby ../ticketmatch/ticketmatch.rb
Enter Git From Rev: 4.1.0
Enter Git To Rev: |master| stable
Enter JIRA project: |PUP|
Enter JIRA fix version: PUP 4.2.0
The output may contain the following headers:
COMMIT TOKENS NOT FOUND IN JIRA (OR NOT WITH FIX VERSION OF ...)
Lists git commits that don't have a corresponding ticket, at least not for the specified fix version. If the commit has a ticket, but the ticket is not targeted correctly, then the ticket's fixVersion should be updated. This can frequently happen if a ticket is initially targeted for a future release (master), but is pulled into an earlier release (stable), but the ticket's fixVersion is not updated.
UNRESOLVED ISSUES NOT FOUND IN GIT
Lists JIRA tickets that have a matching fixVersion, e.g. PUP 4.2.0, but none of the commits have the JIRA ticket in the subject. If the JIRA ticket really is fixed in the release, e.g. the JIRA ticket was typo'ed in the git commit subject, then leave the ticket as is. If the JIRA ticket should not be fixed in the release, e.g. it was originally targeted for the release, but was later bumped out, then update the ticket's fixVersion accordingly, e.g. PUP 4.3.0.
UNRESOLVED ISSUES FOUND IN GIT
Lists JIRA tickets have a git commit, but the ticket is not resolved. Usually this is because the ticket is still passing CI or going through manual validation. It can also occur if a fix is made, but a problem is encountered, and the ticket is reopened. If that happens, make sure the ticket reflects reality, so it's clear the ticket is not actually fixed in the release.