Skip to content

Update HOWTO to reflect change in CIBW option #134595

Open
@3willows

Description

@3willows

Documentation

Python documentation in ‎Doc/howto/free-threading-extensions.rst states at lines 397-399

pypa/cibuildwheel supports the free-threaded build if you set CIBW_FREE_THREADED_SUPPORT.

I noticed when running Spinx that the anchor link to "CIBW_FREE_THREADED_SUPPORT" is broken, and realised the reason is that the preferred way of supporting free-threaded build has changed in cibuildwheel since June 2024 when this text was written.

The current documentation explains

CIBW_ENABLE {: #enable}

Enable building with extra categories of selectors present.

This option lets you opt-in to non-default builds, like pre-releases and free-threaded Python. These are not included by default to give a nice default for new users, but can be added to the selectors available here. The allowed values are:

  • cpython-prerelease: Enables beta versions of Pythons if any are available (May-July, approximately). For backward compatibility, CIBW_PRERELEASE_PYTHONS is also supported until cibuildwheel 3.
  • cpython-freethreading: PEP 703 introduced variants of CPython that can be built without the Global Interpreter Lock (GIL). Those variants are also known as free-threaded / no-gil. This will enable building these wheels while they are experimental. The build identifiers for those variants have a t suffix in their python_tag (e.g. cp313t-manylinux_x86_64). For backward compatibility, CIBW_FREE_THREADED_SUPPORT is also supported until cibuildwheel 3.

In light of this change, I suggest a tiny rewrite to:

* `pypa/cibuildwheel <https://github.com/pypa/cibuildwheel>`_ supports the
  free-threaded build if you set 
  `CIBW_ENABLE to cpython-freethreading <https://cibuildwheel.pypa.io/en/stable/options/#enable>`_

(First issue)

Related PRs

Linked PRs

Metadata

Metadata

Assignees

No one assigned

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions