This is a template for Python projects that provides a starting structure and a set of universally useful CI/CD configurations.
This template can be used as a starting point for new Python projects to get up and running quickly with a standard set of CI/CD configurations and an organized project structure.
Operation | Solution Choice |
---|---|
Linting | flake8, pylint |
Testing | pytest |
Building | setuptools |
Dependency management | pip-tools, dependabot |
Additional features | changelog, example MIT license, dependabot configuration |
python -m build
python -m pip install -r requirements.txt
python -m callable
python -m pytest
mainpackage/
subpackage/
__init__.py
samplemodule.py
tests/
__init__.py
test_one.py
test_two.py
- Using GitHub template repositories https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-repository-from-a-template
- GitHub Actions https://docs.github.com/en/actions
- pylint https://pylint.pycqa.org/en/latest/
- flake8 https://flake8.pycqa.org/en/latest/
- pytest https://docs.pytest.org/en/7.1.x/
- setuptools https://pypi.org/project/setuptools/
- pip-tools https://github.com/jazzband/pip-tools
- dependabot https://github.com/dependabot/dependabot-core
- Changelog generation https://github.com/github-changelog-generator/github-changelog-generator
- MIT license https://opensource.org/licenses/MIT