Allow multiple releases per day in the smithy-rs repository (#3875)
## 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 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](https://github.com/smithy-lang/smithy-rs/actions/runs/11356509152/job/31588857360#step:8:26) (based on [this dummy change](https://github.com/smithy-lang/smithy-rs/commit/cb19b31eaa506d66d9869261c920784ccc311b15) 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._
Loading
Please register or sign in to comment