-
-
Notifications
You must be signed in to change notification settings - Fork 703
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Pythonwheels.com publications needed #428
Comments
Having ready-to-install wheels on PyPI would indeed be great. |
On Windows and GNU/Linux it will be easy. |
Hi, I was recently bit by #689 and would like to work on having this project provide wheels for manylinux, macos and windows. Can a maintainer give me an outline of the current release process? This would likely require using GitHub Actions as well as https://github.com/pypa/gh-action-pypi-publish. |
That would be awesome @di 👍 The current release process is quite simple/naive: python setup.py sdist
twine upload dist/* Wheels for GNU/Linux and Windows should be the easy part. The macOS one requires compilation of the C file and it is handled into |
OK, I took a stab at this: 78a09ed You can see an example run here: https://github.com/di/watchdog/actions/runs/427357496 (the run fails because PyPI credentials aren't set, so the uploads fail). This produces the following distributions:
One thing that was challenging is that the tests seem fairly flakey -- it took quite a number of runs to get them all to pass. Is this expected? |
Yes, tests are quite flaky, there is definitely room for improvements. Wow this is absolutely splendid! :) |
Great point, I had missed that it's using such a modern version of the SDK. Looks like this is due to actions/setup-python#26. I've updated it to use https://github.com/joerick/cibuildwheel so it now builds the following macOS distributions (which are forwards-compatible):
Sorry, I thought it was clear: the Windows and Linux wheels are actually pure-Python, so we can just rename them to make them available to all Windows/Linux platforms. I've gone ahead and done that, the build now produces these distributions as well:
As well as:
You can see the full run here: https://github.com/di/watchdog/actions/runs/429458829
I'm not sure I ported them 1:1 (e.g. PyPy tests are missing), I mostly just wanted to have some confidence that broken releases weren't being made. But I think it's fairly close. I don't think you want to build all distributions and try to upload them as part of your CI though. There's a couple options where this workflow could be run:
Which would you prefer? |
A manual trigger is required IMO. No need to automate too much those steps as I do not plan to do continuous deployment ;) Out of curiosity, instead of renaming wheels for Windows and Linux, does something like generic wheel name could be use? I am not sure at all though. |
BTW go ahead and open a PR with your changes. Just add a changelog entry and we will be good :) |
Sounds good.
Yes, by default this produces a pure Python wheel, The issue is that publishing a I'm not entirely sure what the macOS-specific parts of this library are, but I'm assuming it would cause problems if they were unavailable, therefore as long as this project has macOS-specific parts, it should never publish a
I made a PR at #739. I'm not sure what you want me to put in the changelog, since I would recommend running this workflow as soon as it's merged to add wheels retroactively for the 1.0.2 release that's already on PyPI. |
Thanks a lot! |
Watchdog more than many has a finickity build per platform it can run on.
Can we publish binary wheels to https://pythonwheels.com, please?
The text was updated successfully, but these errors were encountered: