Skip to content

build: move to scikit-build-core - #2388

Open
henryiii wants to merge 2 commits into
IntelPython:masterfrom
henryiii:scikit-build-core
Open

henryiii wants to merge 2 commits into
IntelPython:masterfrom
henryiii:scikit-build-core

Conversation

@henryiii

@henryiii henryiii commented Sep 28, 2026 •

Copy link
Copy Markdown

Here's some potential suggestions based on #2345, you can update that one or go from this one. This uses setuptools-scm. I don't have a setup to test locally.

🤖 AI text below 🤖

Closes #2341. This PR starts from current master and uses #2345 as a reference.

  • The build backend is now scikit-build-core, so setup.py is removed. The old setup.py used internals of skbuild.setuptools_wrap that are not in scikit-build 1.0.
  • The version now comes from setuptools-scm, not versioneer. It uses the default scheme, so master builds as 0.23.0.dev401+g<hash>. This is PEP 440, and each new commit gives a higher version. .git_archival.txt makes git archive tarballs get a version too.
  • The wheel and sdist contain the same files as before. Git-ignored files that are tracked, such as tests/_c_ext.c and apis/include/*.h, are forced into the sdist.
  • CMake:
    • Cython builds with cython_transpile from cython-cmake.
    • Install destinations are relative.
    • dpctl-config.cmake still goes to <prefix>/lib/cmake/dpctl.
    • The docs output goes into the build directory.
  • The conda recipes now list python-build, wheel, cmake and ninja directly. Build dpctl with scikit-build-core #2345 failed because they were missing.
  • The scripts (build_locally.py, gen_coverage.py, gen_docs.py) use pip install [-e], each with its own build directory.
  • The CMake examples now use scikit-build-core. The C example still uses setuptools.
  • backfill-docs.yml is not changed, because it builds old tags that still have setup.py.

I tested the Cython transpile step and the wheel and sdist contents locally. I have no SYCL compiler, so CI runs the first full build. The coverage and docs scripts are the parts most likely to need changes. Please check that the new version format works with your internal CI.

Replace the setup.py build (which uses skbuild.setuptools_wrap internals)
with scikit-build-core, and versioneer with setuptools-scm.

Closes IntelPython#2341.

Assisted-by: ClaudeCode:claude-opus-5-5
Assisted-by: ClaudeCode:claude-opus-5-5
@intel-python-devops

Copy link
Copy Markdown

Can one of the admins verify this patch?

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Scikit-build (classic) 1.0 internals

2 participants