[Twisted-Python] T9217 / PR1052: Wheels, wheels, and more wheels

Kyle Altendorf sda at fstab.net
Wed Aug 29 11:13:25 MDT 2018


Hi All,

I am working on ticket #9217 / PR #1051 to add lots more wheel 
generation to the Twisted CI.  I decided to give the cibuildwheel 
package a try and it made this process almost too easy (well... sort of 
:] ).  I've got AppVeyor-Windows, Travis-Linux, and Circle-OSX all 
building a variety of wheels for the supported Python versions and bit 
depths.  Travis doesn't save artifacts 'easily' so I went ahead and 
doubled up on Linux on Circle for now, though it's having some Docker 
issues at the moment and hasn't been successful yet.  For some reason in 
this one case the project directory isn't getting mounted into the 
container as expected.

wheel links:
https://github.com/twisted/twisted/pull/1051#issuecomment-416743261 (and 
next comment)

Now that I've got the wheel builds happening I figured it'd be good to 
try them out on 'real' machines.  Turns out we get a failure on 
twisted.cred.test.test_strcred.SSHCheckerTests.test_isChecker for at 
least the two checks I've done so far (Windows and OSX).  I haven't done 
more than a cursory look at that yet, but it's on the list to understand 
and resolve.  More testing would of course be welcome.  Real world, just 
trial Twisted's own tests, whatever would be appreciated if you are 
interested.

failures with wheels:
https://github.com/twisted/twisted/pull/1051#issuecomment-416977723

Overall, it's a bit unclear what the intended use of the various CI 
hosts are for Twisted.  I hear that Travis OSX builds were really slow, 
but from what I can see Circle isn't doing any OSX (other than what I 
added).  There wasn't any artifact storage being used on Circle either.  
So, I'm not sure if there was a reason to use Circle that went away, 
or...  But, not having to hook Travis up to S3 or somesuch for storage 
is quite nice so Circle wins at least in that category.

Now that I've got something rough in place, are there any opinions about 
how this should work?  I don't know the present release workflow so I 
don't know if we'd want an automatic push to PyPI on tags (probably 
not), or just artifacts on the build server to grab manually (would need 
some S3 or such for Travis, or Circle for Linux builds as well).  
Anything else?  Do we want automated tests against the wheels?  
cibuildwheel does have a feature for that though I haven't done anything 
with it yet.

Anyways...  hello, thanks for Twisted, and I hope this work ends up 
saving some people some time.

Cheers,
-kyle



More information about the Twisted-Python mailing list