Skip to content
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

PyPI distributable wheel #315

Closed
jerinphilip opened this issue Jan 27, 2022 · 2 comments · Fixed by #424
Closed

PyPI distributable wheel #315

jerinphilip opened this issue Jan 27, 2022 · 2 comments · Fixed by #424
Labels
help wanted Extra attention is needed mod: python Issues related to the python bindings and module provided here.

Comments

@jerinphilip
Copy link
Contributor

The wheels built on ubuntu straightforward work with the respective distributions. However, python community seems to have imposed standards on what wheels can be published on PyPI, and prefers a "manylinux" wheel.

https://github.com/pypa/manylinux

A good thing to have is a GitHub actions environment setting up manylinux, and creating the wheel for the same. We'll have to see if there are any issues of speed or symbol missing or such.

There was an ongoing effort at jerinphilip/lemonade#45, which is currently failing at ssplit. Towards this ugermann/ssplit-cpp#30 has been opened.

@jerinphilip jerinphilip added help wanted Extra attention is needed mod: python Issues related to the python bindings and module provided here. good first issue Good for newcomers labels Jan 27, 2022
@jerinphilip
Copy link
Contributor Author

Thanks to @ugermann who's solved the build issues on CentOS via a RockyLinux docker, we have a manylinux wheel building at https://github.com/jerinphilip/bergamot-translator/runs/5991984231?check_suite_focus=true. It will take me some more time to export the artifacts and bring manylinux wheels here, leaving the update here for future reference.

@eu9ene
Copy link
Contributor

eu9ene commented Apr 20, 2022

+1 for this task. I'm pretty sure distribution through PyPi would increase adoption drastically. @jerinphilip thank you for this work!

@jerinphilip jerinphilip removed the good first issue Good for newcomers label Jun 18, 2022
jerinphilip added a commit that referenced this issue Jun 20, 2022
Old GitHub CI using Ubuntu and MacOS explicitly and building wheels have
been removed in favour of the more portable pypa specified builds. These
wheels should work just as well across a wider range of distributions.

pybind11:CMakeLists.txt requires Development.Module instead of
Development.* to avoid Embed from getting in the way of manylinux
builds.

manylinux_x86_64 builds are added for cp3.6 - 3.10. The linux build
uses an old image via docker.  Since the docker images are able to use
shared ccache folder, builds quite fast on warm starts.

ccache usage in setup.py is now triggered by an environment variable.
This allows for builds not to fail if ccache not present.

On tag pushes corresponding to versions, CI is configured to deliver
built wheels to PyPI, reading from repository secrets.

Improves setup.py including documentation and some formatting, and
additional links to source.

Fixes: #315
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed mod: python Issues related to the python bindings and module provided here.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants