4.0 KiB
Contributing
Thank you for your interest in contributing to this project.
This repository is intended to be a clean, reusable, and professional Python project template. Contributions should preserve that goal.
General Principles
- Keep the template generic and adaptable.
- Prefer clarity over cleverness.
- Avoid unnecessary complexity.
- Follow the existing project structure and conventions.
- Write all code, comments, docstrings, and documentation in English.
Development Setup
It is recommended to use the provided Makefile.
First-time setup
make dev
# Contributing
Thank you for your interest in contributing to this project.
This repository is intended to be a **clean, reusable, and professional Python project template**.
All contributions should aim to **improve the template without making it specific to a single project**.
The goal is to keep this repository:
- simple
- professional
- maintainable
- widely reusable
---
# General Principles
When contributing, please follow these principles:
- Keep the template **generic and adaptable**.
- Prefer **clarity over cleverness**.
- Avoid unnecessary complexity.
- Follow the existing **project structure and conventions**.
- Keep the repository **easy to understand for new developers**.
- Write all **code, comments, docstrings, and documentation in English**.
This repository should remain a **solid starting point for many different types of Python projects**.
---
# Development Setup
It is recommended to use the provided **Makefile** to set up the development environment.
## First-time setup
```bash
make dev
This command will:
- create the
.venvvirtual environment - install project dependencies
- install development tools
- configure
pre-commithooks
Development Workflow
Typical workflow when working on the project:
make fix
make quality
make run
Command summary:
| Command | Description |
|---|---|
make dev |
bootstrap development environment |
make install |
reinstall dependencies |
make fix |
auto-format and fix code issues |
make quality |
run formatting, linting, type checks, and tests |
make ci |
simulate CI validation |
make doctor |
show environment and tool versions |
make run |
run the application |
Code Standards
All contributions should follow these standards:
- Python 3.11+
- Use type hints where appropriate
- Write clean and modular code
- Prefer readable code over clever shortcuts
- Avoid dead code
- Use consistent docstrings for public APIs
Tools used in this project:
- black → formatting
- ruff → linting
- mypy → static typing
- pytest → testing
Quality Checks
Before submitting changes, run:
make fix
make quality
pre-commit run --all-files
All checks should pass before committing.
Documentation
If you modify project structure, development workflow, or setup instructions, please update the relevant documentation:
README.mdCHANGELOG.mdinstructions-agent.md
Clear documentation is as important as clean code.
Commit Messages
Use clear and concise commit messages.
Examples:
Add make doctor command
Improve README template usage instructions
Add environment configuration example
Fix formatting issues
Good commit messages make the project history easier to understand.
Scope of Contributions
Good contributions include:
- improving the project structure
- improving development workflow
- improving documentation
- improving tooling and automation
- fixing template inconsistencies
- simplifying developer experience
Please avoid turning this repository into a project-specific application.
This repository should remain a general-purpose Python template.
Acknowledgements
This template was created by Saky, drawing on many years of professional software engineering experience and with the assistance of modern AI development tools.
Contributions that improve the template while preserving its simplicity are always welcome.