From 66a429adf49c9ca57abe559038d558c6bf216ae2 Mon Sep 17 00:00:00 2001 From: Tom Boucher Date: Fri, 15 May 2026 23:04:08 -0400 Subject: [PATCH] docs(3621): forbid bundling test-fixture updates into docs: commits (#3625) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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) --- CONTRIBUTING.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 85ce30676..2e091a769 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -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