There were a couple of different things that prevented us from publishing working universal2 wheels:
- We’re using cibuildwheel to build the wheels, and that understands how to cross-compile things, but since part of the extension is written in Go and needs to be compiled with CGo, some additional tweaks were needed to make sure the compiled bit was coming out for the correct architecture.
- Go currently doesn’t support creating universal binaries on its own; you need to do it by hand with
lipo, and we’d need to build our own tooling for that.
As a consequence, we’ve decided it’s simpler to drop
universal2, and just publish separate
arm64 wheels for macOS. That means we have to publish more wheels, but the upside is that
pip will definitely be able to find one that works on your Mac. I also added back
i686 wheels for Linux; they had inadvertently been dropped from the previous release.
The embedded version of
starlark-go has been updated to the latest available version as of this writing, which is v0.0.0-20230122040757-066229b0515d.
I went ahead and bumped the version to 1.0.0 because there was no reason not to; I consider the code to be feature-complete, I am reasonably certain that everything works as intended, and I have no plans to break the API in the foreseeable future. I intend to follow SemVer for future releases; any breaking changes will come with a major version bump.
The main thing I’d still like to add is pre-built wheels for Windows; if you’re a Windows-loving Pythonista that can help, please stop by the GitHub repo and say hello!