fix(changelog): emit one bullet per dependency change - #12
Closed
upbqdn wants to merge 1 commit into
Closed
Conversation
A dependency whose types are reachable in a crate's public API produced two `### Changed` bullets naming it: the `Migrated to ...` line every requirement change emits, and a second `Public dependency ...` line from the reachability join. A changelog entry is per change and written for the user adapting to it, so the curator had to merge the two by hand on every such dependency. Fold the note into the `Migrated to` line instead, keeping the standalone bullet only for the case where no such line exists. The wording stays conditional on the classification: a proven-incompatible bump states the lockstep upgrade, an unknown requirement change only asks for review.
Member
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
A dependency whose types are reachable in a crate's public API produced two
### Changedbullets naming the same dependency:The first comes from the per-crate dependency diff, which emits a line for every
requirement change; the second from the public-dependency reachability join. A changelog
entry is per change and written for the user adapting to it, so this left the curator
merging the two by hand on every such dependency.
Solution
Fold the note into the
Migrated toline, keeping the standalone bullet only where nosuch line exists:
The wording stays conditional on the classification introduced in #11: a
majorchangestates the lockstep upgrade, an
unknownrequirement change only asks for review, so anunproven change still cannot read as a break.
Stacked on #11, which the fold reuses for that distinction.
Tests
The reachable case now asserts the folded line and guards against a second bullet
appearing beside it. Adds branch coverage for the external
Migrated toline itself,which the fold rewrites in place.
Ran locally:
shellcheck -S warning zc tests/run.sh,bash -n zc,bash -n tests/run.sh,tests/run.sh(133 tests, 0 failures).