Currently, we can only make one smithy-rs release per day, and this restricts our ability to respond to urgent issues. This PR lifts that limitation, allowing us to make multiple releases per day.
Description
The core of this change is in the render subcommand of changelogger. When generating a date-based release tag, it now checks for existing tags on the same day. If a tag already exists, the render subcommand will append a numerical suffix to ensure the new tag is unique.
In fact, appending a numerical suffix to make a release tag unique has been a workaround in our release pipeline (outside the smithy-rs repository) for quite some time. With the changes in this PR, we can eliminate that temporary solution from the release pipeline.
Now that changelogger requires access to previous tags, CI steps that run generate-smithy-rs-release need to checkout the smithy-rs repository with all tags (fetch-depth: 0 is for that purpose).
Testing
[x] Added unit tests for changelogger
[x] Successfully bumped the release tag in dry-run (based on this dummy change to trick changelogger into thinking that it has to bump a release tag)
[x] Successfully bumped the release tag in the release pipeline (without the temporary hack we placed last year)
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.
Motivation and Context
Currently, we can only make one
smithy-rs
release per day, and this restricts our ability to respond to urgent issues. This PR lifts that limitation, allowing us to make multiple releases per day.Description
The core of this change is in the
render
subcommand ofchangelogger
. When generating a date-based release tag, it now checks for existing tags on the same day. If a tag already exists, therender
subcommand will append a numerical suffix to ensure the new tag is unique.In fact, appending a numerical suffix to make a release tag unique has been a workaround in our release pipeline (outside the
smithy-rs
repository) for quite some time. With the changes in this PR, we can eliminate that temporary solution from the release pipeline.Now that
changelogger
requires access to previous tags, CI steps that rungenerate-smithy-rs-release
need to checkout thesmithy-rs
repository with all tags (fetch-depth: 0
is for that purpose).Testing
changelogger
changelogger
into thinking that it has to bump a release tag)By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.