Replies: 0 comments 1 reply
-
|
And here's the summary version: 🤖 AI text below 🤖 I've written the report to What's in the tracker134 open issues, no open PRs. Only 5 are milestoned: v1.0.0 → scikit-build/scikit-build#1145, #1147, #1148, scikit-build/scikit-build#1149; v0.12.0 → #1105. Everything else is unscheduled, so the real planning work is deciding what to pull forward. The de-facto 1.0 definition (already milestoned)
The big themes being proposed
My suggested 1.0 cut
The two largest discussion threads worth your own eyes: #230 (metadata PEP, 54 comments — moved to discuss.python.org) and #172 (version-from-CMake, active mid-2025). #1017 (46c) and scikit-build/scikit-build#1139 (30c) are high-comment but are support/debugging, not proposals. One note: the report is opinionated about the cut — adjust the "Suggested 1.0 cut" section as you triage; it's structured so you can check items off. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
🤖 AI text below 🤖
scikit-build-core 1.0 — Planning / Feature-Request Report
Derived from
issues.db(134 open issues, no open PRs). Grouped by theme,filtering out pure support/debugging questions. Each item lists the driving
issues so you can check off what belongs in 1.0.
Only 5 issues carry a milestone today: v1.0.0 → scikit-build/scikit-build#1145, #1147, #1148, scikit-build/scikit-build#1149;
v0.12.0 → #1105. Everything else below is unscheduled and is a candidate for
triage.
A. Explicit 1.0 release work (already milestoned)
cmake.targets).pyproject.toml/config-settings/ env-var form, link back to main docs.setuptools shim, etc.), give each a tracking issue + dedicated doc page.
B. Stabilizing the public surface (strong 1.0 candidates)
A 1.0 is mostly about freezing the config/API contract. These decide what that
frozen surface looks like:
[pyproject]optional-dependency #882 — Deprecate/remove the empty[pyproject]optional-dependency group(cleanup; pairs with Removing the deprecated fields in 1.0.0 release #1148).
in vs. permanently warned, since the setuptools layer is slated to split out.
WheelBuildershared by thebuild backend and the hatch/setuptools plugins). Architectural; unblocks
editable support in the hatch plugin. Worth doing before freezing internals.
pyproject_metadata#933 — Devendorpyproject_metadata(waiting onpackagingabsorbing theinterface). Tracker; affects test checksums.
C. Configuration / overrides expressiveness
Recurring requests to make config more powerful — relevant to 1.0 because each
adds frozen surface:
scikit-build-core.configentry-point (Fedora wants to opt out of debug-symbol stripping).
pyproject.toml(CC/CXX clobberingis biting the Chapel team).
ifOption Around CMake Build Type? #591 — Moreif.*override keys, notablyif.editable.tool.scikit-build.overrides? #908 — Trigger build config from extras (pip install .[mpi]).pyproject.toml(
search.prefixes).SKBUILD_CONFIGURE_OPTIONS/SKBUILD_BUILD_OPTIONS(classicparity).
SKBUILD_CMAKE_ARGS.ignore-vcsoption / way to disable.gitignore-based selection.D. Dynamic metadata system
The largest design thread in the tracker. Mostly a multi-release / cross-PEP
effort — likely not 1.0-blocking, but worth a documented stance:
discuss.python.org PEP for dynamic-metadata plugins; v2 of the proposal was in
progress. This is the umbrella design.
as of mid-2025; needs native support to share build dir/generator with the
dynamic-metadata providers.
entry-points/ scripts.licensefield #995 — Dynamiclicensefield (bundled vs. linked deps; needs PEP 639follow-up; sdist-vs-wheel divergence is the hard part).
config-settingsto thesetuptools_scmplugin.setuptools-git-versionas a version provider #1257 — Addsetuptools-git-versionas a version provider.D2. Shared-library / wheel-repair / RPATH (biggest user-pain cluster)
The most-reported real-world failure mode. Currently out of scope (users defer
to auditwheel/delocate/delvewheel), but demand is high:
LD_LIBRARY_PATH/os.add_dll_directory();LecrisUT has a prototype using the CMake file-API.
_IMPORT_PREFIX/SKBUILD_DATA_DIRleaks the temp install path into installed config files.cmake --installcoexist with Python packaging..so/DLL placed in wrong dir orsymbols/sonames lost after move to site-packages.
E. Editable-install robustness
Many small correctness bugs; collectively a credibility issue for 1.0:
editable.mode = "inplace"ignoresbuild-dir, pollutes source tree.known_wheel_filesin editable mode.*.soin site-packages.__path__entries..gitignore/ hidden files break editable installs.wheel.packagesoptions #1040 — Editable import issues with complexwheel.packages/ namespaces.AssertionError:"Editable installs cannot rebuild an absolute wheel.install-dir. Use an override to change if needed." #909 — Editable install rejected whenwheel.install-diris absolute.F. SDist improvements
sdist.includeover-includes / ignores.gitignore.sdist.excludeandsdist.include.(PoC exists in Allows build_sdist to dereference links #943).
build_sdist(circular symlinks after fix: follow symlinks when making SDists #362).sdistusegit-archive? #604 — Should sdist usegit-archive(for.git-archival.txtetc.)?cmake --installin the sdist step (header-only pkgs).G. Cross-compilation & platform tags
cmake.toolchain,wheel.py-api,PEP 720 alignment). Author volunteered; needs design. CMake 4.1 broke crossenv
on conda-forge (Cross-compilation support #1041 latest).
MACOSX_DEPLOYMENT_TARGETwithout env-var-only workarounds.
cross-compile);
SKBUILD_SOABIbug on Windows ARM.glibc-hwcaps, x86-64-vN).H. Windows / compiler & generator selection
passed to Ninja generator).
I. CMake-config / entry-point integration
(
cmake.root/cmake.module/cmake.prefix).FindScikitBuildCore.cmakemodule #902 — Ship aFindScikitBuildCore.cmakemodule (try_compile checks, ABIverification, component exposure).
J. Build types / multi-config
RelWithDebInfo(Fedora debuginfo).tool.scikit-build.cmake.build-typedoes not not work for windows platform. #578 / Problems with Debug build on Windows #670 — Debug build-type not propagated (conda-forge / Windows).K. Build-experience features (smaller, mostly 1.x)
pyproject.toml.force-include.pyistubs as modules #978 — Ship/handle.pyistub files (incl. importing stubs asmodules for docs builds).
gcovr#621 —gcovrcompatibility (copied files break coverage).L. Internal: build-isolation, dev infra, docs, examples
pip-build-env-*); upstreamfix stalled, uv already works around it.
pip --no-index#1027 / Tests hardcode the use of pip for downloading a lot of dependencies #720 — Test infra: cover uv as an install frontend; runtests without network / with
--no-index; stop hardcoding pip downloads.scikit-build->scikit-build-coremigrating projects #796 — Evaluatemadebr/python-cmake-file-api; migration tracker.Suggested 1.0 cut (my read)
Must-do (already the milestone): scikit-build/scikit-build#1145, #1147, #1148, scikit-build/scikit-build#1149.
Pull into 1.0 (freeze-the-surface, low risk): #882, #320-family decision,
#881 (builder unification), and a documented in/out-of-scope statement for wheel
repair (#624). Plus the v0.12 sdist fix #1105.
High-value, fits if there's room: config sources #1301 / #1114 / scikit-build/scikit-build#1151;
sdist correctness #858 / #1101 / #943; editable bug-bucket scikit-build/scikit-build#1106 / scikit-build/scikit-build#1144 / #1135.
Explicitly defer to 1.x (too big / cross-PEP): dynamic-metadata system
(#230/#172/#995), full cross-compilation (#1041), wheel-repair implementation
(#1002/#1118), multi-config packaging (#873).
Beta Was this translation helpful? Give feedback.
All reactions