All kinds of contributions are welcome, including but not limited to the following.
- Fixes (typo, bugs)
- New features and components
- fork and pull the latest mmsegmentation
- checkout a new branch (do not use master branch for PRs)
- commit your changes
- create a PR
:::{note}
- If you plan to add some new features that involve large changes, it is encouraged to open an issue for discussion first.
- If you are the author of some papers and would like to include your method to mmsegmentation, please contact Kai Chen (chenkaidev[at]gmail[dot]com). We will much appreciate your contribution. :::
We adopt PEP8 as the preferred code style.
We use the following tools for linting and formatting:
Style configurations of yapf and isort can be found in setup.cfg and .isort.cfg.
We use pre-commit hook that checks and formats for flake8
, yapf
, isort
, trailing whitespaces
,
fixes end-of-files
, sorts requirments.txt
automatically on every commit.
The config for a pre-commit hook is stored in .pre-commit-config.
After you clone the repository, you will need to install initialize pre-commit hook.
pip install -U pre-commit
From the repository folder
pre-commit install
After this on every commit check code linters and formatter will be enforced.
Before you create a PR, make sure that your code lints and is formatted by yapf.
We follow the Google C++ Style Guide.