
Security News
Deno 2.6 + Socket: Supply Chain Defense In Your CLI
Deno 2.6 introduces deno audit with a new --socket flag that plugs directly into Socket to bring supply chain security checks into the Deno CLI.
scikit-build
Advanced tools
scikit-build is a Python build system for CPython C/C++/Fortran/Cython extensions using CMake.
The scikit-build package is fundamentally just glue between the setuptools
Python module and CMake_.
The next generation of scikit-build, scikit-build-core_, is currently under development.
This provides a simple, reliable build backend for CMake that does not use
setuptools and provides a lot of new features. Scikit-build-core can also power
a setuptools-based extension system, which will eventually become the backend
for scikit-build (classic). If you do not require extensive customization of
the build process, you should consider trying scikit-build-core instead of
scikit-build.
To get started, see this example <https://scikit-build.readthedocs.io/en/latest/usage.html#example-of-setup-py-cmakelists-txt-and-pyproject-toml>. For more examples, see scikit-build-sample-projects <https://github.com/scikit-build/scikit-build-sample-projects>.
This release fixes issues with setuptools 74, and avoids a warning from recent versions of wheel. Android and iOS are now included in known platforms.
#1116 <https://github.com/scikit-build/scikit-build/pull/1116>_@FeodorFitsner <https://github.com/FeodorFitsner>_ in #1101 <https://github.com/scikit-build/scikit-build/pull/1101>_#1103 <https://github.com/scikit-build/scikit-build/pull/1103>_@s-t-e-v-e-n-k <https://github.com/s-t-e-v-e-n-k>_ in #1108 <https://github.com/scikit-build/scikit-build/pull/1108>_This release bumps the minimum required CMake to 3.5 and supports CPython 3.13.
#1081 <https://github.com/scikit-build/scikit-build/pull/1081>_#1095 <https://github.com/scikit-build/scikit-build/pull/1095>_#1094 <https://github.com/scikit-build/scikit-build/pull/1094>_@mweinelt <https://github.com/mweinelt>_ in #1073 <https://github.com/scikit-build/scikit-build/pull/1073>_@hmaarrfk <https://github.com/hmaarrfk>_ in #1032 <https://github.com/scikit-build/scikit-build/pull/1032>_@ZzEeKkAa <https://github.com/ZzEeKkAa>_ in #1030 <https://github.com/scikit-build/scikit-build/pull/1030>_@s-t-e-v-e-n-k <https://github.com/s-t-e-v-e-n-k>_ in #1087 <https://github.com/scikit-build/scikit-build/pull/1087>_#1092 <https://github.com/scikit-build/scikit-build/pull/1092>_@LecrisUT <https://github.com/LecrisUT>_ in #1078 <https://github.com/scikit-build/scikit-build/pull/1078>_@LecrisUT <https://github.com/LecrisUT>_ in #1003 <https://github.com/scikit-build/scikit-build/pull/1003>_@LecrisUT <https://github.com/LecrisUT>_ in #1050 <https://github.com/scikit-build/scikit-build/pull/1050>_@LecrisUT <https://github.com/LecrisUT>_ in #993 <https://github.com/scikit-build/scikit-build/pull/993>_#1017 <https://github.com/scikit-build/scikit-build/pull/1017>_#1082 <https://github.com/scikit-build/scikit-build/pull/1082>_#1035 <https://github.com/scikit-build/scikit-build/pull/1035>_#1014 <https://github.com/scikit-build/scikit-build/pull/1014>_#1007 <https://github.com/scikit-build/scikit-build/pull/1007>_#1008 <https://github.com/scikit-build/scikit-build/pull/1008>_#1060 <https://github.com/scikit-build/scikit-build/pull/1060>_#1021 <https://github.com/scikit-build/scikit-build/pull/1021>_#1054 <https://github.com/scikit-build/scikit-build/pull/1054>_#1083 <https://github.com/scikit-build/scikit-build/pull/1083>_#1091 <https://github.com/scikit-build/scikit-build/pull/1091>_A small fix release with some new platforms and better testing, including CPython 3.12.0b1.
@mtelka <https://github.com/mtelka>_ in #983 <https://github.com/scikit-build/scikit-build/pull/983>_.@bhuntsman <https://github.com/bhuntsman>_ in #988 <https://github.com/scikit-build/scikit-build/pull/988>_.#879 <https://github.com/scikit-build/scikit-build/pull/879>_.pytest-virtualenv in #879 <https://github.com/scikit-build/scikit-build/pull/879>_.isolated marker now includes test_distribution tests in #879 <https://github.com/scikit-build/scikit-build/pull/879>_.get_map match by @keszybz <https://github.com/keszybz>_ in #990 <https://github.com/scikit-build/scikit-build/pull/990>_.@LecrisUT <https://github.com/LecrisUT>_ in #986 <https://github.com/scikit-build/scikit-build/pull/986>_ and #938 <https://github.com/scikit-build/scikit-build/pull/938>_.#979 <https://github.com/scikit-build/scikit-build/pull/979>_.A small fix release fixing the passing on of generator specific arguments. This fixes some cases where the Ninja generator was found but then was unable to build. NetBSD was reported to work, so was added to the BSD's supported.
#975 <https://github.com/scikit-build/scikit-build/pull/975>_.#977 <https://github.com/scikit-build/scikit-build/pull/977>_.A followup fix to the issue 0.17.3 tried to fix. We now have a method to manually test downstream packages, too.
#974 <https://github.com/scikit-build/scikit-build/pull/974>_.A small release related to PYTHON_LIBRARY handling changes in 0.17.2;
scikit-build 0.17.3 returns an empty string from get_python_library if no
Python library is present (like on manylinux), where 0.17.2 returned None, and
previous versions returned a non-existent path. Note that adding REQUIRED
to find_package(PythonLibs will fail, but it is incorrect (you must not
link to libPython.so) and was really just injecting a non-existent path
before.
get_python_library return type string if python lib non-existing
for now in #959 <https://github.com/scikit-build/scikit-build/pull/959>_.#960 <https://github.com/scikit-build/scikit-build/pull/960>_.#958 <https://github.com/scikit-build/scikit-build/pull/958>_.Another small release with fixes for non-MSVC Windows platforms.
@LecrisUT <https://github.com/LecrisUT>_ in #937 <https://github.com/scikit-build/scikit-build/pull/937>_.@dlech <https://github.com/dlech>_ in #942 <https://github.com/scikit-build/scikit-build/pull/942>_.Python_LIBRARY on Windows MSVC in #943 <https://github.com/scikit-build/scikit-build/pull/943>_ and #944 <https://github.com/scikit-build/scikit-build/pull/944>_.#947 <https://github.com/scikit-build/scikit-build/pull/947>_.#948 <https://github.com/scikit-build/scikit-build/pull/948>_.This is a small release fixing a few bugs; the primary one being a change that was triggering a bug in older FindPython. The unused variable messages have been deactivated to simplify output, as well.
#932 <https://github.com/scikit-build/scikit-build/pull/932>_.#931 <https://github.com/scikit-build/scikit-build/pull/931>_.CMAKE_OSX_DEPLOYMENT_TARGET a warning (bug in conda-forge's
clang activation fixed upstream) in #934 <https://github.com/scikit-build/scikit-build/pull/934>_.#930 <https://github.com/scikit-build/scikit-build/pull/930>_.@LecrisUT <https://github.com/LecrisUT>_ in #928 <https://github.com/scikit-build/scikit-build/pull/928>_.@LecrisUT <https://github.com/LecrisUT>_ in #929 <https://github.com/scikit-build/scikit-build/pull/929>_.#933 <https://github.com/scikit-build/scikit-build/pull/933>_.A lot of bug fixes are present in this release, focusing on Windows, PyPy, and cross compiling. We've also improved the compatibility with default setuptools behaviors a little, and enabled some things that were previously unavailable, like overriding the build type via the cmake argument environment variables. We've expanded our CI matrix to include Windows and macOS PyPy and some Fortran tests on Linux. This release requires Python 3.7+.
include_package_data default. by @vyasr <https://github.com/vyasr>_ in #873 <https://github.com/scikit-build/scikit-build/pull/873>_.@benbovy <https://github.com/benbovy>_ in #495 <https://github.com/scikit-build/scikit-build/pull/495>_.CMAKE_INSTALL_PREFIX by @vyasr <https://github.com/vyasr>_ in #872 <https://github.com/scikit-build/scikit-build/pull/872>_..pyx files are in the same directory as CMakeLists.txt by @vyasr <https://github.com/vyasr>_ in #871 <https://github.com/scikit-build/scikit-build/pull/871>_.#902 <https://github.com/scikit-build/scikit-build/pull/902>_.gershnik in #904 <https://github.com/scikit-build/scikit-build/pull/904>_.#913 <https://github.com/scikit-build/scikit-build/pull/913>_. Thanks to user:maxbachmann for testing.#917 <https://github.com/scikit-build/scikit-build/pull/917>_ by @dlech <https://github.com/dlech>_.get_include if present in #877 <https://github.com/scikit-build/scikit-build/pull/877>_.targetLinkLibrariesWithDynamicLookup by @erykoff <https://github.com/erykoff>_ in #901 <https://github.com/scikit-build/scikit-build/pull/901>_.MACOSX_DEPLOYMENT_TARGET as if it was unset in #918 <https://github.com/scikit-build/scikit-build/pull/918>_.@benbovy <https://github.com/benbovy>_ in #493 <https://github.com/scikit-build/scikit-build/pull/493>_.#906 <https://github.com/scikit-build/scikit-build/pull/906>_.#888 <https://github.com/scikit-build/scikit-build/pull/888>_.#907 <https://github.com/scikit-build/scikit-build/pull/907>_.#922 <https://github.com/scikit-build/scikit-build/pull/922>_.#862 <https://github.com/scikit-build/scikit-build/pull/862>_.#870 <https://github.com/scikit-build/scikit-build/pull/870>_.#899 <https://github.com/scikit-build/scikit-build/pull/899>_.#869 <https://github.com/scikit-build/scikit-build/pull/869>.Please use the first citation when referencing scikit-build in scientific publications.
Jean-Christophe Fillion-Robin, Matt McCormick, Omar Padron, Max Smolens, Michael Grauer, & Michael Sarahan. (2018, July 13). jcfr/scipy_2018_scikit-build_talk: SciPy 2018 Talk | scikit-build: A Build System Generator for CPython C/C++/Fortran/Cython Extensions. Zenodo. https://doi.org/10.5281/zenodo.2565368
Schreiner, Henry, Rickerby, Joe, Grosse-Kunstleve, Ralf, Jakob, Wenzel, Darbois, Matthieu, Gokaslan, Aaron, Fillion-Robin, Jean-Christophe, & McCormick, Matt. (2022, August 1). Building Binary Extensions with pybind11, scikit-build, and cibuildwheel. https://doi.org/10.25080/majora-212e5952-033
PyCMake was created at SciPy 2014 in response to general difficulties building C++ and Fortran based Python extensions across platforms. It was renamed to "scikit-build" in 2016. Scikit-build-core was started in 2022.
These issues are likely to be addressed in upcoming releases, and are
already addressed in scikit-build-core_.
setup()
currently._skbuild) may need to be deleted between builds in
some cases (like rebuilding with a different Python interpreter).We are also working on improving scikit-build, so there are some upcoming changes and deprecations:
test command, easy_install, etc.If you need any of these features, please open or find an issue explaining what and why you need something.
Support for this work was provided by NSF grant OAC-2209877 <https://www.nsf.gov/awardsearch/showAward?AWD_ID=2209877>_.
.. _scikit-build-core: https://scikit-build-core.readthedocs.io .. _cmake: https://cmake.org
FAQs
Improved build system generator for Python C/C++/Fortran/Cython extensions
We found that scikit-build demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Deno 2.6 introduces deno audit with a new --socket flag that plugs directly into Socket to bring supply chain security checks into the Deno CLI.

Security News
New DoS and source code exposure bugs in React Server Components and Next.js: what’s affected and how to update safely.

Security News
Socket CEO Feross Aboukhadijeh joins Software Engineering Daily to discuss modern software supply chain attacks and rising AI-driven security risks.