Skip to content

Commit 9671ddb

Browse files
jeanaswebknjaz
authored andcommitted
Various minor rewordings
1 parent dc02b6d commit 9671ddb

File tree

1 file changed

+25
-18
lines changed

1 file changed

+25
-18
lines changed

source/guides/tool-recommendations.rst

Lines changed: 25 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -66,36 +66,43 @@ Build backends
6666
Popular :term:`build backends <build backend>` for pure-Python packages include,
6767
in alphabetical order:
6868

69-
- Flit-core_ (developed with but separate from :ref:`Flit`). It is meant to be a
70-
minimal and opinionated build backend. It is not extensible.
69+
- Flit-core_ -- developed with but separate from :ref:`Flit`. A minimal and
70+
opinionated build backend. It does not support plugins.
7171

72-
- Hatchling_, which is developed along with :ref:`Hatch`, but is separate and can
73-
be used without Hatch. Hatchling is extensible through a plugin system.
72+
- Hatchling_ -- developed with but separate from :ref:`Hatch`. Supports plugins.
7473

75-
- PDM-backend_ (developed with but separate from :ref:`PDM`). It provides build
76-
hooks for extensibility.
74+
- PDM-backend_ -- developed with but separate from :ref:`PDM`. Supports plugins.
7775

78-
- Poetry-core_ (developed with but separate from :ref:`Poetry`). It is extensible
79-
through plugins.
76+
- Poetry-core_ -- developed with but separate from :ref:`Poetry`. Supports
77+
plugins.
8078

81-
- :ref:`setuptools` (which used to be the only build backend). It can be
82-
configured using modern standards like the :ref:`[project] table in
83-
pyproject.toml <writing-pyproject-toml>`, but can also be extended and
84-
customized via :file:`setup.py`.
79+
Unlike other backends on this list, Poetry-core does not support the standard
80+
:ref:`[project] table <writing-pyproject-toml>` (it uses a different format,
81+
in the ``[tool.poetry]`` table).
82+
83+
- :ref:`setuptools`, which used to be the only build backend. Supports plugins.
8584

8685
If you use setuptools, please be aware that some features that predate
87-
standardisation efforts are now deprecated and only *temporarily kept* for compatibility.
88-
For example, do **not** use ``python setup.py`` invocations
89-
(cf. :ref:`setup-py-deprecated`), the ``setup_requires`` argument to
90-
``setup()`` (use the :ref:`[build-system] table
91-
<pyproject-guide-build-system-table>` of :file:`pyproject.toml` instead), or
86+
standardisation efforts are now deprecated and only *temporarily kept*
87+
for compatibility.
88+
89+
In particular, do **not** use direct ``python setup.py`` invocations. On the
90+
other hand, configuring setuptools with a :file:`setup.py` file is still fully
91+
supported, although it is recommended to use the modern :ref:`[project] table
92+
in pyproject.toml <writing-pyproject-toml>` whenever possible and keep
93+
:file:`setup.py` only if programmatic configuration is needed. See
94+
:ref:`setup-py-deprecated`.
95+
96+
Other examples of deprecated features you should **not** use include the
97+
``setup_requires`` argument to ``setup()`` (use the :ref:`[build-system] table
98+
<pyproject-guide-build-system-table>` in :file:`pyproject.toml` instead), and
9299
the ``easy_install`` command (cf. :ref:`pip vs easy_install`).
93100

94101
Do **not** use :ref:`distutils`, which is deprecated, and has been removed from
95102
the standard library in Python 3.12, although it still remains available from
96103
setuptools.
97104

98-
For packages with :term:`extension modules <extension module>`, you may use
105+
For packages with :term:`extension modules <extension module>`, it is best to use
99106
a build system with dedicated support for the language the extension is written in,
100107
for example:
101108

0 commit comments

Comments
 (0)