docs(3621): forbid bundling test-fixture updates into docs: commits (#3625)
Adds a Pull Request Guidelines bullet making explicit what v1.42.3 hotfix taught us the hard way: when a production change makes an existing test assertion stale, the test correction must be its own test: (or fix:) commit, not bundled into a docs: commit that also explains the change. The release-sdk hotfix cherry-pick filter routes by commit-subject prefix (fix:, chore:, test: — see release-sdk.yml). A docs: commit that hides a test fix is invisible to the picker. The result is a half-shipped state on the hotfix branch: production code changed, test assertion stale, CI red. This is the upstream contributor-side mitigation. The picker-side fix landed in PR #3623 (broadens the prefix filter and the classifier's CI-gating-path detection); this PR documents the upstream discipline that keeps the picker from getting fooled in the first place. Refs #3621 Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -129,6 +129,7 @@ Contributor requirements (summary):
|
||||
- **Link with a closing keyword** — use `Closes #123`, `Fixes #123`, or `Resolves #123` in the PR body. The CI check will fail and the PR will be auto-closed if no valid issue reference is found.
|
||||
- **One concern per PR** — bug fixes, enhancements, and features must be separate PRs
|
||||
- **No drive-by formatting** — don't reformat code unrelated to your change
|
||||
- **Don't bundle test-fixture updates into `docs:` or unrelated commits** — when a production change makes an existing test assertion stale, the test correction MUST land as its own `test:` (or `fix:`) commit, not bundled into a `docs:` commit that also updates the explanation. The release-sdk hotfix cherry-pick filter routes by commit-subject prefix (`fix:`, `chore:`, `test:`); a test-fixture correction packed under a `docs:` prefix is invisible to the picker and ships a half-state to the hotfix branch — production code changed, test assertion stale. v1.42.3 hit this exact mode (#3621). The fix is upstream: keep the test-fixture commit separate.
|
||||
- **CI must pass** — all configured matrix jobs must be green. Node 22 remains the compatibility floor; Node 24 is the primary target; Node 26 compatibility must be preserved for code and tests even when a Node 26 CI lane is not yet available.
|
||||
- **Scope matches the approved issue** — if your PR does more than what the issue describes, the extra changes will be asked to be removed or moved to a new issue
|
||||
|
||||
|
||||
Reference in New Issue
Block a user