Skip to content

Latest commit

 

History

History
61 lines (43 loc) · 3.53 KB

CONTRIBUTING.md

File metadata and controls

61 lines (43 loc) · 3.53 KB

Contributing to Theseus

We want to make contributing to Theseus as easy and transparent as possible.

Developer Guide

  • 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.

Workflow Model

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.

Code Style

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

Pull Requests

  • 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 appropriate Labels and Milestone.
  • 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.

Versioning

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.

Issues

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.

Contributor License Agreement

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

License

By contributing to Theseus, you agree that your contributions will be licensed under the LICENSE file in the root directory of this source tree.