diff --git a/docs/changelog.md b/docs/about/changelog.md similarity index 100% rename from docs/changelog.md rename to docs/about/changelog.md diff --git a/docs/about/projects.md b/docs/about/projects.md new file mode 100644 index 000000000..dfc1e65c1 --- /dev/null +++ b/docs/about/projects.md @@ -0,0 +1,88 @@ +# Projects + +There are over 200 projects using scikit-build-core on PyPI. This is a selection +of some of the projects. Feel free to add your own project to +`docs/data/projects.toml`. The following selection was primarily constructed by +looking at the top 8,000 most downloaded projects on PyPI. + + + +- [cmake](https://pypi.org/project/cmake) + ([source](https://github.com/scikit-build/cmake-python-distributions/blob/HEAD/pyproject.toml)) +- [ninja](https://pypi.org/project/ninja) + ([source](https://github.com/scikit-build/ninja-python-distributions/blob/HEAD/pyproject.toml)) +- [pyzmq](https://pypi.org/project/pyzmq) + ([source](https://github.com/zeromq/pyzmq/blob/HEAD/pyproject.toml)) +- [lightgbm](https://pypi.org/project/lightgbm) + ([source](https://github.com/microsoft/LightGBM/blob/HEAD/python-package/pyproject.toml)) +- [phik](https://pypi.org/project/phik) + ([source](https://github.com/kaveio/phik/blob/HEAD/pyproject.toml)) +- [clang-format](https://pypi.org/project/clang-format) + ([source](https://github.com/ssciwr/clang-format-wheel/blob/HEAD/pyproject.toml)) +- [llama-cpp-python](https://pypi.org/project/llama-cpp-python) + ([source](https://github.com/abetlen/llama-cpp-python/blob/HEAD/pyproject.toml)) +- [coreforecast](https://pypi.org/project/coreforecast) + ([source](https://github.com/Nixtla/coreforecast/blob/HEAD/pyproject.toml)) +- [sparse-dot-topn](https://pypi.org/project/sparse-dot-topn) + ([source](https://github.com/ing-bank/sparse_dot_topn/blob/HEAD/pyproject.toml)) +- [spglib](https://pypi.org/project/spglib) + ([source](https://github.com/spglib/spglib/blob/HEAD/pyproject.toml)) +- [awkward-cpp](https://pypi.org/project/awkward-cpp) + ([source](https://github.com/scikit-hep/awkward/blob/HEAD/awkward-cpp/pyproject.toml)) +- [OpenEXR](https://pypi.org/project/OpenEXR) + ([source](https://github.com/AcademySoftwareFoundation/OpenEXR/blob/HEAD/pyproject.toml)) +- [iminuit](https://pypi.org/project/iminuit) + ([source](https://github.com/scikit-hep/iminuit/blob/HEAD/pyproject.toml)) +- [boost-histogram](https://pypi.org/project/boost-histogram) + ([source](https://github.com/scikit-hep/iminuit/blob/HEAD/pyproject.toml)) +- [astyle](https://pypi.org/project/astyle) + ([source](https://github.com/Freed-Wu/astyle-wheel/blob/HEAD/pyproject.toml)) +- [lammps](https://pypi.org/project/lammps) + ([source](https://github.com/njzjz/lammps-wheel/blob/HEAD/pyproject.toml)) +- [llamacpp](https://pypi.org/project/llamacpp) + ([source](https://github.com/thomasantony/llamacpp-python/blob/HEAD/pyproject.toml)) +- [nodejs-wheel](https://pypi.org/project/nodejs-wheel) + ([source](https://github.com/njzjz/nodejs-wheel/blob/HEAD/pyproject.toml)) +- [pygram11](https://pypi.org/project/pygram11) +([source](https://github.com/douglasdavis/pygram11/blob/HEAD/pyproject.toml)) + + +In addition, most of the [RAPIDSAI](https://github.com/rapidsai) projects use +scikit-build-core, but they are not published on PyPI. A few of them are: + +- CuDF + ([source](https://github.com/rapidsai/cudf/blob/HEAD/python/cudf/pyproject.toml)) +- CuGraph + ([source](https://github.com/rapidsai/cugraph/blob/HEAD/python/cugraph/pyproject.toml)) +- CuML + ([source](https://github.com/rapidsai/cuml/blob/HEAD/python/cuml/pyproject.toml)) +- CuSpatial + ([source](https://github.com/rapidsai/cuspatial/blob/HEAD/python/cuspatial/pyproject.toml)) +- RMM + ([source](https://github.com/rapidsai/rmm/blob/HEAD/python/rmm/pyproject.toml)) +- Raft + ([source](https://github.com/rapidsai/raft/blob/HEAD/python/pylibraft/pyproject.toml)) + +The [Insight Toolkit (ITK)](https://docs.itk.org), the initial target project +for scikit-build classic, has +[transitioned to sckit-build-core](https://github.com/InsightSoftwareConsortium/ITKPythonPackage/blob/master/scripts/pyproject.toml.in). +ITK currently provides one example of a production SWIG-based deployment. In +addition, dozens of +[ITK-based extension packages are configured with scikit-build-core](https://github.com/topics/itk-module). diff --git a/docs/configuration/dynamic.md b/docs/configuration/dynamic.md new file mode 100644 index 000000000..49c8a4931 --- /dev/null +++ b/docs/configuration/dynamic.md @@ -0,0 +1,137 @@ +# Dynamic metadata + +Scikit-build-core supports dynamic metadata with three built-in plugins. + +:::{warning} + +Your package and third-party packages can also extend these with new plugins, +but this is currently not ready for development outside of scikit-build-core; +`tool.scikit-build.experimental=true` is required to use plugins that are not +shipped with scikit-build-core, since the interface is provisional and may +change between _minor_ versions. + +::: + +## `version`: Setuptools-scm + +You can use [setuptools-scm](https://github.com/pypa/setuptools-scm) to pull the +version from VCS: + +```toml +[project] +name = "mypackage" +dynamic = ["version"] + +[tool.scikit-build] +metadata.version.provider = "scikit_build_core.metadata.setuptools_scm" +sdist.include = ["src/package/_version.py"] + +[tool.setuptools_scm] # Section required +write_to = "src/package/_version.py" +``` + +This sets the python project version according to +[git tags](https://github.com/pypa/setuptools-scm/blob/fb261332d9b46aa5a258042d85baa5aa7b9f4fa2/README.rst#default-versioning-scheme) +or a +[`.git_archival.txt`](https://github.com/pypa/setuptools-scm/blob/fb261332d9b46aa5a258042d85baa5aa7b9f4fa2/README.rst#git-archives) +file, or equivalents for other VCS systems. + +If you need to set the CMake project version without scikit-build-core (which +provides `${SKBUILD_PROJECT_VERSION}`), you can use something like +[`DynamicVersion` module](https://github.com/LecrisUT/CMakeExtraUtils/blob/180604da50a3c3588f9d04e4ebc6abb4e5a0d234/cmake/DynamicVersion.md) +from +[github.com/LecrisUT/CMakeExtraUtils](https://github.com/LecrisUT/CMakeExtraUtils): + +```cmake +# Import `CMakeExtraUtils` or bundle `DynamicVersion.cmake` from there +include(DynamicVersion) + +# Set ${PROJECT_VERSION} according to git tag or `.git_archival.txt` +dynamic_version() + +project(MyPackage VERSION ${PROJECT_VERSION}) +``` + +## `version`: Regex + +If you want to pull a string-valued expression (usually version) from an +existing file, you can the integrated `regex` plugin to pull the information. + +```toml +name = "mypackage" +dynamic = ["version"] + +[tool.scikit-build.metadata.version] +provider = "scikit_build_core.metadata.regex" +input = "src/mypackage/__init__.py" +``` + +You can set a custom regex with `regex=`. By default when targeting version, you +get a reasonable regex for python files, +`'(?i)^(__version__|VERSION)(?: ?\: ?str)? *= *([\'"])v?(?P.+?)\2'`. You +can set `result` to a format string to process the matches; the default is +`"{value}"`. You can also specify a regex for `remove=` which will strip any +matches from the final result. A more complex example: + +```toml +[tool.scikit-build.metadata.version] +provider = "scikit_build_core.metadata.regex" +input = "src/mypackage/version.hpp" +regex = '''(?sx) +\#define \s+ VERSION_MAJOR \s+ (?P\d+) .*? +\#define \s+ VERSION_MINOR \s+ (?P\d+) .*? +\#define \s+ VERSION_PATCH \s+ (?P\d+) .*? +\#define \s+ VERSION_DEV \s+ (?P\d+) .*? +''' +result = "{major}.{minor}.{patch}dev{dev}" +remove = "dev0" +``` + +This will remove the "dev" tag when it is equal to 0. + +```{versionchanged} 0.10 + +Support for `result` and `remove` added. + +``` + +## `readme`: Fancy-pypi-readme + +You can use +[hatch-fancy-pypi-readme](https://github.com/hynek/hatch-fancy-pypi-readme) to +render your README: + +```toml +[project] +name = "mypackage" +dynamic = ["readme"] + +[tool.scikit-build] +metadata.readme.provider = "scikit_build_core.metadata.fancy_pypi_readme" + +# tool.hatch.metadata.hooks.fancy-pypi-readme options here +``` + +## Generate files with dynamic metadata + +You can write out metadata to file(s) as well. Other info might become available +here in the future, but currently it supports anything available as strings in +metadata. (Note that arrays like this are only supported in TOML configuration.) + +```toml +[[tool.scikit-build.generate]] +path = "package/_version.py" +template = ''' +version = "${version}" +''' +``` + +`template` or `template-path` is required; this uses {class}`string.Template` +formatting. There are three options for output location; `location = "install"` +(the default) will go to the wheel, `location = "build"` will go to the CMake +build directory, and `location = "source"` will write out to the source +directory (be sure to .gitignore this file. It will automatically be added to +your SDist includes. It will overwrite existing files). + +The path is generally relative to the base of the wheel / build dir / source +dir, depending on which location you pick. diff --git a/docs/configuration.md b/docs/configuration/index.md similarity index 80% rename from docs/configuration.md rename to docs/configuration/index.md index 3984a7359..2a0e57468 100644 --- a/docs/configuration.md +++ b/docs/configuration/index.md @@ -539,150 +539,6 @@ You can pass raw arguments directly to the build tool, as well: ``` -## Dynamic metadata - -Scikit-build-core supports dynamic metadata with three built-in plugins. - -:::{tab} Setuptools-scm - -You can use [setuptools-scm](https://github.com/pypa/setuptools-scm) to pull the -version from VCS: - -```toml -[project] -name = "mypackage" -dynamic = ["version"] - -[tool.scikit-build] -metadata.version.provider = "scikit_build_core.metadata.setuptools_scm" -sdist.include = ["src/package/_version.py"] - -[tool.setuptools_scm] # Section required -write_to = "src/package/_version.py" -``` - -This sets the python project version according to -[git tags](https://github.com/pypa/setuptools-scm/blob/fb261332d9b46aa5a258042d85baa5aa7b9f4fa2/README.rst#default-versioning-scheme) -or a -[`.git_archival.txt`](https://github.com/pypa/setuptools-scm/blob/fb261332d9b46aa5a258042d85baa5aa7b9f4fa2/README.rst#git-archives) -file, or equivalents for other VCS systems. - -If you need to set the CMake project version without scikit-build-core (which -provides `${SKBUILD_PROJECT_VERSION}`), you can use something like -[`DynamicVersion` module](https://github.com/LecrisUT/CMakeExtraUtils/blob/180604da50a3c3588f9d04e4ebc6abb4e5a0d234/cmake/DynamicVersion.md) -from -[github.com/LecrisUT/CMakeExtraUtils](https://github.com/LecrisUT/CMakeExtraUtils): - -```cmake -# Import `CMakeExtraUtils` or bundle `DynamicVersion.cmake` from there -include(DynamicVersion) - -# Set ${PROJECT_VERSION} according to git tag or `.git_archival.txt` -dynamic_version() - -project(MyPackage VERSION ${PROJECT_VERSION}) -``` - -::: - -:::{tab} Fancy-pypi-readme - -You can use -[hatch-fancy-pypi-readme](https://github.com/hynek/hatch-fancy-pypi-readme) to -render your README: - -```toml -[project] -name = "mypackage" -dynamic = ["readme"] - -[tool.scikit-build] -metadata.readme.provider = "scikit_build_core.metadata.fancy_pypi_readme" - -# tool.hatch.metadata.hooks.fancy-pypi-readme options here -``` - -::: - -:::{tab} Regex - -If you want to pull a string-valued expression (usually version) from an -existing file, you can the integrated `regex` plugin to pull the information. - -```toml -name = "mypackage" -dynamic = ["version"] - -[tool.scikit-build.metadata.version] -provider = "scikit_build_core.metadata.regex" -input = "src/mypackage/__init__.py" -``` - -You can set a custom regex with `regex=`. By default when targeting version, you -get a reasonable regex for python files, -`'(?i)^(__version__|VERSION)(?: ?\: ?str)? *= *([\'"])v?(?P.+?)\2'`. You -can set `result` to a format string to process the matches; the default is -`"{value}"`. You can also specify a regex for `remove=` which will strip any -matches from the final result. A more complex example: - -```toml -[tool.scikit-build.metadata.version] -provider = "scikit_build_core.metadata.regex" -input = "src/mypackage/version.hpp" -regex = '''(?sx) -\#define \s+ VERSION_MAJOR \s+ (?P\d+) .*? -\#define \s+ VERSION_MINOR \s+ (?P\d+) .*? -\#define \s+ VERSION_PATCH \s+ (?P\d+) .*? -\#define \s+ VERSION_DEV \s+ (?P\d+) .*? -''' -result = "{major}.{minor}.{patch}dev{dev}" -remove = "dev0" -``` - -This will remove the "dev" tag when it is equal to 0. - -::::{versionchanged} 0.10 - -Support for `result` and `remove` added. - -:::: - -::: - -:::{warning} - -Your package and third-party packages can also extend these with new plugins, -but this is currently not ready for development outside of scikit-build-core; -`tool.scikit-build.experimental=true` is required to use plugins that are not -shipped with scikit-build-core, since the interface is provisional and may -change between _minor_ versions. - -::: - -### Writing metadata - -You can write out metadata to file(s) as well. Other info might become available -here in the future, but currently it supports anything available as strings in -metadata. (Note that arrays like this are only supported in TOML configuration.) - -```toml -[[tool.scikit-build.generate]] -path = "package/_version.py" -template = ''' -version = "${version}" -''' -``` - -`template` or `template-path` is required; this uses {class}`string.Template` -formatting. There are three options for output location; `location = "install"` -(the default) will go to the wheel, `location = "build"` will go to the CMake -build directory, and `location = "source"` will write out to the source -directory (be sure to .gitignore this file. It will automatically be added to -your SDist includes. It will overwrite existing files). - -The path is generally relative to the base of the wheel / build dir / source -dir, depending on which location you pick. - ## Editable installs Experimental support for editable installs is provided, with some caveats and diff --git a/docs/overrides.md b/docs/configuration/overrides.md similarity index 100% rename from docs/overrides.md rename to docs/configuration/overrides.md diff --git a/docs/build.md b/docs/guide/build.md similarity index 100% rename from docs/build.md rename to docs/guide/build.md diff --git a/docs/cmakelists.md b/docs/guide/cmakelists.md similarity index 100% rename from docs/cmakelists.md rename to docs/guide/cmakelists.md diff --git a/docs/crosscompile.md b/docs/guide/crosscompile.md similarity index 100% rename from docs/crosscompile.md rename to docs/guide/crosscompile.md diff --git a/docs/faqs.md b/docs/guide/faqs.md similarity index 100% rename from docs/faqs.md rename to docs/guide/faqs.md diff --git a/docs/getting_started.md b/docs/guide/getting_started.md similarity index 87% rename from docs/getting_started.md rename to docs/guide/getting_started.md index 49cb1a222..3565a435a 100644 --- a/docs/getting_started.md +++ b/docs/guide/getting_started.md @@ -108,7 +108,7 @@ pybind11 and C++. Select your preferred version using the tabs - compare them! ````{tab} pybind11 -```{literalinclude} examples/getting_started/pybind11/example.cpp +```{literalinclude} ../examples/getting_started/pybind11/example.cpp :language: cpp ``` @@ -116,7 +116,7 @@ pybind11 and C++. Select your preferred version using the tabs - compare them! ````{tab} nanobind -```{literalinclude} examples/getting_started/nanobind/example.cpp +```{literalinclude} ../examples/getting_started/nanobind/example.cpp :language: cpp ``` @@ -124,11 +124,11 @@ pybind11 and C++. Select your preferred version using the tabs - compare them! ````{tab} SWIG -```{literalinclude} examples/getting_started/swig/example.c +```{literalinclude} ../examples/getting_started/swig/example.c :language: c ``` -```{literalinclude} examples/getting_started/swig/example.i +```{literalinclude} ../examples/getting_started/swig/example.i :language: swig ``` @@ -136,7 +136,7 @@ pybind11 and C++. Select your preferred version using the tabs - compare them! ````{tab} Cython -```{literalinclude} examples/getting_started/cython/example.pyx +```{literalinclude} ../examples/getting_started/cython/example.pyx :language: cython ``` @@ -144,7 +144,7 @@ pybind11 and C++. Select your preferred version using the tabs - compare them! ````{tab} C -```{literalinclude} examples/getting_started/c/example.c +```{literalinclude} ../examples/getting_started/c/example.c :language: c ``` @@ -152,7 +152,7 @@ pybind11 and C++. Select your preferred version using the tabs - compare them! ````{tab} ABI3 -```{literalinclude} examples/getting_started/abi3/example.c +```{literalinclude} ../examples/getting_started/abi3/example.c :language: c ``` @@ -160,7 +160,7 @@ pybind11 and C++. Select your preferred version using the tabs - compare them! ````{tab} Fortran -```{literalinclude} examples/getting_started/fortran/example.f +```{literalinclude} ../examples/getting_started/fortran/example.f :language: fortran ``` @@ -172,7 +172,7 @@ To create your first compiled package, start with a pyproject.toml like this: ````{tab} pybind11 -```{literalinclude} examples/getting_started/pybind11/pyproject.toml +```{literalinclude} ../examples/getting_started/pybind11/pyproject.toml :language: toml ``` @@ -180,7 +180,7 @@ To create your first compiled package, start with a pyproject.toml like this: ````{tab} nanobind -```{literalinclude} examples/getting_started/nanobind/pyproject.toml +```{literalinclude} ../examples/getting_started/nanobind/pyproject.toml :language: toml ``` @@ -188,7 +188,7 @@ To create your first compiled package, start with a pyproject.toml like this: ````{tab} SWIG -```{literalinclude} examples/getting_started/swig/pyproject.toml +```{literalinclude} ../examples/getting_started/swig/pyproject.toml :language: toml ``` @@ -196,7 +196,7 @@ To create your first compiled package, start with a pyproject.toml like this: ````{tab} Cython -```{literalinclude} examples/getting_started/cython/pyproject.toml +```{literalinclude} ../examples/getting_started/cython/pyproject.toml :language: toml ``` @@ -204,7 +204,7 @@ To create your first compiled package, start with a pyproject.toml like this: ````{tab} C -```{literalinclude} examples/getting_started/c/pyproject.toml +```{literalinclude} ../examples/getting_started/c/pyproject.toml :language: toml ``` @@ -212,7 +212,7 @@ To create your first compiled package, start with a pyproject.toml like this: ````{tab} ABI3 -```{literalinclude} examples/getting_started/abi3/pyproject.toml +```{literalinclude} ../examples/getting_started/abi3/pyproject.toml :language: toml ``` @@ -220,7 +220,7 @@ To create your first compiled package, start with a pyproject.toml like this: ````{tab} Fortran -```{literalinclude} examples/getting_started/fortran/pyproject.toml +```{literalinclude} ../examples/getting_started/fortran/pyproject.toml :language: toml ``` @@ -255,7 +255,7 @@ Now, you'll need a file called `CMakeLists.txt`. This one will do: ````{tab} pybind11 -```{literalinclude} examples/getting_started/pybind11/CMakeLists.txt +```{literalinclude} ../examples/getting_started/pybind11/CMakeLists.txt :language: cmake ``` @@ -279,7 +279,7 @@ to `pybind11::module`, your choice. ````{tab} nanobind -```{literalinclude} examples/getting_started/nanobind/CMakeLists.txt +```{literalinclude} ../examples/getting_started/nanobind/CMakeLists.txt :language: cmake ``` @@ -296,7 +296,7 @@ Nanobind places its config file such that CMake can find it from site-packages. ````{tab} SWIG -```{literalinclude} examples/getting_started/swig/CMakeLists.txt +```{literalinclude} ../examples/getting_started/swig/CMakeLists.txt :language: cmake ``` @@ -313,7 +313,7 @@ You'll need to handle the generation of files by SWIG directly. ````{tab} Cython -```{literalinclude} examples/getting_started/cython/CMakeLists.txt +```{literalinclude} ../examples/getting_started/cython/CMakeLists.txt :language: cmake ``` @@ -331,7 +331,7 @@ A helper (similar to scikit-build classic) might be added in the future. ````{tab} C -```{literalinclude} examples/getting_started/c/CMakeLists.txt +```{literalinclude} ../examples/getting_started/c/CMakeLists.txt :language: cmake ``` @@ -355,7 +355,7 @@ without it). ````{tab} ABI3 -```{literalinclude} examples/getting_started/abi3/CMakeLists.txt +```{literalinclude} ../examples/getting_started/abi3/CMakeLists.txt :language: cmake ``` @@ -381,7 +381,7 @@ support PyPy). ````{tab} Fortran -```{literalinclude} examples/getting_started/fortran/CMakeLists.txt +```{literalinclude} ../examples/getting_started/fortran/CMakeLists.txt :language: cmake ``` diff --git a/docs/migration_guide.md b/docs/guide/migration_guide.md similarity index 91% rename from docs/migration_guide.md rename to docs/guide/migration_guide.md index e5c8efc42..599f63dcd 100644 --- a/docs/migration_guide.md +++ b/docs/guide/migration_guide.md @@ -18,13 +18,13 @@ may be out of date. Instead, set the minimum required versions in the `[tool.scikit-build]` table: `cmake.minimum-version` and `ninja.minimum-version`. - You must fill out the `tool.scikit-build` table in pyproject.toml, see - [getting started](./getting_started.md) for more information. + [getting started](getting_started.md) for more information. - If your project is primarily configured using setup.py or setup.cfg, you will need to move the configuration to pyproject.toml. The [project metadata spec](https://packaging.python.org/en/latest/specifications/pyproject-toml) shows the information that can be placed directly in the project table. For - additional metadata, see [our configuration guide](./configuration.md). A - useful trick for performing this migration is to change the `build-backend` + additional metadata, see [our configuration guide](../configuration/index.md). + A useful trick for performing this migration is to change the `build-backend` from `skbuild` to `setuptools`, install `hatch`, and run `hatch new --init`. This should automatically migrate the configuration to pyproject.toml, after which you can change the `build-backend` to `scikit-build-core`. @@ -59,7 +59,7 @@ python_add_library(${LIBRARY} MODULE WITH_SOABI ${FILENAME}) - The UseCython CMake module distributed with scikit-build is not currently supported. For examples on how to use Cython, see - [our getting started guide](./getting_started.md) for now. + [our getting started guide](getting_started.md) for now. - The `SKBUILD_CONFIGURE_OPTIONS` environment variable is now named `SKBUILD_CMAKE_ARGS` for consistency. - The `SKBUILD_BUILD_OPTIONS` environment variable is not supported. Some diff --git a/docs/index.md b/docs/index.md index 3b592f402..89d81b1d0 100644 --- a/docs/index.md +++ b/docs/index.md @@ -26,18 +26,23 @@ first Friday of every month at the same time. Our past meeting minutes are :maxdepth: 2 :titlesonly: :caption: Guide -:glob: - -getting_started -configuration -overrides -cmakelists -crosscompile -migration_guide -build -faqs -projects -changelog + +guide/getting_started +guide/cmakelists +guide/crosscompile +guide/migration_guide +guide/build +guide/faqs +``` + +```{toctree} +:maxdepth: 1 +:titlesonly: +:caption: Configuration + +configuration/index +configuration/overrides +configuration/dynamic ``` ```{toctree} @@ -49,6 +54,15 @@ plugins/setuptools plugins/hatchling ``` +```{toctree} +:maxdepth: 1 +:titlesonly: +:caption: About project + +about/projects +about/changelog +``` + ```{toctree} :maxdepth: 1 :titlesonly: diff --git a/docs/projects.md b/docs/projects.md deleted file mode 100644 index 75dc87817..000000000 --- a/docs/projects.md +++ /dev/null @@ -1,62 +0,0 @@ -# Projects - -There are over 200 projects using scikit-build-core on PyPI. This is a selection -of some of the projects. Feel free to add your own project to -`docs/data/projects.toml`. The following selection was primarily constructed by -looking at the top 8,000 most downloaded projects on PyPI. - - -* [cmake](https://pypi.org/project/cmake) ([source](https://github.com/scikit-build/cmake-python-distributions/blob/HEAD/pyproject.toml)) -* [ninja](https://pypi.org/project/ninja) ([source](https://github.com/scikit-build/ninja-python-distributions/blob/HEAD/pyproject.toml)) -* [pyzmq](https://pypi.org/project/pyzmq) ([source](https://github.com/zeromq/pyzmq/blob/HEAD/pyproject.toml)) -* [lightgbm](https://pypi.org/project/lightgbm) ([source](https://github.com/microsoft/LightGBM/blob/HEAD/python-package/pyproject.toml)) -* [phik](https://pypi.org/project/phik) ([source](https://github.com/kaveio/phik/blob/HEAD/pyproject.toml)) -* [clang-format](https://pypi.org/project/clang-format) ([source](https://github.com/ssciwr/clang-format-wheel/blob/HEAD/pyproject.toml)) -* [llama-cpp-python](https://pypi.org/project/llama-cpp-python) ([source](https://github.com/abetlen/llama-cpp-python/blob/HEAD/pyproject.toml)) -* [coreforecast](https://pypi.org/project/coreforecast) ([source](https://github.com/Nixtla/coreforecast/blob/HEAD/pyproject.toml)) -* [sparse-dot-topn](https://pypi.org/project/sparse-dot-topn) ([source](https://github.com/ing-bank/sparse_dot_topn/blob/HEAD/pyproject.toml)) -* [spglib](https://pypi.org/project/spglib) ([source](https://github.com/spglib/spglib/blob/HEAD/pyproject.toml)) -* [awkward-cpp](https://pypi.org/project/awkward-cpp) ([source](https://github.com/scikit-hep/awkward/blob/HEAD/awkward-cpp/pyproject.toml)) -* [OpenEXR](https://pypi.org/project/OpenEXR) ([source](https://github.com/AcademySoftwareFoundation/OpenEXR/blob/HEAD/pyproject.toml)) -* [iminuit](https://pypi.org/project/iminuit) ([source](https://github.com/scikit-hep/iminuit/blob/HEAD/pyproject.toml)) -* [boost-histogram](https://pypi.org/project/boost-histogram) ([source](https://github.com/scikit-hep/iminuit/blob/HEAD/pyproject.toml)) -* [astyle](https://pypi.org/project/astyle) ([source](https://github.com/Freed-Wu/astyle-wheel/blob/HEAD/pyproject.toml)) -* [lammps](https://pypi.org/project/lammps) ([source](https://github.com/njzjz/lammps-wheel/blob/HEAD/pyproject.toml)) -* [llamacpp](https://pypi.org/project/llamacpp) ([source](https://github.com/thomasantony/llamacpp-python/blob/HEAD/pyproject.toml)) -* [nodejs-wheel](https://pypi.org/project/nodejs-wheel) ([source](https://github.com/njzjz/nodejs-wheel/blob/HEAD/pyproject.toml)) -* [pygram11](https://pypi.org/project/pygram11) ([source](https://github.com/douglasdavis/pygram11/blob/HEAD/pyproject.toml)) - - -In addition, most of the [RAPIDSAI](https://github.com/rapidsai) projects use -scikit-build-core, but they are not published on PyPI. A few of them are: - -- CuDF ([source](https://github.com/rapidsai/cudf/blob/HEAD/python/cudf/pyproject.toml)) -- CuGraph ([source](https://github.com/rapidsai/cugraph/blob/HEAD/python/cugraph/pyproject.toml)) -- CuML ([source](https://github.com/rapidsai/cuml/blob/HEAD/python/cuml/pyproject.toml)) -- CuSpatial ([source](https://github.com/rapidsai/cuspatial/blob/HEAD/python/cuspatial/pyproject.toml)) -- RMM ([source](https://github.com/rapidsai/rmm/blob/HEAD/python/rmm/pyproject.toml)) -- Raft ([source](https://github.com/rapidsai/raft/blob/HEAD/python/pylibraft/pyproject.toml)) - -The [Insight Toolkit (ITK)](https://docs.itk.org), the initial target project -for scikit-build classic, has -[transitioned to sckit-build-core](https://github.com/InsightSoftwareConsortium/ITKPythonPackage/blob/master/scripts/pyproject.toml.in). -ITK currently provides one example of a production SWIG-based deployment. In -addition, dozens of -[ITK-based extension packages are configured with scikit-build-core](https://github.com/topics/itk-module). diff --git a/docs/schema.md b/docs/schema.md index 78fc12a22..f63b1db04 100644 --- a/docs/schema.md +++ b/docs/schema.md @@ -1,3 +1,5 @@ +(schema)= + # Schema The full schema for the `tool.scikit-build` table is below: