@@ -288,13 +288,22 @@ Building extensions for multiple platforms
288288------------------------------------------
289289
290290If you plan to distribute your extension, you should provide
291- :term: `wheels <Wheel> ` for all the platforms you intend to support. For most
292- extensions, this is at least one package per Python version times the number of
293- OS and architectures you support. These are usually built on continuous
294- integration (CI) systems. There are tools to help you build highly
295- redistributable binaries from CI; these include :ref: `cibuildwheel ` and
296- :ref: `multibuild `.
297-
291+ :term: `wheels <Wheel> ` for all the platforms you intend to support. These
292+ are usually built on continuous integration (CI) systems. There are tools
293+ to help you build highly redistributable binaries from CI; these include
294+ :ref: `cibuildwheel ` and :ref: `multibuild `.
295+
296+ For most extensions, you will need to build wheels for all the platforms
297+ you intend to support. This means that the number of wheels you need to
298+ build is the product of::
299+
300+ count(Python minor versions) * count(OS) * count(architectures)
301+
302+ Using CPython's :ref: `Stable ABI <cpython-stable-abi >` can help significantly
303+ reduce the number of wheels you need to provide, since a single wheel on a
304+ platform can be used with all Python minor versions; eliminating one dimension
305+ of the matrix. It also removes the need to generate new wheels for each new
306+ minor version of Python.
298307
299308Binary extensions for Windows
300309-----------------------------
0 commit comments