Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: move to scikit-build-core #48

Merged
merged 2 commits into from
May 19, 2023
Merged

Conversation

henryiii
Copy link
Collaborator

@henryiii henryiii commented May 19, 2023

Trying out scikit-build-core.

This should also fix the missing py.typed and _version.pyi files from the current wheels.

See list of improved features at https://github.com/scikit-build/scikit-build-core:

  • 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
  • Powerful config system, including config options support
  • Automatic inclusion of site-packages in CMAKE_PREFIX_PATH
  • FindPython is backported if running on CMake < 3.26.1 (configurable), supports
    PyPY SOABI & Limited API / Stable ABI
  • 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+)
  • Support for caching between builds (opt-in by setting build-dir)
  • Support for writing out to extra wheel folders (scripts, headers, data)
  • Dedicated entrypoints for module and prefix directories
  • Several integrated dynamic metadata plugins (proposing standardized support
    soon)
  • Experimental editable mode support, with optional experimental auto rebuilds
    on import
  • Supports WebAssembly (Emscripten/Pyodide).

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

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

@henryiii
Copy link
Collaborator Author

henryiii commented May 19, 2023

Do you compile a CPython extension, actually? Is they any difference between a cp37 wheel and a cp311 wheel? If not, scikit-build-core supports native production of single pythonless wheels. It also supports expanding all macOS tags from universal.

pyproject.toml Show resolved Hide resolved
pyproject.toml Outdated Show resolved Hide resolved
pyproject.toml Show resolved Hide resolved
@kratsg
Copy link
Owner

kratsg commented May 19, 2023

Do you compile a CPython extension, actually? Is they any difference between a cp37 wheel and a cp311 wheel? If not, scikit-build-core supports native production of single pythonless wheels. It also supports expanding all macOS tags from universal.

no, there's definitely no CPython (or python-binding) going on here. This is basically, cross-compile the files for each platform and ship the so.

pyproject.toml Show resolved Hide resolved
.cirrus.yml Outdated Show resolved Hide resolved
henryiii and others added 2 commits May 19, 2023 09:20
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
@kratsg kratsg merged commit 10887f1 into kratsg:main May 19, 2023
@henryiii
Copy link
Collaborator Author

FYI, don't make a release quite yet, I need to fix the license file location in scikit-build-core 0.4.0. 0.4.1 should fix that.

@henryiii
Copy link
Collaborator Author

scikit-build-core 0.4.1 is out, everything should be fine again. :)

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.

2 participants