This project follows a standard src/ layout with packaging metadata defined in pyproject.toml.
- Python 3.8+
pipfor dependency management
Install dev dependencies:
pip install -e .[dev]Install the PyPA build frontend and create source and wheel archives with:
python -m buildThe command writes artifacts to the dist/ directory.
Run Ruff to lint the code base:
ruff check .Tests are written with pytest and collect coverage information automatically.
pytestCoverage reports are printed to the terminal and should remain near 80% for new contributions.
GitHub Actions executes linting and test jobs on every push and pull request (.github/workflows/ci.yml). Ensure the workflow passes locally before submitting changes.
Chronogen uses PyPI trusted publishing to release from GitHub Actions. Complete these steps the first time to finish wiring PyPI to the repository:
- Log in to PyPI, open the project, and visit Publishing under Project settings.
- In the Pending publishers table, locate the row for
Septimus4/Chronogenand click Approve. PyPI now trusts thepublish.ymlworkflow for releases.
For every release:
- Update the version in
pyproject.tomlanddocs/readme.mdif necessary. - Ensure the GitHub environment named
pypicontains aPYPI_API_TOKENsecret with an API token that has Maintain or Owner permissions for the project. - Commit and push your changes, then draft a GitHub release. Publishing the release triggers the
Publish to PyPIworkflow, which runs tests, builds wheels and source distributions, and uploads them to PyPI automatically.