Releases: scikit-build/scikit-build-core
Version 0.9.4
Version 0.9.4
This version supports the newly available free-threading variant of Python 3.13b1 (mostly related to skipping the stable ABI). We test this via the manylinux/musllinux images. There's also a new feature requested by third-party packagers: the ability to pass args directly to the build tool.
Features:
Fixes:
- Support free-threaded builds of Python 3.13+ by @henryiii in #741
- Slightly better stable ABI behavior using PyPy by @henryiii in #741
Documentation:
- Fix example of configuration overrides in configuration.md by @wu-vincent in #739
- Update stable ABI instructions by @henryiii in #740
CI and testing:
- Use pylint 3.2, gha reporter by @henryiii in #745
- Some minor improvements to running tests on some systems by @henryiii in #741
New Contributors
- @wu-vincent made their first contribution in #739
Full Changelog: v0.9.3...v0.9.4
Version 0.9.3
This version ensures the Hatchling plugin correctly indicates editable mode is not yet supported, supports CMAKE_ARGS
that have spaces, and has a bit of other minor cleanup.
What's Changed
Fixes:
- Properly indicate lack of editable support in Hatch plugin by @ofek in #728
- Don't generate
entrypoints.txt
if none set by @henryiii in #729 - Don't warn if lib not found on UNIX, just debug by @henryiii in #730
- Support
CMAKE_ARGS
that may have spaces inside quotes by @vyasr in #727
Docs:
CI and testing:
- Use
macos-13
andmacos-14
explicitly by @henryiii in #724 macos-latest
is changing tomacos-14
ARM runners by @henryiii in #725
New Contributors
Full Changelog: v0.9.2...v0.9.3
Version 0.9.2
Quick fix for quick fix in 0.9.1; if cmake
is a broken script (which can happen if you pip install outside an environment then enter an environment, there was an unbound local error instead of ignoring the broken cmake script.
What's Changed
Fixes:
Full Changelog: v0.9.1...v0.9.2
Version 0.9.1
Version 0.9.0
This version adds the ability to inherit
in override tables, matching a similar feature added to cibuildwheel 2.17's overrides. You can now write out extra metadata to ${SKBUILD_METADATA_DIR}
. A new Hatchling plugin is provided as an experimental feature (will likely be made a separate package in the future like the setuptools plugin).
The meaning of wheel.exclude
has been changed to match on the wheel path, rather than the source path. We could not find any projects that would be affected by this change, so it was not added to the minimum-version protection policy. This now allows you to ignore CMake outputs as well.
What's Changed
Features:
- Preserve additivity of
cmake.define
acrossoverrides
tables by @stubbiali in #564 - Add metadata dir access by @henryiii in #702
- Experimental hatchling builder by @henryiii and @aryamanjeendgar in #637
- Vendor pyproject-metadata by @henryiii in #703
- Always require pathspec by @henryiii in #711
Fixes:
- Exclude installed files if listed in exclude by @henryiii in #652
- Make
.git_archival.txt
reproducible by @LecrisUT in #706 - Use
cmake -E
capabilities instead ofcmake --version
by @KyleFromNVIDIA in #675 - Ensure many/musl tags not selected by @henryiii in #698
- purelib should set py3 tag if unset by @henryiii in #661
- Validate description for 0.9+ by @henryiii in #709
- Support bools in config settings by @henryiii in #712
API changes:
extra_settings
for SettingsReader by @henryiii in #697GetRequires
args changed by @henryiii in #699- Make
from_file
a little more powerful by @henryiii in #700 - Metadata is part of the build backend by @henryiii in #708
Documentation:
cmakelists.md
WindowsSOABI
suffix variable by @thewtex in #684- Fix hatch init command by @thewtex in #677
- Fix install strip default by @henryiii in #681
- Improve
ninja.make-fallback
description in the README by @thewtex in #676 - Mention printouts by @henryiii in #660
CI and testing:
- Lower
pybind11
test dependency by @LecrisUT in #691 - Some cleanup from uv branch by @henryiii in #686
- Fedora CI maintenance by @LecrisUT in #689
- Small additions by @henryiii in #694
- Some changes from uv job by @henryiii in #693
- Fix setuptools on Python 3.12 by @henryiii in #701
- Fedora: Port downstream PR-49 by @LecrisUT in #678
New Contributors
- @KyleFromNVIDIA made their first contribution in #675
Full Changelog: v0.8.2...v0.9.0
Version 0.8.2
This version fixes a few small issues related to configuration. The wheel tag is fixed when wheel.platlib
is False, inplace editable installs ignore build-dir
, and install-dir
no longer affects the generate path.
What's Changed
Fixes:
- Ensure
wheel.platlib
being false sets<abi>-<platform>
as"none-any"
by @jcfr in #655 - Inplace editable install should ignore
build-dir
by @henryiii in #644 install-dir
shouldn't affect generate path by @henryiii in #654- Expand info printing by @henryiii in #651
Documentation:
- Clarify requirement for using "inplace" editable mode by @jcfr in #643
- Update README to use modern GitHub admonition by @jcfr in #641
- be explicit about what it means to "use SKBUILD_SOABI" by @minrk in #646
New Contributors
Full Changelog: v0.8.1...v0.8.2
Version 0.8.1
This version fixes two small issues with specific situations: if ninja/cmake is present but not executable, and ninja on Windows not respecting the build type.
What's Changed
Fixes:
- Do not exit with exec permission error in ninja check by @thewtex in #626
- Include
CMAKE_BUILD_TYPE
on Windows ninja by @henryiii in #640 - Use
-
vs_
in error message by @nbelakovski in #638 - Make run command logged at info by @LecrisUT in #639
Documentation:
- Warning about using
cmake.args
for defines by @LecrisUT in #620 - Correct API usage example by @henryiii in #627
New Contributors
- @thewtex made their first contribution in #626
- @nbelakovski made their first contribution in #638
Full Changelog: v0.8.0...v0.8.1
Version 0.8.0
This version replaces the cmake
/ninja
minimum-version config option with a more powerful free-form version field. Scikit-build-core will now respect CMAKE_EXECUTABLE
for finding CMake. You can override based on the build state, allowing overrides for editable installs, for example. You can specify a build tag (AKA build number). And you can define CMake variables from environment variables.
What's Changed
Features:
- Add
build-tag
by @henryiii in #612 - Add
if.state
to overrides by @henryiii in #600 - Add
cmake.version
andninja.version
by @henryiii in #602 - Support
CMAKE_EXECUTABLE
by @henryiii in #603 - Config to set CMake variables with environment variables by @stubbiali in #565
Fixes:
- Include license file entry in search by @henryiii in #601
- Make sure purelib is indicated by @henryiii in #613
- Project version should always be CMake parsable by @henryiii in #608
Tests and internal:
- Compare uncompressed files by @henryiii in #610
- A couple of minor cleanups by @henryiii in #599
- Some preview Ruff touchups by @henryiii in #617
New Contributors
- @stubbiali made their first contribution in #565
Full Changelog: v0.7.1...v0.8.0
Version 0.7.1
This is a quick fix for a downstream change in hatch-fancy-pypi-readme that broke our plugin wrapper.
Fixes:
CI and tests:
- Remove deprecated mypy setting (now defaults on) by @henryiii in #589
- Group dependabot updates by @henryiii in #584
- Use downstream tmt plans by @LecrisUT in #518
Docs:
Full Changelog: v0.7.0...v0.7.1
Version 0.7.0
This release features several large improvements to overrides: a new if.any
group to allow selections based on any item being true, and a new if.env
option for selecting an override based on environment variables. You can now build pure Python packages with wheel.cmake = false
, perfect for providing a slower pure Python version of a package on unsupported systems via overrides.
There's also a new inplace
mode for editable installs, which has drawbacks but feels like the classic "--inplace"
setting in setuptools and can enable some tooling that would otherwise not support modern editable installs to work. If you are using Cython to access .pxd
files, modern ("redirect") editable installs now support that. And to help avoid collisions with a future user feature, config settings can now be passed with an optional namespace, skbuild.
, as well.
Features:
- Add inplace mode for editable installs by @henryiii in #553
- Add
wheel.exclude
by @henryiii in #560 - Support cmake-less runs (for overrides) by @henryiii in #550
- Support
if.any
by @henryiii in #548 - Support
if.env
by @henryiii in #549 - Support namespaced config settings (
skbuild.
) by @henryiii in #556
Fixes:
- Correct issue with editable template & add more tests by @henryiii in #552
- Support editable installs of Cython
.pxd
files by @vyasr in #516
CI:
Docs:
Full Changelog: v0.6.1...v0.7.0