Skip to content

Add ability to automatically detect duplicates #81

Open
@thanethomson

Description

@thanethomson

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:

  1. The file name
  2. The file contents

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions