Skip to content

Commits got repeated when I format the CHANGELOG file manually? (revamp #133) #142

Open
@JonathanLoscalzo

Description

@JonathanLoscalzo

Describe the bug
I have wanted to edit the changelog manually, because I have a lot of all commits in the history that I don't want to preserve in the changelog.
During the edition, accidentally I have format the file with vscode and some blank spaces got removed.

When I bump the version again, the selected commits are not from "v0.0.X..v.0.0.Y", it selects it from the first commit again.

So, I assumed that if we modify the format of the changelog for whatever reason, it will fail.
Is there any possibility to pass two properties? like the range of commits to generate instead of read the changelog.

There are situation where we want to switch from a changelog generator to another, and I want to preserve all history. I mean, it could be possible to skip that check and just use last two "v-tags"?

Steps to reproduce:

npm init --yes
git init
echo "node_modules" > .gitignore
git add . 
git commit -m "feat: init"

for i in {1..5}; do
  git commit -m "feat($i): important feature $i" --allow-empty
done

for i in {1..5}; do
  git commit -m "fix($i): important feature $i" --allow-empty
done

npx --yes commit-and-tag-version --first-release

# modify the changelog JUST THE FORMAT
echo "{}" > .prettierrc
npx --yes prettier CHANGELOG.md --write
git add CHANGELOG.md 
git commit --amend --no-edit

# Create a commit between v1 and v2
git commit -m "feat(v2): important feature v2" --allow-empty


# If I release it, the unique commit that will be added to the changelog is the last one
npx commit-and-tag-version 

# CHECK CHANGELOG!

Current behavior

  • Changelog is generated from the beginning over and over

Expected behavior

  • Changelog should be generated from commits between vX -> vY, that is commits between last version and current one, and not from the beginning of the history.

Environment

  • commit-and-tag-version version(s): v12.20.0
  • Node/npm version: v20
  • OS: Ubuntu 22 (but it doesn't matter)

Possible Solution

  • Use something similar for listing commits like `git log $(git describe --abbrev=0 --tags)..HEAD``
  • expose a method to list the changelog output with versions as inputs or similar

Additional context

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions