Contributing - osvaldoandrade/ova-lib GitHub Wiki
Contributing
The contribution rule is simple: every behavior change must be visible in code, tests, and documentation at the same time.
Before You Open a Change
Build the project and run the test suite. If the change touches public behavior, update or add the matching test under test/.
Read the wiki page for the module you changed before you send the patch. The wiki should still describe the code after the patch lands.
If You Change the Public Contract
Public contract changes belong in 3 places in the same change set:
| Place | Why it must change |
|---|---|
include/ |
the header is the contract |
test/ |
the tests define the shipped behavior |
| wiki page for the module | the reader needs the contract without reading source first |
That rule covers constructor arguments, enum values, callback semantics, ownership rules, cleanup rules, return values, result ownership, and empty-case behavior.
Keep the Scope Small
One pull request should cover one logical change. If a patch edits unrelated modules, split it. If a patch changes behavior and documentation in different directions, stop and fix the drift before sending it.
Document the Part That Changed
If you change one structure inside a group page, update the group page and the module page. For example, a map change belongs in Associative-Structures and Maps. A heap change belongs in Containers and Heaps-and-Priority-Queues.