This repository serves as a hands-on laboratory for learning industry-standard Continuous Integration (CI) and modern Python development workflows.
This project has been evolved from a collection of scripts into a standardized Python package following modern Open Source best practices.
- Standardized Configuration: Migrated all tool settings (Ruff, Pytest, Hatch) into a single
pyproject.toml. - Reproducible Environments: Implemented
optional-dependenciesfor development, allowing contributors to set up their environment with a single command. - Professional Build Backend: Integrated
hatchlingto handle package builds and explicit file inclusion logic. - Unified Dev Interface: Updated the
Makefileto serve as a consistent entry point for both local development and CI/CD.
make initInstalls the project in editable mode and sets up git hooks.
make allRuns the linter, formatter, and test suite sequentially.
Transitioning a project to the Open Source ecosystem requires a focus on Developer Experience (DX) and portability:
- Environment Hermeticity: Using
pyproject.tomlguarantees that the project is portable and works consistently across different user environments. - Low Friction Onboarding: High-quality projects are "self-documenting" through their build tools. A
Makefilecombined with standardized packaging reduces the barrier to entry for new contributors. - Shippable vs. Verification: By separating application logic (
app/) from verification logic (tests/), we ensure that end-users receive a lean package while developers maintain a robust testing suite.
Built with 🚀 for a career transition into the world of Open Source.