Releases: scikit-build/scikit-build-core
Version 0.12.2
We've fixed another issue in the new file inclusion mode on Windows. We now always normalize SDist names, even if minimum-version is set to 0.4 or older, due to the fact PyPI no longer accepts non-normalized SDist names. Please increase your minimum-version anyway, though! Finally, the debug logging for file inclusion now displays the exact rule that triggered the include/exclude
behavior.
Fixes:
- Use
as_posixfor prefix matching for better Windows support by @henryiii in #1246 - Always normalize SDist names, even in
<0.5compat mode by @henryiii in #1247 - Better logging on why something fails/passes file inclusion check by @henryiii in #1250
Internal:
Full Changelog: v0.12.1...v0.12.2
Version 0.12.1
This fixes a regression on Windows when targeting 32-bit wheels on a 64-bit host. This reverts part of #1209. We have added 32-bit testing on Windows to our CI.
Fixes:
Documentation:
- Use newly fixed
click-extrafor admonitions by @henryiii in #1232 - show CI state of the main branch in the badge by @LecrisUT in #1236
Full Changelog: v0.12.0...v0.12.1
Version 0.12.0
What's Changed
This release adds a new sdist.inclusion-mode setting, with a new default: ignored directories are no longer traversed unless a file is specifically allowed inside of it via the base path. This should be faster and less surprising. The old behavior ("classic") and no gitignore ("manual") are also provided.
Features:
sdist.inclusion-modeby @henryiii in #1048- Better support for cross-compilation by @LecrisUT in #1050
- Support fancy-pypi-readme 25.1's package name, bump, drop workarounds by @henryiii in #1201
Fixes:
- Add a setting to disallow hard-coding some setting keys in the
pyproject.toml- currently applied tofail, by @LecrisUT in #1078 - Respect
_PYTHON_HOST_PLATFORMenv variable by @ryanking13 in #1196 - Better support for ninja on Windows by @henryiii in #1209
- Move the file-api parsing to a debug message by @LecrisUT in #1184
- (Hatchling) Path issue on Windows mingw64 and UCRT by @henryiii in #1210
- (Setuptools) handle generic setup return type by @henryiii in #1202
Documentation:
- Add buildgen to list in quickstart by @henryiii in #1220
- Improve links back to GitHub by @henryiii in #1181
- Mention Android support by @mhsmith in #1142
- Move community meeting link by @henryiii in #1221
- Source link by @henryiii in #1224
- Color CLI on Python 3.14+ by @henryiii in #1218
- Use
sphinx-programoutputwith new ANSI support by @henryiii in #1226
CI and testing:
- Test on 3.14t in CI by @henryiii in #1185
- Cases for different use cases of generated files by @eirrgang in #1193
- Consolidate editable and isolated fixtures by @LecrisUT in #1194
- Fix Apple Silicon isolation check by @henryiii in #1227
- Fix local runs on AS macOS by @henryiii in #1182
- Rework downloading the wheelhouse for isolation tests by @henryiii in #1199
- Stale downloads could break tests by @henryiii in #1223
- Test-core, pybind11 in full test by @henryiii in #1200
- cmake-version was missing by @henryiii in #1231
Internal:
- Bumped internal pyproject-metadata to 0.11 by @henryiii in #1230
- Avoid a numpy yanked warning by @henryiii in #1222
- Break the circular dependency in pybind11 by @LecrisUT in #1188
- Bump PyPy to currently supported 3.11 by @DimitriPapadopoulos in #1164
- Bump macOS by @DimitriPapadopoulos in #1165
- Fix a broken line in the noxfile by @henryiii in #1208
- Ignore lock files too by @henryiii in #1206
- Increase test duration for pytest by @LecrisUT in #1219
- Move extras to groups by @henryiii in #1177
- pytest
log_levelis better thanlog_cli_levelby @henryiii in #1178 - Support PEP 604 unions in sources (#1213) by @martinezlc99 in #1214
- Switch to
typosby @henryiii in #1192 - Tests expect typing extensions on 3.9 by @henryiii in #1203
- Use SPDX license for our license by @henryiii in #1183
Internal (ruff linting):
- Add a few ruff checks by @henryiii in #1174
- Add even more ruff by @henryiii in #1175
- Enable more ruff using config by @henryiii in #1179
- Set ruff to ALL by @henryiii in #1176
New Contributors
- @DimitriPapadopoulos made their first contribution in #1165
- @ryanking13 made their first contribution in #1196
- @mhsmith made their first contribution in #1142
- @martinezlc99 made their first contribution in #1214
Full Changelog: v0.11.6...v0.12.0
Version 0.11.6
This release adds known wheels for the riscv64 platform, and adjusts a command timeout to handle slow startup on Rosetta.
Fixes:
- Adjust the timeout when running on rosetta by @henryiii in #1131
- Add known wheels for riscv64 by @mayeut in #1129
Internal:
CI and testing:
Documentation:
- Fix small typo in docs introduction by @vepadulano in #1122
New Contributors
- @vepadulano made their first contribution in #1122
Full Changelog: v0.11.5...v0.11.6
Version 0.11.5
This release speeds up large directories (more directory changes/optimization planned for 0.12), and adds a warning about 3.13.4 being broken on Windows.
Fixes:
- Improve
.gitignoreiteration speed by @silversquirl in #1103 - Warn on 3.13.4 on Windows by @henryiii in #1104
- Add debug logging explaining why a file is included/excluded by @henryiii in #1110
Documentation:
New Contributors
- @mabruzzo made their first contribution in #1096
- @silversquirl made their first contribution in #1103
Full Changelog: v0.11.4...v0.11.5
Version 0.11.4
This release improves support for GraalPy and fixes a few other minor issues.
Fixes:
- Typo in license-files by @henryiii in #1084
- Fix dynamic-metadata iteration (only affected GraalPy) by @henryiii in #1092
- Better abiflags implementation, uses ABIFLAGS on 3.14+, supports GraalPy by @henryiii in #1092
- File API
commandFragmentsis optional by @henryiii in #1092 - Add
python -m scikit_build_coreprintout and a few CLI issues by @henryiii in #1091 - Add some platform info to logging by @henryiii in #1094
Internal:
- Explicit mypy ignores by @henryiii in #1087
- Adjust typing to be ready for next mypy release by @henryiii in #1088
Documentation:
Full Changelog: v0.11.3...v0.11.4
Version 0.11.3
This release fixes some fields in the expanded supported dynamic-metadata fields from 0.11.2. It also now is tested on Python 3.14, including adding color to --help on the experimental commands (now documented).
Fixes:
CI and testing:
- Officially support Python 3.14, color help @henryiii in #1074
- Remove no-wheel based on virtualenv version by @henryiii in #1071
- Work when
CMAKE_GENERATORis set by @henryiii in #1066 - Try a workaround for packit
propose-downstreamby @LecrisUT in #1067 - Update coverage a bit by @henryiii in #1073
Documentation:
- Generate config value reference by @LecrisUT in #1052
- Update and fix projects list by @henryiii in #1075
- Document CLI utilities by @henryiii in #1080
New Contributors
Full Changelog: v0.11.2...v0.11.3
Version 0.11.2
This release allows dynamic-metadata to reference other fields, which enables a new plugin, "template", and enables the fancy readme plugin to include the version. There are also a few fixes; Python_EXECUTABLE is now a proper CMake path, and using a renamed option from the command line or environment variable no longer triggers an error when the min required version is from before that was introduced.
What's Changed
Features:
- Add template dynamic-metadata plugin and support requesting other fields by @henryiii in #1047
- Parse the CMake file-api during configuration by @LecrisUT in #1016
- Add a couple of build commands by @henryiii in #1055
Fixes:
- Make sure all paths are CMake paths by @henryiii in #1063
- Support overriding renamed options by @henryiii in #1054
CI and testing:
- Add Windows ARM by @henryiii in #1046
- Add more tests of package traversal by @vyasr in #906
- A few better ids by @henryiii in #1058
Docs:
- Fix community meeting link by @jcfr in #1049
- Add a field metadata to the setting fields by @LecrisUT in #1051
- Document how to deal with dynamic linking by @LecrisUT in #1022
- Fix typo in macOS repair wheel tool name by @burgholzer in #1042
Full Changelog: v0.11.1...v0.11.2
Version 0.11.1
This release contains two small fixes for edge case issues.
What's Changed
Fixes:
- Bump pyproject-metadata to handle form feeds on Python < 3.12.8 by @henryiii in #1014
- Increase timeout on CI by @henryiii in #1019
CI and testing:
- Ignore deprecation message from cattrs on Python 3.14 alphas by @LecrisUT in #1020
- Add more integration tests in Fedora by @LecrisUT in #800
- Restore example builds for Windows/macOS by @henryiii in #1025
Internal:
- Remove leftover Python 3.7 checks by @LecrisUT in #1011
- Bump pytest version and include pytest-xdist by @henryiii in #1008
- Bump to ruff 0.10, work around bug by @henryiii in #1015
Docs:
- Clarify verbosity options by @LecrisUT in #1018
- Fix incorrect configuration example by @buddly27 in #1023
- Fix incorrect name (
PYBIND11_NEWPYTHON->PYBIND11_FINDPYTHON) by @henryiii in #1021
New Contributors
Full Changelog: v0.11.0...v0.11.1
Version 0.11.0
This version adds support for PEP 639 (license expressions) and updates the default METADATA version 2.2. Support for Python 3.7 has been removed. You can use build.requires to inject build requirements using overrides.
What's Changed
Features:
- Update vendored pyproject-metadata (PEP 639 support) by @henryiii in #917
- 0.11+ default to metadata 2.2 by @henryiii in #986
- Rework CMake search path settings and add
cmake.rootby @LecrisUT in #880 SKBUILD_SABI_VERSIONby @henryiii in #962- Support TOML lists in
cmake.defineby @alexreinking in #921 - Add new field
build.requiresby @LecrisUT in #992 - Drop python<=3.7 support by @kloczek in #769
- Setuptools plugin: pyproject-toml only config support by @henryiii in #975
- Setuptools plugin: error for
cmake_install_targetby @henryiii in #976
Fixes:
- Lock during experimental
editable.rebuildby @hauntsaninja in #968 - Add known wheels for armv7l by @mayeut in #960
- Ignore
build-dirautomatically by @henryiii in #916 - Longer timeout on Windows by @henryiii in #974
path_to_moduleshould handle hidden files (e.g..clang-tidy) correctly by @tae-jun in #987- Timeout checking cmake/ninja by @henryiii in #973
Internal:
- Add a
formatmodule that is used in the expansion ofpyproject.tomlby @LecrisUT in #998 - Bump Ruff to 0.8.0 by @AlexWaygood in #949
- Add citation by @henryiii in #945
- Vendor updates by @henryiii in #918
CI and testing:
- Correct the function prototype defined in the stub file in
simplest_cexample by @LinZhihao-723 in #937 - Synchronize with Fedora downstream by @LecrisUT in #884
- Fix RTD builds when last git tag is more than 50 commits behind by @agriyakhetarpal in #1001
- Tighten up permissions a bit by @henryiii in #983
tmttests improvements by @LecrisUT in #899- Update deployment a bit by @henryiii in #922
- Use astral-sh/setup-uv instead by @henryiii in #923
- Simpler noxfile by @henryiii in #924
- Test on Linux ARM & Python 3.14 alphas by @henryiii in #1003
- Support for parallel testing by @henryiii in #1004
Docs:
sphinx-apidocchanged its mind by @LecrisUT in #996- Fix Google meet reference to use updated link by @jcfr in #931
- Clarify docs for activating stable ABI by @eirrgang in #940
- Consistently use backticks to reference Python module components by @jcfr in #956
- Fix instructions to check if
Development.SABIModulewas requested by @jcfr in #957 - Add some notes and warnings about cross-compilation by @henryiii in #985
- Add sphinx-tippy by @LecrisUT in #1000
- Correct the order of entry-points and CMake variables by @njzjz in #948
- Quickstart updates by @henryiii in #939
- Some restructuring by @LecrisUT in #997
New Contributors
- @LinZhihao-723 made their first contribution in #937
- @eirrgang made their first contribution in #940
- @AlexWaygood made their first contribution in #949
- @mayeut made their first contribution in #960
- @hauntsaninja made their first contribution in #968
- @kloczek made their first contribution in #769
- @tae-jun made their first contribution in #987
- @agriyakhetarpal made their first contribution in #1001
Full Changelog: v0.10.7...v0.11.0