Skip to content

Releases: prebuilt wheels and a tag-driven publish workflow - #10

Merged
bdbarnett merged 7 commits into
mainfrom
release-chain
Nov 10, 2026
Merged

bdbarnett merged 7 commits into
mainfrom
release-chain

Conversation

@bdbarnett

@bdbarnett bdbarnett commented Nov 10, 2026 •

Copy link
Copy Markdown
Contributor

Once a release is tagged, pip install omnipython-airwindows will install a prebuilt wheel instead of compiling 528 plug-ins. A release builds 30 wheels: CPython 3.11 to 3.15 (and 3.15t) on Linux x86_64, Linux aarch64, Windows and macOS on Apple Silicon, plus 3.13 and 3.14 for Android (arm64, x86_64) and Pyodide. Each wheel except Android and Pyodide installs into a clean environment and renders PurestDrive. Pre-releases go to TestPyPI and a GitHub pre-release; finals go to PyPI after a maintainer approves the pypi environment. The install page, CONTRIBUTING's release section and the roadmap bullet describe this, and the install page carries the uv line with --index-strategy unsafe-best-match that a TestPyPI install needs.

This puts the package on the same publishing workflow the other compiled packages use, at the same pin (publishing-v21). Before it, the only install was pip install git+..., which compiles everything.

I ran the wheel build for this branch through the shared build workflow on a temporary pull-request trigger (removed again in the last commit). All six jobs passed, each wheel's simpletest passed where it runs, and the workflow validated exactly 30 wheels. Job times: Windows 16 min, macOS 16 min, Android 7 min, Pyodide 4 min, Linux aarch64 6 min and Linux x86_64 7 min; the Linux jobs ran with a warm cache, and their first, cold runs took 21 and 20 min, so expect 20 minutes or more on a first build. Wheels are 1.1 to 2.2 MB on macOS, Windows, Android and Pyodide, 2.76 MB on Linux x86_64 and 2.23 MB on Linux aarch64. The Linux builds pass -g0, so the extension carries no debug information; those wheels were 11.3 and 10.5 MB before.

I downloaded the Linux x86_64 cp312 wheel, installed it into a new venv, and Galactic on noise printed the same peaks as the README (247, 343, 307, 243). The wheel holds the compiled module, audioairwindows.py and the licence files, and no C sources. I did not run the publish jobs: nothing was uploaded, and the pypi environment, the PyPI Trusted Publisher and the TestPyPI project haven't been checked from here.

@bdbarnett bdbarnett changed the title Release chain: wheels for Windows, Linux and macOS on a tag Releases: prebuilt wheels and a tag-driven publish workflow Nov 10, 2026
@bdbarnett
bdbarnett marked this pull request as ready for review November 10, 2026 08:39
@bdbarnett
bdbarnett merged commit 066dfc3 into main Nov 10, 2026
7 checks passed
@bdbarnett
bdbarnett deleted the release-chain branch November 10, 2026 12:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant