Scikit-HEP Developer Pages
Guidelines for modern packaging
Henry Schreiner
specific packages
High Energy Physics
and the
Scikit-HEP Developer pages!
General purpose packages too!
scikit-hep.org
Or linked from iscinumpy.dev
Packaging (classic and simple)
Style guide (in pre-commit)
Development setup
pytest
Static typing
GitHub Actions
Nox
scikit-hep/cookie Repo Review
Tutorials
Specification
Kept up to date with nox & GitHub Actions
Pre-commit hooks
Black
Check-Manifest (setuptools only)
Type checking
PyCln
Flake8
YesQA
isort
PyUpgrade
Setup.cfg format
Spelling
PyGrep hooks
Clang-format (C++ only)
Shellcheck (shell scripts only)
PyLint (noisy)
Style
Scikit-HEP Cookie
11 backends to pick from
Generation tested by nox
In sync with the developer pages
pipx run cookiecutter gh:scikit-hep/cookie
Setuptools


Setuptools PEP 621


Flit Hatch PDM
Scikit-build


Setuptools C++


Maturin (Rust)
+
more!
Pyodide


powered!
Installs and runs


PyPI package


in your browser.
HEP application


by another Scikit-HEPer


~1 day later
henryiii


henryschreiner3
Plumbum • POVM • PyTest GHA annotate-failures
https://iscinumpy.dev
https://scikit-hep.org
https://iris-hep.org
C++ & Python
Building Python Packages
Scikit-HEP: Other
Other C++
Scikit-HEP: Histograms
pybind11 (python_example, cmake_example, scikit_build_example) • Conda-Forge ROOT
cibuildwheel • build • scikit-build (cmake, ninja, sample-projects) • Scikit-HEP/cookie
boost-histogram • Hist • UHI • uproot-browser
Vector • Particle • DecayLanguage • repo-review
Other Python
Jekyll-Indico
Other Ruby
CLI11 • GooFit
Modern CMake • CMake Workshop
Computational Physics Class
Python CPU, GPU, Compiled minicourses
Level Up Your Python
My books and workshops

PyCon 2022 -Scikit-HEP Developer Pages: Guidelines for modern packaging

  • 1.
    Scikit-HEP Developer Pages Guidelinesfor modern packaging Henry Schreiner
  • 2.
  • 3.
    and the Scikit-HEP Developerpages! General purpose packages too!
  • 4.
  • 7.
    Packaging (classic andsimple) Style guide (in pre-commit) Development setup pytest Static typing GitHub Actions Nox scikit-hep/cookie Repo Review Tutorials Specification Kept up to date with nox & GitHub Actions
  • 13.
    Pre-commit hooks Black Check-Manifest (setuptoolsonly) Type checking PyCln Flake8 YesQA isort PyUpgrade Setup.cfg format Spelling PyGrep hooks Clang-format (C++ only) Shellcheck (shell scripts only) PyLint (noisy) Style
  • 14.
    Scikit-HEP Cookie 11 backendsto pick from Generation tested by nox In sync with the developer pages pipx run cookiecutter gh:scikit-hep/cookie Setuptools Setuptools PEP 621 Flit Hatch PDM Scikit-build Setuptools C++ Maturin (Rust) + more!
  • 16.
  • 17.
    Installs and runs PyPIpackage in your browser.
  • 19.
    HEP application by anotherScikit-HEPer ~1 day later
  • 20.
    henryiii henryschreiner3 Plumbum • POVM• PyTest GHA annotate-failures https://iscinumpy.dev https://scikit-hep.org https://iris-hep.org C++ & Python Building Python Packages Scikit-HEP: Other Other C++ Scikit-HEP: Histograms pybind11 (python_example, cmake_example, scikit_build_example) • Conda-Forge ROOT cibuildwheel • build • scikit-build (cmake, ninja, sample-projects) • Scikit-HEP/cookie boost-histogram • Hist • UHI • uproot-browser Vector • Particle • DecayLanguage • repo-review Other Python Jekyll-Indico Other Ruby CLI11 • GooFit Modern CMake • CMake Workshop Computational Physics Class Python CPU, GPU, Compiled minicourses Level Up Your Python My books and workshops