Developer information

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. We also have badge recommendations for your README, including the Scikit-HEP badge!

The developer pages have been moved to Scientific-Python! The remaining pages here will redirect to the new site.

New developers can start with an introductory tutorial before moving on to the guide.

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 / classic 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, including coverage, and docs. You can also see how to set up a task runner to simplify tasks and help new contributors.

New project template

Once you have completed the guidelines, there is a copier/cookiecutter/cruft project, scientific-python/cookie, that implements these guidelines and lets you setup a new package from a template in less than 60 seconds! Twelve build backends including compiled backends, generation tested in Nox, and kept in-sync with the guide.

Checking an existing project

We provide sp-repo-review, a set of repo-review checks for comparing your repository with the guidelines, runnable right in the guide via WebAssembly! All checks point to a linked badge in the guide.


Table of contents