Thanks for your interest in contributing to MMPreTrain! All kinds of contributions are welcome, including but not limited to the following.
- Fix typo or bugs
- Add documentation or translate the documentation into other languages
- Add new features and components
We recommend the potential contributors follow this workflow for contribution.
- Fork and pull the latest MMPreTrain repository, follow get started to setup the environment.
- Checkout a new branch (do not use the master or dev branch for PRs)
git checkout -b xxxx # xxxx is the name of new branch
- Edit the related files follow the code style mentioned below
- Use pre-commit hook to check and format your changes.
- Commit your changes
- Create a PR with related information
We adopt PEP8 as the preferred code style.
We use the following tools for linting and formatting:
- flake8: A wrapper around some linter tools.
- isort: A Python utility to sort imports.
- yapf: A formatter for Python files.
- codespell: A Python utility to fix common misspellings in text files.
- mdformat: Mdformat is an opinionated Markdown formatter that can be used to enforce a consistent style in Markdown files.
- docformatter: A formatter to format docstring.
Style configurations of yapf and isort can be found in setup.cfg.
We follow the Google C++ Style Guide.
We use pre-commit hook that checks and formats for flake8
, yapf
, isort
, trailing whitespaces
, markdown files
,
fixes end-of-files
, double-quoted-strings
, python-encoding-pragma
, mixed-line-ending
, 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.