Skip to content

Contributing

Step 1. Fork this repository to your GitHub

Step 2. Clone the repository from your GitHub

git clone https://github.com/[YOUR GITHUB ACCOUNT]/mail_handler.git

Step 3. Add this repository to the remote in your local repository

git remote add upstream "https://github.com/pycontw/mail_handler"

You can pull the latest code in master branch through git pull upstream master afterward.

Step 4. Check out a branch for your new feature

git checkout -b [YOUR FEATURE]

Step 5. Install prerequisite

python -m pip install pipx
python -m pipx install poetry invoke
python -m pipx ensurepath
  • pipx: for python tool management
  • poetry: for dependency management
  • invoke: for task management

Step 6. Create your local Python virtual environment and install dependencies

inv env.init-dev

Step 7. Work on your new feature

Note that this project follows conventional-commit and bumps version based on it. Use the following command to commit your changes.

inv git.commit

Step 8. Run test cases

Make sure all test cases pass.

inv test

Step 9. Run test coverage

Check the test coverage and see where you can add test cases.

inv test.cov

Step 10. Reformat source code

Format your code through black and isort.

inv style.reformat

Step 11. Run style check

Make sure your coding style passes all enforced linters.

inv style

[Optional] Check your coding style through pylint. Note that you do not have to fix all the issues warned by pylint.

inv style.pylint

Step 12. Run security check

Ensure the packages installed are secure, and no server vulnerability is introduced

inv secure

Step 13. Create a Pull Request and celebrate 🎉