A tiny Python starter project that gives newcomers a clean, batteries-included baseline:
- package layout under
src/ - CLI entry point (
hello-world) - basic tests with
pytest - clear local development commands
hello-world/
├── pyproject.toml
├── README.md
├── src/
│ └── hello_world/
│ ├── __init__.py
│ └── main.py
└── tests/
└── test_main.py
python3 -m venv .venv
source .venv/bin/activatepip install -e .[dev]hello-world
# or
python -m hello_world.mainpytest- Packaging basics
- Understand
pyproject.tomlmetadata and entry points.
- Understand
- Testing workflow
- Add edge-case tests and learn fixtures.
- Linting & formatting
- Add
rufforblackand enforce style in CI.
- Add
- CI/CD
- Add a GitHub Actions workflow to run tests on every PR.
- Release workflow
- Add semantic versioning and publish to an internal or public package index.
- Add command-line arguments (
argparseortyper). - Add logging configuration.
- Add a
Makefile(make test,make lint,make run). - Add GitHub Actions CI.