docs: document squash-merge + title-driven release policy - #13
Merged
Conversation
A squash-merged PR whose Release-As footer lived only in the body was cut by release-please as a minor (0.9.0) instead of the intended major, because the footer did not survive the squash. Capture the resulting policy so it does not recur: - CONTRIBUTING.md gains a "Merging" section: squash-merge, one logical change per PR, put the release signal in the PR title, and set the repo squash message to "Pull request title and description". - CLAUDE.md's release model gains a matching "squash-merge, title-driven" bullet for future automated contributors. Co-Authored-By: Claude Opus 4.8 <[email protected]> Claude-Session: https://claude.ai/code/session_01UcmNgwVhqkNE1eViGYLnJ9
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.
What & why
A squash-merged PR whose
Release-As: 1.0.0footer lived only in the body was cut by release-please as 0.9.0 (minor) instead of the intended 1.0.0 (major) — the footer didn't survive the squash, so release-please fell back to itsbump-minor-pre-majorrule. (Seen oncombine-source-map: the source-map 8 breaking change; fixed there by flipping the config.) This documents the policy so it doesn't recur.Changes
CONTRIBUTING.md— new Merging section: PRs are squash-merged and release-please is title-driven, so (1) one logical change per PR and (2) the release signal goes in the PR title (feat!for breaking), with a note thatRelease-As:/long-formBREAKING CHANGE:footers only survive if the repo squash message is "Pull request title and description", and to prefer release-please config for deliberate version overrides. Includes the repo-setting callout.CLAUDE.md— matching "squash-merge, title-driven" bullet in the Release model, so future automated contributors don't repeat the mistake.Docs only — no workflow, template, or config changes.
Type of change
fix/feat/perf— consumer-facingdeps— dependency updatechore/ci/build/docs/test/refactor— maintenance (docs)Checklist
commitlintpasses)Generated by Claude Code