Repository navigation
Version 1.1.0
Packages can now declare their own config-settings in a tool.scikit-build.config-setting table. This gives packages the opportunity to add a documented interface in place of raw CMake defines. The new scikit-build settings list command shows all the config-settings that a project accepts. New settings include cmake.fresh, if.not overrides, and sdist.resolve-symlinks = "error". import-names and import-namespaces (PEP 794) are filled from Python if set as dynamic. project.version is now kept exactly as written in the metadata (1.1+). Editable loaders expose their search paths, redirect mode gives a deterministic __path__ order, and you can set up a persistent install tree even without rebuild-on-import. Other bugs and performance issues are addressed.
Features:
- New settings:
- CLI:
scikit-build settings listlists supported config-settings by @henryiii in #1522scikit-build build requiresaccepts-C/--config-settingto pass config-settings to the backend hook, and--type {static,dynamic,both}to select the staticbuild-system.requires, the dynamic hook output, or both by @henryiii in #1584
- SDist:
- Metadata:
import-namesandimport-namespaces(PEP 794) listed inproject.dynamicare computed from the Python packages (#1536) by @henryiii in #1578project.versionis kept as written in theVersionmetadata field and inSKBUILD_PROJECT_VERSION_FULL, so a calendar version such as2024.01.05keeps its leading zeros. Filenames stay normalized. Requiresminimum-version1.1 or unset by @henryiii in #1572
- Editable:
- File API:
- Drop Python 3.8 by @henryiii in #1281
Fixes:
- Builder:
- Compute the wheel tag from the build environment (
tool.scikit-build.env) by @henryiii in #1575 - Honor a
CMAKE_GENERATORdefine when computing build requirements by @henryiii in #1557 - Read
Py_GIL_DISABLED="0"as not free-threaded by @henryiii in #1574 - Set
Python_FIND_ABIfor free-threaded builds on CMake 3.30+ by @henryiii in #1532 - Don't pass the
Python_LIBRARYhint in SABI mode on Windows by @henryiii in #1533 - Warn once for unsupported
CMAKE_ARGSdefines by @henryiii in #1573 - Drop two-token
-D CMAKE_BUILD_TYPEfromCMAKE_ARGSby @r3wretrhy in #1543 - Keep building when the CMake file-api reply is broken by @henryiii in #1562
- Compute the wheel tag from the build environment (
- CMake discovery:
- Prefer
cmakeovercmake3when searching (#1514) by @henryiii in #1515 - Double the CMake discovery timeout on native Apple Silicon (#1530) by @DSeaStar in #1535
- Correct the riscv64 manylinux tag for cmake wheels by @henryiii in #1563
- Program search, build-dir info, and module detection robustness by @henryiii in #1554
- Prefer
- Settings:
- Editable:
- SDist:
- File API:
- Setuptools:
- Init:
- The
abi3ttemplate setsSOSABIas well asSOABIby @ngoldbaum in #1587
- The
- Variants:
- Limit
fastjsonschemaon Python 3.9 by @henryiii in #1524
Performance:
- Scan entry points once for all groups by @henryiii in #1559
- Cache entry-point scans and known-wheel lookups by @henryiii in #1545
- Build and builder hot paths by @henryiii in #1547
- Read settings once per build in the setuptools plugin by @henryiii in #1548
- Cut editable shim import time by @henryiii in #1546
- Compile the CMake tokenizer regex once by @henryiii in #1544
- Look up nested
.gitignorespecs by ancestor by @henryiii in #1550
Documentation:
- Add an advanced topic on wrapping the build backend by @henryiii in #1518
- Add
llms.txtand markdown copies of pages by @henryiii in #1523 - Recommend rebuilding editables via
find_specbefore import by @henryiii in #1510 - Name the external dynamic-metadata plugins by @henryiii in #1511
- Update moved intersphinx inventory URLs by @henryiii in #1569
CI and testing:
- Test the matrix CMake version, fix pass job needs, coverage and test fixes by @henryiii in #1553
- Install dynamic build requires in the downstream session by @henryiii in #1580
- Stop rebuilding the wheelhouse wheel every session by @henryiii in #1549
- Allow the setuptools-scm
file_findersdeprecation by @henryiii in #1568 - Accept the new CPython 3.15rc1 abi3 suffix by @henryiii in #1529
- Pin the wrapper's CMake install staging layout by @henryiii in #1512
Internal:
- Bump the CMake policy upper bound to 4.4 by @henryiii in #1509
- Avoid CMake 4.4.0's broken Windows SABI detection by @henryiii in #1513
- Backport Fedora downstream changes by @LecrisUT in #1491
- Source cleanups from the review by @henryiii in #1552
- Clean up leaked and stale config by @henryiii in #1551
- Use
unlink(missing_ok=True)for staleCMakeCache.txtremoval by @henryiii in #1517
Full Changelog: v1.0.3...v1.1.0