Files
paperspec/CONTRIBUTING.md
T
alexm 62f54ed869
check / check (macos-latest) (push) Canceled after 0s
check / check (ubuntu-latest) (push) Canceled after 0s
Initial commit
2026-10-11 23:45:29 -04:00

1.3 KiB

Contributing

One fix, one test

Every change to a rule comes with the vector or fixture that shows it. Change the oracle in tools/oracle/ and the chapter together, run python3 tools/build.py to regenerate the vectors and fixtures, and commit the regenerated files with the change. python3 tools/check.py must pass.

A fixture that breaks something belongs in fixtures/invalid/, with the rule it breaks in expect.json, built by tools/build.py like the others. Rule IDs are stable: a rule's meaning never changes, and a retired ID is never reused.

Versions

A change that makes a valid file invalid, or changes any computed value, is breaking: it needs a new major version of the format and a migration in scienting-core. Adding an optional property, a kind or an enumeration value is a minor change. Record each change in CHANGELOG.md, and each departure from the design in DECISIONS.md.

Prose

US English, one sentence per line, so a change to a sentence is a one-line diff. Prefer plain words to abbreviations; write "for example", not "e.g.". tools/check.py lints both, and markdownlint checks the Markdown.

Data

Fixture text is synthetic and dedicated CC0: never copy text from a real paper into this repository. Every file is canonical JSON; never edit a generated file by hand.