Skip to content

docs: record 0.1.0 in the changelog on main - #27

Merged
RobertoIskandarani merged 1 commit into
mainfrom
docs/record-0.1.0-on-main
Sep 8, 2026
Merged

docs: record 0.1.0 in the changelog on main#27
RobertoIskandarani merged 1 commit into
mainfrom
docs/record-0.1.0-on-main

Conversation

@RobertoIskandarani

Copy link
Copy Markdown
Collaborator

main has carried the released notes under [Unreleased] since the release, so the changelog on the default branch does not describe the version that shipped today.

Why it happened

0.1.0 was stabilized on its own branch, and the commit that renamed [Unreleased] to ## [0.1.0] - 2026-09-07 lives only there. release.yml deletes the release branch after tagging, so nothing carries the rename home. The bodies stayed identical, which is what makes the omission invisible — the notes look right until you go looking for the version heading.

This is structural, not a slip: cut-release opens a back-port PR to the default branch that bumps POM versions only, and release.yml reads the section on the release branch and never writes to the default branch. It will recur on every release until that is fixed.

What changes

Two added lines: the ## [0.1.0] - 2026-09-07 heading, and the now-empty [Unreleased] left above it. No note is edited, moved or reworded.

Verified rather than assumed: both sections were extracted and diffed, and the resulting ## [0.1.0] body is byte-identical to the one at the v0.1.0 tag (34 lines).

Keeping main's section an exact copy of the tagged one is what makes a correction to published notes go in the GitHub Release body instead of being silently rewritten here.

Verification

mvn verify green across all four modules against the pinned conformance catalog.

@RobertoIskandarani
RobertoIskandarani requested a review from a team as a code owner September 7, 2026 17:51
@RobertoIskandarani RobertoIskandarani self-assigned this Sep 7, 2026
main has carried the released notes under [Unreleased] since the
release: 0.1.0 was stabilized on its own branch and the commit that
renamed the heading lives only there, so nothing carried it home.

The heading is not all that was wrong. The section had `### Changed`
with a **Migration** note and `### Fixed` with two entries — on a
*first* release. Changed relative to what? There was no prior published
version. The migration note tells an operator to migrate from nothing,
and "the SDK no longer silently reconciles them" describes behaviour
that, publicly, never existed. Those entries were deltas against
internal pre-release states, which is history a reader of this
repository cannot see.

python-sdk, ts-sdk and go-sdk all get this right: their 0.1.0 section is
a heading, a blank line, and `- Initial release.` — no subsections at
all. This now matches, byte for byte in shape.

Nothing of value is lost. A changelog records deltas, and a first
release has none; what the SDK *does* belongs in the README and the user
guides, which carry it. The entries removed here described the behaviour
0.1.0 shipped with, not a change to it.

## Deliberately not byte-exact with the tag

The convention is that main's `## [X.Y.Z]` section is a byte-exact copy
of the tagged one, so published notes are never quietly rewritten. This
departs from it, knowingly:

  - the tag keeps pointing at a77db11, the commit the published jar was
    built from, and its CHANGELOG is left alone as the record of what
    was cut;
  - the published artifact does not carry the changelog at all — checked
    the jar on Central, it contains no `.md` — so nothing immutable
    disagrees with this;
  - the GitHub Release body is corrected the same way, which is where
    the convention already sends corrections.

So the two surfaces a reader actually looks at agree with each other and
with the rest of the family, and the tag remains the historical record.
Re-establishing byte-exactness would mean moving the tag off the commit
the artifact was built from, which is a worse trade.

The finalize step that renames `[Unreleased]` is what let this through:
it renames a heading and asks nothing about whether the subsections mean
anything for a first release. cs-sdk shipped its whole Keep-a-Changelog
skeleton the same way. Worth a check in that step.
@RobertoIskandarani
RobertoIskandarani merged commit 51f5834 into main Sep 8, 2026
5 checks passed
@RobertoIskandarani
RobertoIskandarani deleted the docs/record-0.1.0-on-main branch September 8, 2026 20:55
@RobertoIskandarani
RobertoIskandarani restored the docs/record-0.1.0-on-main branch September 8, 2026 20:58
@RobertoIskandarani
RobertoIskandarani deleted the docs/record-0.1.0-on-main branch September 8, 2026 21:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants