Repository navigation
Releases: prebuilt wheels and a tag-driven publish workflow - #10
Merged
Merged
Conversation
bdbarnett
marked this pull request as ready for review
November 10, 2026 08:39
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Once a release is tagged,
pip install omnipython-airwindowswill 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 thepypienvironment. The install page, CONTRIBUTING's release section and the roadmap bullet describe this, and the install page carries theuvline with--index-strategy unsafe-best-matchthat 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 waspip 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.pyand the licence files, and no C sources. I did not run the publish jobs: nothing was uploaded, and thepypienvironment, the PyPI Trusted Publisher and the TestPyPI project haven't been checked from here.