# Scikit-build Community Meeting #1: 2022-11-18 ###### tags: scikit-build ## [Kick-off Presentation](https://docs.google.com/presentation/d/1k__K3zQ8AWr2-W0HtXCp1EW3VWrotIhVX6h9WwZt5zw/edit) - HS ## Attending - Jean-Christophe Fillion-Robin (Kitware) - Henry Schreiner (Princeton) - Matt McCormick (Kitware) - Ralf Gommers (Quansight Labs) - Jim Pivarski (Princeton) - Driss Guessous (Meta, Pytorch) - Alban Desmaison (Meta, Pytorch) - Mikey Dagitses - Nikita Shulga (Pytorch) - Jean-Christophe Morin ([ASWF](https://github.com/AcademySoftwareFoundation)) - Most project are C++ libraries with Python bindings. Currently using `setuptools` and CMake - Vyas Ramasubramani (NVIDIA, RAPIDS) - Saransh Chopra (undergrad at DU) - will probably be migrating [PyBaMM](https://github.com/pybamm-team/PyBaMM) to use the new scikit-build - Vincenzo Eduardo Padulano (CERN, ROOT) - Vineet Bansai (Princeton) - Angus Hollands (Awkward) ## Discussion * pip - HS * missing short way for specifying config setting. Currently only support `--config-settings <settings>`. See documentation [here](https://pip.pypa.io/en/stable/cli/pip_wheel/#cmdoption-config-settings) * Ideally it should match what is available through [build](https://pypa-build.readthedocs.io/en/stable/#python--m-build-options) tool: `--config-setting CONFIG_SETTING, -C CONFIG_SETTING` * missing ability to pass list as setting * We kind of need a way of mapping dependencies to outside of PyPI too. CMake/ninja/patchelf happen to be on PyPI, but BLAS, OpenMP & co are not. That's one thing we plan to work on at Quansight Labs soon (is going to need a prototype & PEP at some point). - RG * CI build wheel discussion * Pre-pep discussions have been too specific * sdist -> people try to build from source * sdist dependencies for non-PyPI dependencies like complier, etc. * Declare that things other than packages are provided * sdist specify that it should not be built unless specifically requested * pip install --no-sdist, but this is not the default * package metadata to make this the default behavior (although changing metadata is required) * need to address the package config question. Currently do not own the corresponding pypi package. (Henry: I probably missing some of the details her) * to help with conversion from `setup.py` to `pyproject.toml` hatch provide a tool. This was used to help with https://github.com/scikit-hep/iminuit/pull/812. (HS: Do you have reference to the documentation ?) * "how large scikit-build-core appears" - RG * smaller than it looks - HS * most features are for wheel creation * most other features come from CMake * does not support non-PEP 621 * Artifact that generates what should be package data - VB * Difficult with setuptools * Install into `${SKBUILD_DATA_DIR}` and it goes into the wheel data dir * Also scripts dir * How to start a transition from setuptools / scikit-build classic? * Avoid heavy, custom things in setup.py * Open issues for functionality not possible in scikit-build-core, discuss need for creating a hook? * Example for getting started: scikit-build tests/projects, sckit-build-example, CMake for Python Awkward v2, IMinuit, GooFit * Examples in scikit-build * Will be transitioned to be based on scikit-build-core for scikit-build v1.0 * List of packages transitioning to scikit-build-core * GitHub Dicussion, forum topic * Forum, etc * Will redirect mailing list to forum - JCFR * * "core" -> "build", "pyproject" ? * Awkward initial success * Next meeting Dec 16: Scikit-build Community Meeting Friday, December 16 · 12:00 – 1:00pm Eastern Time Video call link: https://meet.google.com/dvx-jkai-xhq Or dial: ‪(US) +1 561-614-0679‬ PIN: ‪891 659 411‬# More phone numbers: https://tel.meet/dvx-jkai-xhq?pin=9457587794472