Skip to content

Commit dae7a55

Browse files
committed
chore: add and update some backends
Signed-off-by: Henry Schreiner <[email protected]>
1 parent 0b20b77 commit dae7a55

File tree

1 file changed

+54
-21
lines changed

1 file changed

+54
-21
lines changed

source/key_projects.rst

Lines changed: 54 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,30 @@ behaviours when asked to handle legacy packages and metadata that
8484
predate the modern interoperability standards and fall into the subset
8585
of packages that are incompatible with those standards.
8686

87+
88+
.. _distutils:
89+
90+
distutils
91+
=========
92+
93+
The original Python packaging system, added to the standard library in
94+
Python 2.0 and removed in 3.12.
95+
96+
Due to the challenges of maintaining a packaging system
97+
where feature updates are tightly coupled to language runtime updates,
98+
direct usage of :ref:`distutils` has been actively discouraged, with
99+
:ref:`Setuptools` being the preferred replacement. :ref:`Setuptools`
100+
not only provides features that plain :ref:`distutils` doesn't offer
101+
(such as dependency declarations and entry point declarations), it
102+
also provides a consistent build interface and feature set across all
103+
supported Python versions.
104+
105+
Consequently, :ref:`distutils` was deprecated in Python 3.10 by :pep:`632` and
106+
has been :doc:`removed <python:whatsnew/3.12>` from the standard library in
107+
Python 3.12. Setuptools bundles the standalone copy of distutils, and it is
108+
injected even on Python < 3.12 if you import setuptools first or use pip.
109+
110+
87111
.. _flit:
88112

89113
flit
@@ -452,6 +476,19 @@ problem of installing scientific software, and making package
452476
distribution stateless, cached, and branchable. It is used by some
453477
researchers but has been lacking in maintenance since 2016.
454478

479+
.. _maturin:
480+
481+
Maturin
482+
=======
483+
484+
`Docs <https://www.maturin.rs>`__ |
485+
`GitHub <https://github.com/PyO3/maturin>`__
486+
487+
Maturin is a PEP 517 build backend for Rust extension modules, also written in
488+
Rust. It supports building wheels for python 3.7+ on Windows, Linux, macOS and
489+
FreeBSD, can upload them to PyPI and has basic PyPy and GraalPy support.
490+
491+
455492
.. _meson-python:
456493

457494
meson-python
@@ -472,7 +509,7 @@ of most complex build configurations.
472509
multibuild
473510
==========
474511

475-
`GitHub <https://github.com/matthew-brett/multibuild>`__
512+
`GitHub <https://github.com/multi-build/multibuild>`__
476513

477514
Multibuild is a set of CI scripts for building and testing Python :term:`wheels <Wheel>` for
478515
Linux, macOS, and (less flexibly) Windows. Also see :ref:`cibuildwheel`.
@@ -604,6 +641,22 @@ build requirements. To speed up and parallelize the build of large projects,
604641
the user can install `ninja <https://pypi.org/project/ninja>`__ (also available
605642
on PyPI).
606643

644+
.. _scikit-build-core:
645+
646+
scikit-build-core
647+
=================
648+
649+
`Docs <https://scikit-build-core.readthedocs.io/en/latest/>`__ |
650+
`GitHub <https://github.com/scikit-build/scikit-build-core/>`__ |
651+
`PyPI <https://pypi.org/project/scikit-build-core>`__
652+
653+
Scikit-build-core is a PEP 517 backend for CPython C/C++/Fortran/Cython
654+
extensions. It enables users to write extensions with `cmake
655+
<https://pypi.org/project/cmake>`__ (available on PyPI) to provide better
656+
support for additional compilers, build systems, cross compilation, and
657+
locating dependencies and their associated build requirements. CMake/Ninja
658+
are automatically downloaded from PyPI if not available on the system.
659+
607660
.. _shiv:
608661

609662
shiv
@@ -671,26 +724,6 @@ cases, end users won't use this module, but rather it will be used during the
671724
build of the Python distribution.
672725

673726

674-
.. _distutils:
675-
676-
distutils
677-
=========
678-
679-
The original Python packaging system, added to the standard library in
680-
Python 2.0.
681-
682-
Due to the challenges of maintaining a packaging system
683-
where feature updates are tightly coupled to language runtime updates,
684-
direct usage of :ref:`distutils` has been actively discouraged, with
685-
:ref:`Setuptools` being the preferred replacement. :ref:`Setuptools`
686-
not only provides features that plain :ref:`distutils` doesn't offer
687-
(such as dependency declarations and entry point declarations), it
688-
also provides a consistent build interface and feature set across all
689-
supported Python versions.
690-
691-
Consequently, :ref:`distutils` was deprecated in Python 3.10 by :pep:`632` and
692-
has been :doc:`removed <python:whatsnew/3.12>` from the standard library in Python 3.12.
693-
694727
.. _venv:
695728

696729
venv

0 commit comments

Comments
 (0)