Skip to content

Conversation

@2bndy5
Copy link
Member

@2bndy5 2bndy5 commented Oct 11, 2025

Breaking Changes!

Python 3.7 and v3.8 have been dead for over a year now. v3.9 is slated for death in a few weeks. These changes still maintains support for v3.9 (or newer). I held out as long as I could, but this was inevitable.

  • resolves deprecated license metadata #105
  • bumps cibuildwheel to v3 and pybind11 to v3. This allows building/supporting Python v3.14.
  • Revises CI workflows to satisfy some basic security concerns. Permissions are only explicitly granted when needed. Storage of git credentials are removed upon checkout.

Tip

The new craze in Python is free-threaded builds. Meaning, v3.14t (note the suffixed t in the python version) boasts true parallelism because it gets rid of the old GIL (mechanism that locks the python runtime to 1 thread).

We shouldn't need to do anything on our end because RF24 uses mutex locks for hardware access (to SPI buses, GPIO pins are guarded by the Linux Kernel's char-dev API). We only needed to bump the build tools (pybind11 and cibuildwheel) to support the newer CPython C API.

@2bndy5 2bndy5 added the dependencies Pull requests that update a dependency file label Oct 11, 2025
and a typo in pyproject.toml
@2bndy5
Copy link
Member Author

2bndy5 commented Oct 11, 2025

According to PiWheels, these are the versions of python shipped with each version of RPi OS

Raspberry Pi OS version Python version
Buster Python 3.7
Bullseye Python 3.9
Bookworm Python 3.11
Trixie Python 3.13

This means we'd only be disrupting users who haven't updated their RPi machines in a long time (buster LTS ended in Jun 2024). At that point, I think those users would be expecting some obstacles if/when updating software.

@2bndy5 2bndy5 merged commit 7b7c08c into main Oct 11, 2025
45 checks passed
@2bndy5 2bndy5 deleted the drop-py-3.8 branch October 11, 2025 08:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

deprecated license metadata

2 participants