.. _contribution-process:
Contribution Process
********************
This section documents how to contribute your changes to the `OpenDP Library `_.
Contributor License Agreement
-----------------------------
In anticipation of making a contribution, please be aware that the OpenDP Project requires contributors to sign
a Contributor License Agreement.
We use a bot for automated verification of license status, so your first OpenDP pull request will be tagged with
instructions for completing the agreement.
If you'd like to get a head start, you can view our :ref:`cla` documentation.
Creating a Pull Request
-----------------------
A pull request is a request to have your changes "pulled" into the OpenDP codebase.
* `Creating a pull request `_
* `Creating a pull request from a fork `_
The branch naming convention is the issue number followed by a short description, such as ``123-typo-in-readme``.
Once you have opened your Pull Request, it will appear in the `list of open PRs `_.
Please check back later for feedback!
Vetting Process
---------------
A contribution can be reviewed and merged, with ``contrib`` flags set, without completing the vetting process.
``contrib`` components are disabled by default, but an end-user can choose to opt-in.
On the OpenDP side, the vetting process to remove the ``contrib`` flag goes as follows:
#. Reviewers are assigned.
#. Reviewer confirms the privacy claims of the proof.
#. Reviewer validates the pseudo-code against the proof.
#. Reviewer validates the code against the pseudo-code.
Please be patient— this process may take several iterations as issues come up in the review process.
Merge
-----
Once the review process is successful, your PR will be merged into the ``main`` branch.
Your contribution and credit will be added to the release notes,
and your changes will appear on crates.io and PyPi on our next library release.