[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 <rodrigc@crodrigues.org> 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-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/4320f9461d376ba255158e841b308dd8... <https://github.com/twisted-infra/braid/blob/4320f9461d376ba255158e841b308dd833376c36/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. -glyph
On 7 January 2018 at 23:44, Glyph <glyph@twistedmatrix.com> wrote:
On Jan 7, 2018, at 1:47 PM, Craig Rodrigues <rodrigc@crodrigues.org> 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 <adi@roiban.ro> 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
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_compiler.cmd> 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 <rodrigc@crodrigues.org> wrote:
On Sun, Jan 7, 2018 at 10:14 PM, Adi Roiban <adi@roiban.ro> 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