Skip to content

Commit d01a06e

Browse files
authored
Merge pull request #1330 from henryiii/henryiii/chore/addbackends
chore: add and update some backends
2 parents c44afaf + aa36405 commit d01a06e

File tree

1 file changed

+61
-29
lines changed

1 file changed

+61
-29
lines changed

source/key_projects.rst

Lines changed: 61 additions & 29 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 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`.
@@ -595,14 +632,29 @@ scikit-build
595632
`GitHub <https://github.com/scikit-build/scikit-build/>`__ |
596633
`PyPI <https://pypi.org/project/scikit-build>`__
597634

598-
Scikit-build is an improved build system generator for CPython
599-
C/C++/Fortran/Cython extensions that integrates with :ref:`setuptools`, :ref:`wheel`
600-
and :ref:`pip`. It internally uses `cmake <https://pypi.org/project/cmake>`__ (available
601-
on PyPI) to provide better support for additional compilers, build systems,
602-
cross compilation, and locating dependencies and their associated
603-
build requirements. To speed up and parallelize the build of large projects,
604-
the user can install `ninja <https://pypi.org/project/ninja>`__ (also available
605-
on PyPI).
635+
Scikit-build is a :ref:`setuptools` wrapper for CPython that builds
636+
C/C++/Fortran/Cython extensions It uses
637+
`cmake <https://pypi.org/project/cmake>`__ (available on PyPI) to provide
638+
better support for additional compilers, build systems, cross compilation, and
639+
locating dependencies and their associated build requirements. To speed up and
640+
parallelize the build of large projects, the user can install `ninja
641+
<https://pypi.org/project/ninja>`__ (also available on PyPI).
642+
643+
.. _scikit-build-core:
644+
645+
scikit-build-core
646+
=================
647+
648+
`Docs <https://scikit-build-core.readthedocs.io/en/latest/>`__ |
649+
`GitHub <https://github.com/scikit-build/scikit-build-core/>`__ |
650+
`PyPI <https://pypi.org/project/scikit-build-core>`__
651+
652+
Scikit-build-core is a build backend for CPython C/C++/Fortran/Cython
653+
extensions. It enables users to write extensions with `cmake
654+
<https://pypi.org/project/cmake>`__ (available on PyPI) to provide better
655+
support for additional compilers, build systems, cross compilation, and
656+
locating dependencies and their associated build requirements. CMake/Ninja
657+
are automatically downloaded from PyPI if not available on the system.
606658

607659
.. _shiv:
608660

@@ -671,26 +723,6 @@ cases, end users won't use this module, but rather it will be used during the
671723
build of the Python distribution.
672724

673725

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-
694726
.. _venv:
695727

696728
venv

0 commit comments

Comments
 (0)