docs: require tests that prove every behavior-changing PR - #305
Merged
Conversation
Make the contributing guide impossible to misread: every bug fix, feature, refactor, performance change, and breaking change must ship tests covering the happy path, the original bug, errors, edges, and adversarial cases. Close the "if applicable" loophole in the PR checklist.
16 tasks
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.
Description
The contributing guide used to bury tests under a short "new features must include tests" list, and the PR checklist had an "if applicable" escape hatch. That is gone.
CONTRIBUTING.mdnow opens with a TESTS ARE MANDATORY section that applies to every PR that can change behavior: bug fixes, features, refactors, performance work, breaking changes, interpreter/lexer/parser/AST/stdlib/harness changes. "I ran it locally" and "the old suite still passes" are explicitly not enough. New fixtures must prove the change: happy path, the original bug, error cases, edge cases, and adversarial cases.The only exception is prose that cannot affect program behavior (docs, comments, license, templates, this file). This PR is that exception — it changes
CONTRIBUTING.mdand.github/PULL_REQUEST_TEMPLATE.mdonly.The PR template no longer says "if applicable." The checklist now requires proof tests and forces docs-only PRs to say so in the Description instead of skipping in silence.
Related Issue
N/A — policy clarification, not a bugfix.
Type of Change
Checklist
make format-checklocally (ormake formatto fix)Docs/comments/license-only: no interpreter or harness change, so there is nothing for
test_cases/or valgrind to prove.make format-checkdoes not apply to Markdown.