- Make sure your issue hasn't already been submitted.
- Make sure to fill out the issue template with all necessary details.
- All pull requests should be made against the
main
branch - All necessary checks are run on pull requests
- Python linting
- Python type-checking
- Unit tests
- Commit message linting
- Dependency vulnerability scanning
- All checks must pass before merging
- All pull requests with code changes should contain tests or updates to existing tests
- Exceptions are possible with a sufficient reason
- Commit messages are linted via commitlint
- Make sure to run steps 3 and 4 below under Installation for this to install properly
- Commit messages automatically populate the changelog and tags, so they should be clear and readable.
- Allowed prefixes: breaking, deps, chore, ci, docs, feat, fix, perf, refactor, style, test
- Commit messages should look like:
feat: I made a new feature This is where the optional body goes. This is where the optional footer goes.
- Install python >=3.8
- Create a python virtual environment
- Install python dependencies
make install-dev
- Install pre-commit
make install-pre-commit
make run-tests
- Mypy (in strict mode) is used to type-check this project.
- The "Any" type is discouraged, although sometimes necessary.
- "ignore" directives are also discouraged.
make type-check
- Flake8 is used to lint this project.
- This is ideally done via a pre-commit hook. Installation details are mentioned above.
- "# flake8: noqa" directives are discouraged.
Thanks for contributing!