Open
Description
As part of the release workflow, it'd be great to know whether any duplicate entries have snuck into a particular branch. With CometBFT, we often have this situation where we submit a PR to the main
branch and then backport it to other release branches. But then the changelog entry/entries shouldn't actually exist directly on main
in the .changelog/unreleased
directory.
Suggested workflow:
# First stash/commit any local changes
# Search for any entries from the local .changelog/unreleased folder that also appear in any specific
# releases' changelogs. When searching locally, it should only check for duplicates of whatever's in
# the local ".changelog/unreleased" folder, otherwise it could incorrectly flag entries that were backported
# across multiple releases.
> unclog find-duplicates
# File in local unreleased File in release changelog log
.changelog/unreleased/123-issue.md .changelog/v0.34.27/123-issue.md
# Search for entries in the local .changelog/unreleased folder that also exist on the "v0.38.x" branch
> unclog find-duplicates v0.38.x
# File in local unreleased File on other branch Other branch
.changelog/unreleased/123-issue.md .changelog/unreleased/123-issue.md v0.38.x
# Search for entries in the local .changelog/unreleased folder that also exist on the "v0.38.x",
# "v0.37.x" or "v0.34.x" branches
> unclog find-duplicates v0.38.x v0.37.x v0.34.x
# File in local unreleased File on other branch Other branch
.changelog/unreleased/123-issue.md .changelog/unreleased/123-issue.md v0.38.x
.changelog/unreleased/123-issue.md .changelog/v0.37.1/123-issue.md v0.37.x
This functionality would require that unclog be capable of temporarily checking out the given branch(es), when supplied, to be able to check for duplicates. The output on stdout should be able to be parsed by other BASH tooling so as to facilitate automation.
Whether or not a file is a duplicate should depend on:
- The file name
- The file contents