Evaluated Toolchain Topics¶
This section contains the detailed documentation for each of the 18 topics that make up the cookiecutter-robust-python template’s integrated toolchain. For each topic, you will find:
The specific goals this area addresses.
The criteria used to evaluate tools within this area, derived from the template’s philosophy (Template Philosophy) and core criteria (Criteria).
A list of the key tools and approaches that were evaluated.
A detailed breakdown and comparison of these tools against the criteria.
The final tool(s) or approach chosen for the template, with a comprehensive justification explaining why based on meeting the criteria and comparing favorably against alternatives.
Notes on how this topic interacts with other parts of the template’s toolchain.
Reading these topics provides a deep understanding of the template’s design choices and the rationale behind the selected tools, empowering you to maintain generated projects effectively and evaluate future tooling changes.
Toolchain Topics
- 01: Project Structure and Basic Setup
- 02: Dependency Management
- 03: Code Formatting
- 04: Code Linting and Quality Checks
- 05: Type Checking
- 06: Testing and Coverage
- 07: Documentation Generation and Building
- 08: Code Security and Safety Checks
- 09: Distribution Package Building (sdist/wheel)
- 10: Package Publishing (to PyPI/Index Servers)
- 11: Application Container Building
- 12: Task Automation / Developer Workflow
- 13: Continuous Integration (CI) Orchestration
- 14: Continuous Deployment / Delivery (CD) Orchestration
- 15: Container Orchestration (Local / Single Host)
- 16: Deployment to Production Orchestrators
- 17: Containerized Development Environments
- 18: Pre-commit Hooks
Key Tooling Concepts
Many topics involve key concepts and tool categories that interact across different areas:
pyproject.toml: The central configuration file used by many tools, defining project metadata, build system, dependencies, and tool-specific settings (Topic 01).Command-Line Interface (CLI): Most tools selected have strong CLIs, crucial for integration into automation (Criteria).
Standard Virtual Environments: Python’s built-in way to isolate project dependencies (Topic 02).
Container Images (
Dockerfile, Docker/Podman): Standard format and tools for creating portable application environments (Topic 11).Layered Workflow: The template organizes automation into distinct layers: Pre-commit (fast local checks), Task Automation (on-demand/comprehensive local runs), and CI/CD (automated verification/deployment) (Topics 12, 13, 14, 18).
Understanding these interconnected concepts helps to see the “big picture” of the template’s design.