Thank you for your interest in contributing to Supervision!
We are actively improving this library to reduce the amount of work you need to do to solve common computer vision problems.
We welcome contributions to:
- Add a new feature to the library (guidance below).
- Improve our documentation and add examples to make it clear how to leverage the supervision library.
- Report bugs and issues in the project.
- Submit a request for a new feature.
- Improve our test coverage.
Supervision is designed to provide generic utilities to solve problems. Thus, we focus on contributions that can have an impact on a wide range of projects.
For example, counting objects that cross a line anywhere on an image is a common problem in computer vision, but counting objects that cross a line 75% of the way through is less useful.
Before you contribute a new feature, consider submitting an Issue to discuss the feature so the community can weigh in and assist.
First, fork this repository to your own GitHub account. Create a new branch that describes your changes (i.e. line-counter-docs
). Push your changes to the branch on your fork and then submit a pull request to develop
branch of this repository.
When creating new functions, please ensure you have the following:
- Docstrings for the function and all parameters.
- Unit tests for the function.
- Examples in the documentation for the function.
- Created an entry in our docs to autogenerate the documentation for the function.
- Please share google colab with minimal code to test new feature or reproduce PR whenever it is possible. Please ensure that google colab can be accessed without any issue.
All pull requests will be reviewed by the maintainers of the project. We will provide feedback and ask for changes if necessary.
PRs must pass all tests and linting requirements before they can be merged.
We provide two handy commands inside the Makefile
, namely:
make style
to format the codemake check_code_quality
to check code quality (PEP8 basically)
So far, there is no types checking with mypy. See issue.
pytests
is used to run our tests.