Skip to content

doc: record the release workflow and merge policy in CLAUDE.md - #96

Open
kalwalt wants to merge 1 commit into
devfrom
doc/release-workflow-notes
Open

doc: record the release workflow and merge policy in CLAUDE.md#96
kalwalt wants to merge 1 commit into
devfrom
doc/release-workflow-notes

Conversation

@kalwalt

@kalwalt kalwalt commented Aug 11, 2026

Copy link
Copy Markdown
Member

Documents the release process in CLAUDE.md. Two things went wrong during v0.7.1 and neither was written down anywhere.

Merge policy — the one that actually caused damage

PR #95 was merged with "Rebase and merge", which replayed dev's commits as new objects on main. The result was identical file content but divergent history: 8 commits on each side with the same messages and different SHAs, and dev no longer an ancestor of main. Left alone, the next release PR would have replayed all of them again.

Repaired by resetting dev to main (safe — git cherry confirmed every dev commit was already applied, and the tree diff was empty). Both branches are now at dc05ec3.

Your previous release (#92) used a merge commit and did not have this problem, so the policy is now explicit: release PRs merge with a merge commit.

The npm build step

npm run build regenerates crates/wasm/pkg/package.json, which is tracked. It had drifted to a full release behind — sitting at 0.6.1 while 0.7.0 was live on npm. Harmless in practice, since release.yml's publish-npm job rebuilds the package before publishing and never reads the committed copy, but the repo was contradicting itself.

Also recorded

  • Cargo.toml holds the version in two places ([package] and [workspace.package]) — easy to bump one and miss the other
  • The git-cliff invocation, and that --prepend omits the blank line before the previous version heading
  • cliff.toml skips chore(release): prepare for… commits, so any other change must land in its own commit first or it will be missing from the changelog

Docs only — no code, no CI changes.

Two things bit us during v0.7.1 and neither was written down.

`npm run build` regenerates crates/wasm/pkg/package.json, which is tracked
but had silently drifted a full release behind (0.6.1 while 0.7.0 shipped).

Merging the release PR with "Rebase and merge" replayed dev's commits as new
objects on main, so dev stopped being an ancestor of main — identical content,
divergent history. Repaired by resetting dev to main; documented so the next
release uses a merge commit instead.

Also notes the two version locations in Cargo.toml, the git-cliff invocation
and its missing-blank-line quirk, and that cliff.toml skips the release commit
itself — so other changes must land in their own commits first.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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.

1 participant