@@ -288,13 +288,22 @@ Building extensions for multiple platforms
288
288
------------------------------------------
289
289
290
290
If 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.
298
307
299
308
Binary extensions for Windows
300
309
-----------------------------
0 commit comments