Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
Henry Schreiner edited this page Nov 18, 2022 · 14 revisions

Roadmap

This is a proposed roadmap for Scikit-build during 2022-2025, during support of NSF cooperative agreement OAC-2209877.

Some smaller work items for scikit-build classic

  • Support pytest 7.2+
  • Use standard pytest idioms like composable fixtures to make testing simpler and easier.
  • Remove unsupported features, like easy-install

The next generation Scikit-build

We have been developing a pure PEP 517 builder, called scikit-build-core. This is intended to the the build backend in a post-setuptools centric ecosystem.

The following limitations are present compared to classic scikit-build:

  • The minimum supported CMake is 3.15
  • The minimum supported Python is 3.7

Scikit-build-core comes with the following features over scikit-build classic:

  • Better warnings, errors, and logging
  • No warning about unused variables
  • Automatically adds Ninja and/or CMake only as required
  • No dependency on setuptools, distutils, or wheel in build mode.
  • Powerful config system, including config options support in build mode.
  • Automatic inclusion of site-packages in CMAKE_PREFIX_PATH
  • FindPython is backported if running on CMake < 3.24 (included via hatchling in a submodule)
  • Limited API / Stable ABI and pythonless tags supported via config option
  • No slow generator search, ninja/make or MSVC used by default, respects CMAKE_GENERATOR
  • SDists are reproducible by default (UNIX, Python 3.9+)

Some known missing features that will be developed soon:

  • No support for caching between builds
  • No editable mode support
  • The docs are not written
  • Dedicated entrypoints are planned for projects wanting to support discovery
  • No support for other targets besides install
  • Wheels are not fully reproducible yet
  • Windows ARM support missing

Once this is ready, classic scikit-build will move to using scikit-build-core. This will provide some of the benefits for classic scikit-build core users (but not all, users should directly use scikit-build-core in their pyproject.toml's for all benefits). This would solve some long-standing feature requests, like supporting setup.cfg / pyproject.toml. This will happen in Scikit-build 1.0.

Other plans

  • Add a cookiecutter to make it easy to setup a new project combining Python and C++, similar to gh:scikit-hep/cookie
  • Work on expanded documentation, updating and writing tutorials
  • Work on new website
  • Add extension discovery system, probably based on entrypoints, allowing projects (pybind11 to start) to broadcast that they have a CMake package configuration file. Could create ecosystem of PyPI/Conda projects that provide CMake interfaces!
  • Work on an extensionlib PEP for generalized build plugins.
Morty Proxy This is a proxified and sanitized view of the page, visit original site.