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.