We highly value involvement from the trading community, and all contributions are greatly appreciated as they help us continually improve NautilusTrader!
Note
Integrations: New integrations are a major undertaking for the project and therefore require additional discussion and approval before opening any PRs. Please see the ROADMAP: Community-contributed integrations for details on the process.
To contribute, follow these steps:
-
Open an issue on GitHub to discuss your proposed changes or enhancements.
-
Once everyone is aligned, fork the
developbranch and ensure your fork is up-to-date by regularly merging any upstream changes. -
Install and configure pre-commit on your local machine to automatically run code checks, formatters, and linters before each commit. You can install pre-commit with:
pip install pre-commit pre-commit install
-
Open a pull request (PR) on the
developbranch with a summary comment and reference to any relevant GitHub issue(s). -
The CI system will run the full test suite on your code including all unit and integration tests, so include appropriate tests with the PR.
-
Read and understand the Contributor License Agreement (CLA), available at https://github.com/nautechsystems/nautilus_trader/blob/develop/CLA.md.
-
You will also be required to sign the CLA, which is administered automatically through CLA Assistant.
-
We will review your code as quickly as possible and provide feedback if any changes are needed before merging.
- Follow the established coding practices in the Developer Guide.
- For documentation changes, follow the style guide in
docs/developer_guide/docs.md(use sentence case for headings H2 and below). - Keep PRs small and focused for easier review.
- Reference the relevant GitHub issue(s) in your PR comment.