Best engineering practices for a Python package: seeking feedback

Hello everyone,

I’ve created a cookiecutter template for a Python package on Github and I’m curious to receive feedback and suggestions. The main features are:

  • Python 3.9 and type hints checked using mypy;
  • Enforce QA checks using git hooks;
  • Require full code coverage using unit tests and generate test payloads;
  • Build documentation using Sphinx;
  • Automatic versioning, publishing to PyPI, Changelog management using conventional commit messages and Github Actions

Currently the template still uses pip although I’m thinking to switch to poetry. Please feel free to discuss here, or to open issues in the Github repository.

Thank you so much in advance for your thoughts :nerd_face:


Github Actions

I don’t know that I would consider “Github Actions” specifically a
“best engineering practice” but perhaps you meant that as a stand-in
for “CI system configuration” (which I agree is a good idea
regardless of which code hosting platform you choose).

@fungi — yes, what you said. Having this hosted on Github makes Actions a sensible approach to CI, but somebody may want to use Jenkins or CircleCI or Travis or whatever else.

Perhaps I should add a section & explanation to the README?