The pages here are intended for developers who are making or maintaining a package and want to follow modern best practices in Python.
If you are here to propose a new package for Scikit-HEP, please read package requirements for a list of minimum Scikit-HEP requirements for packages joining the organization.
New developers are encouraged to read the following pages. Veteran developers should still check out introduction, as it has a guide on recommendations for your
CONTRIBUTING.md, and at least glance through other sections.
Following that, there are recommendations for style, intended to promote good practices and to ensure continuity across the packages. There is a dedicated page for static type checking with MyPy. There is then a guide on simple packaging or compiled / complex packaging, which should help in ensuring a consistent developer and user experience when working with distribution.
A section on CI follows, with a general setup guide, and then two choices for using CI to distribute your package, on for pure Python, and one for compiled extensions. You can read about setting up good tests on the pytest page.
Finally, there are badge recommendations for your readme, including the Scikit-HEP badge!
Once you have completed the guidelines, there is a cookiecutter project, Scikit-HEP/cookie, that implements these guidelines and lets you setup a new package from a template in less than 60 seconds!
You can also evaluate your repository against the guidelines by using scikit-hep-repo-review!
Table of contents
- Intro to development
- Testing with pytest
- Code coverage
- Simple Python packaging
- Static type checking
- GHA: GitHub Actions intro
- GHA: Pure Python wheels
- GHA: Binary wheels
- Task runners
- Repo Review