[Twisted-Python] Building Python3 wheels for Win32 and releasing to Pypi
At https://pypi.python.org/pypi/Twisted , there is only a Python 2.7 wheel for Win32. Since we don't push Python3 wheels to Pypi, people need to pick them up from: https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted which is not ideal. Since I ported the IOCP reactor to Win32 in 2016, it would be good to update the Twisted release scripts to push Python3 wheels to Pypi. Where are these scripts located? -- Craig
On Jan 7, 2018, at 1:47 PM, Craig Rodrigues
wrote: At https://pypi.python.org/pypi/Twisted https://pypi.python.org/pypi/Twisted , there is only a Python 2.7 wheel for Win32.
Since we don't push Python3 wheels to Pypi, people need to pick them up from: https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted which is not ideal.
Since I ported the IOCP reactor to Win32 in 2016, it would be good to update the Twisted release scripts to push Python3 wheels to Pypi.
👍
Where are these scripts located?
The release process is documented here: https://twisted.readthedocs.io/en/latest/core/development/policy/release-pro... https://twisted.readthedocs.io/en/latest/core/development/policy/release-pro... According to said documentation, it seems that the Windows wheels are all built on the Buildbot, which would put the script here: https://github.com/twisted-infra/braid/blob/4320f9461d376ba255158e841b308dd8... https://github.com/twisted-infra/braid/blob/4320f9461d376ba255158e841b308dd8... Personally I would really like to see a wheel matrix with win32/win64/macOS/manylinux1 on one side and py27 py34 py35 py36 on the other. -glyph
On 7 January 2018 at 23:44, Glyph
On Jan 7, 2018, at 1:47 PM, Craig Rodrigues
wrote: At https://pypi.python.org/pypi/Twisted , there is only a Python 2.7 wheel for Win32.
Since we don't push Python3 wheels to Pypi, people need to pick them up from: https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted which is not ideal.
Since I ported the IOCP reactor to Win32 in 2016, it would be good to update the Twisted release scripts to push Python3 wheels to Pypi.
👍
Where are these scripts located?
The release process is documented here:
https://twisted.readthedocs.io/en/latest/core/development/ policy/release-process.html
According to said documentation, it seems that the Windows wheels are all built on the Buildbot, which would put the script here: https://github.com/twisted-infra/braid/blob/4320f9461d376ba255158e841b308d d833376c36/services/buildbot/master/twisted_factories.py#L624-L664
Personally I would *really* like to see a wheel matrix with win32/win64/macOS/manylinux1 on one side and py27 py34 py35 py36 on the other.
Maybe it helps, There is some work for moving the Windows builds to appveyor Ticket https://twistedmatrix.com/trac/ticket/8676 initial PR https://github.com/twisted/twisted/pull/413 I no longer have time to work on it, but I think that is possible to build wheels for py2.7 and py3 on appveyor -- Adi Roiban
On Sun, Jan 7, 2018 at 10:14 PM, Adi Roiban
I no longer have time to work on it, but I think that is possible to build wheels for py2.7 and py3 on appveyor
If during the release process, appveyor could build the Windows wheels on py2.7 and py3, and then upload them to pypi, that would be ideal. Didn't you implement something for one of the Twisted subprojects where if a git tag was created and pushed to github, then it would build and upload to pypi? That would be the ideal thing to implement with appveyor for the main Twisted project. -- Craig
If during the release process, appveyor could build the Windows wheels on py2.7 and py3, and then upload them to pypi, that would be ideal.
Last I checked AppyVeyor can't do this directly. I ended up writing a
command line tool to make releases for pywincffi which uses this class to
pull release artifacts from a build on AppVeyor:
https://github.com/opalmer/pywincffi/blob/master/pywincffi/dev/release.py#L3...
The PR mentioned above appears to already push artifacts using sftp so if
you wanted to pull artifacts for a specific build you could use the above.
I don't know enough about Twisted's release process to know if the above
will be useful but if you need to access all artifacts for a branch of the
last passing build the above should do it.
As for building wheels for Windows on AppVeyor it might be worth looking at
the one I've come up with:
https://github.com/opalmer/pywincffi/blob/master/appveyor.yml
The most notable difference probably is that I'm creating an environment
variable called %WITH_COMPILER% which points at a script
https://github.com/opalmer/pywincffi/blob/master/.ci/appveyor/run_with_compi...
that
sets up additional environment variables prior to the install
https://github.com/opalmer/pywincffi/blob/master/.ci/appveyor/install.cmd or
other scripts running. I don't know enough about Twisted's build to know if
it's needed but without those environment variables I ended up having
problems getting builds through for Python 2/3 for both 32-bit and 64-bit
variants even when using setuptools. I don't know if the situation has
improved since but it might be worth looking at if Twisted's build on
appyveor runs into issues.
On Mon, Jan 8, 2018 at 3:56 PM, Craig Rodrigues
On Sun, Jan 7, 2018 at 10:14 PM, Adi Roiban
wrote: I no longer have time to work on it, but I think that is possible to build wheels for py2.7 and py3 on appveyor
If during the release process, appveyor could build the Windows wheels on py2.7 and py3, and then upload them to pypi, that would be ideal.
Didn't you implement something for one of the Twisted subprojects where if a git tag was created and pushed to github, then it would build and upload to pypi? That would be the ideal thing to implement with appveyor for the main Twisted project.
-- Craig
_______________________________________________ Twisted-Python mailing list Twisted-Python@twistedmatrix.com https://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
participants (4)
-
Adi Roiban
-
Craig Rodrigues
-
Glyph
-
Oliver Palmer