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-commitFrom the repository folder
pre-commit installAfter 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.