@@ -84,6 +84,30 @@ behaviours when asked to handle legacy packages and metadata that
84
84
predate the modern interoperability standards and fall into the subset
85
85
of packages that are incompatible with those standards.
86
86
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
+
87
111
.. _flit :
88
112
89
113
flit
@@ -452,6 +476,19 @@ problem of installing scientific software, and making package
452
476
distribution stateless, cached, and branchable. It is used by some
453
477
researchers but has been lacking in maintenance since 2016.
454
478
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
+
455
492
.. _meson-python :
456
493
457
494
meson-python
@@ -472,7 +509,7 @@ of most complex build configurations.
472
509
multibuild
473
510
==========
474
511
475
- `GitHub <https://github.com/matthew-brett /multibuild >`__
512
+ `GitHub <https://github.com/multi-build /multibuild >`__
476
513
477
514
Multibuild is a set of CI scripts for building and testing Python :term: `wheels <Wheel> ` for
478
515
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,
604
641
the user can install `ninja <https://pypi.org/project/ninja >`__ (also available
605
642
on PyPI).
606
643
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
+
607
660
.. _shiv :
608
661
609
662
shiv
@@ -671,26 +724,6 @@ cases, end users won't use this module, but rather it will be used during the
671
724
build of the Python distribution.
672
725
673
726
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
-
694
727
.. _venv :
695
728
696
729
venv
0 commit comments