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

Build binary wheels automatically for Windows using Appveyor #54

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

codypiersall
Copy link
Contributor

@codypiersall codypiersall commented Sep 20, 2016

This pull request adds support for automatically building Windows wheels using Appveyor. It builds nanomsg using the 1.0.0 tag and builds the Python extension. It works for Python 2.7-3.5, but cannot build the 64-bit extension for Python 2.7 or Python 3.3 because Appveyor does not support the 64-bit version of the compiler needed for those Python versions. I had to make a couple small changes to make this work:

  1. Changes to the setup.py to allow the C extension to be build instead of using ctypes.
  2. Use C89 standard in C extension so that Python 2.7 can be supported on Windows (the only change required was to move declarations to the start of blocks).
  3. In test_poll.py, change the test slightly that makes sure polling times out correctly. I think the only reason this was necessary was that the Appveyor node this was running on wasn't scheduling the process to run fast enough to get the timeout perfectly.

You can see some jobs that ran on Appveyor. If you click on one of the jobs, you can see the build artifacts, which in this case is a wheel. If this PR is accepted and you set up an account with Appveyor, then wheels will be automatically generated and can be uploaded to PyPI so Windows users don't have to go through the steps of building support on their own.

Please let me know if you need me to do anything else in order to accept the PR!

Note that my template file for the appveyor.yml script came from the Python packaging website.

@codypiersall
Copy link
Contributor Author

codypiersall commented Sep 21, 2016

This PR can close issue #44 and issue #47.

@codypiersall
Copy link
Contributor Author

Hey @tonysimpson, do you have any plans to merge this? It should help with Windows support, I think. The generated wheels can be uploaded to PyPI, so Windows users who don't have compilers will still be able to pip install nanomsg without a problem.

@tonysimpson
Copy link
Owner

@codypiersall I merged this but I can't get the builds for Python27 x64 or Python34 x64 working - could you have a look at it - I've probably broken something. code is in master

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants