We want to make contributing to Theseus as easy and transparent as possible.
- Fork the repo and install with development requirements.
git clone <link_to_fork> && cd theseus pip install -e ".[dev]"
- Make a branch from
main
. See the workflow model we follow.git checkout -b <username>.<appropriate_branch_name> main
- Make small, independent, and well documented commits. If you've changed the API, update the documentation. Add or modify unit tests as appropriate. Follow this code style.
- See pull requests guide when you are ready to have your code reviewed to be merged into
main
. It will be included in the next release following this versioning. - See issues for questions, suggestions, and bugs.
- If you haven't already, complete the Contributor License Agreement and see license.
We follow the Trunk-based model. Small and frequent PR of new features will be merged to main
and a tagged release will indicate latest stable version on main
history.
For Python we use black
and isort
for linting and code style, and use typing. We also use pre-commit hooks to ensure linting and style enforcement.
pip install pre-commit && pre-commit install && pre-commit run --all-files
- We encourage more smaller and focused PRs rather than big PRs with many independent changes.
- Use this PR template to submit your code for review. Consider using the draft PR option to gather early feedback.
- Add yourself to the
Assignees
, add Mustafa Mukadam and Luis Pineda as reviewers, link to any open issues that can be closed when the PR is merged, and add appropriateLabels
andMilestone
. - We expect the PR is ready for final review only if Continuous Integration tests are passing.
- Keep your branch up-to-date with
main
by rebasing as necessary. - We employ
squash-and-merge
for incorporating PRs. Add a brief change summary to the commit message. - After PR is approved and merged into
main
, delete the branch to reduce clutter.
We use semantic versioning. For core Theseus team member, to prepare a release:
- Update version in init file.
- Make sure all tests are passing.
- Create a release tag with changelog summary using the github release interface.
We use GitHub issues to track bugs. You can also reach out to us there with questions or suggestions. Please ensure your description is clear by following our templates.
In order to accept your pull request, we need you to submit a Contributor License Agreement (CLA). You only need to do this once to work on any of Meta's open source projects. Complete your CLA here: https://code.facebook.com/cla
By contributing to Theseus, you agree that your contributions will be licensed under the LICENSE file in the root directory of this source tree.