- Dependency and virtual environment management (one of the following based on user choice)
- Coding style
- Test thought pytest with the following plugins
- pytest-cov: generate test coverage repo
- pytest-mock: mocking
- commitizen:
- regulate git commit convention
- bump project version
- generate changelog automatically
- Security check through
- mkdocs: generate documentation
- pre-commit: git-hook to run the above tools automatically
- invoke: organize the tools above (like Makefile in PYthon)
- CI/CD
- GitHub Actions workflows for
- checking coding style
- testing
- publishing package to PyPI
- pushing documentation to GitHub pages
- GitHub issue templates, pull request template
- GitHub Actions workflows for
- General Python project Dockerfile
- Consolidate most of the tool configurations in
pyproject.toml
cruft create https://github.com/Lee-W/cookiecutter-python-template
- Required GitHub repository secrets
PERSONAL_ACCESS_TOKEN
: GitHub personal access token used to bump project version automatically- Refer to Creating a personal access token to generate one
- (optional)
pypi_password
: PyPI API token- required only if you set "build_pypi_package" to "y" during project creation
- Refer to How can I use API tokens to authenticate with PyPI? to generate one. Note that username
__token__
has been setup in the project