On Oct 19, 2011, at 7:50 AM, Antoine Pitrou wrote:
Feedback and contributions welcome. If you are interested in helping,
please go and read the link above, it will give you suggestions.
Antoine, I'm very happy that you've decided to help Twisted get going on Py3. I see that you've already submitted several of your fixes to the Twisted tracker. Thanks for that. We'll try (as always) to get those reviewed soon. We do eventually want to have 3.x support in trunk, so anything you're doing to support that goal should be an acceptable patch - provided it meets our other quality criteria, of course, but there's no patch for py3k support which shouldn't be able to meet that criteria :).
I would suggest that you submit all patches directly to the Twisted tracker, where they can be properly reviewed before landing, not to this (or any other) fork. As several other messages in this thread have indicated, it looks like you may be misunderstanding a few key aspects of Twisted (such as how the distinction between bytes and unicode needs to be treated in the Banana protocol), so this fork is going to get some things wrong, potentially with wire-level implications and incompatibilities. Review discussions of targeted patches will allow us to address those areas individually, while getting the other parts merged into the mainline.
Most importantly, it will not be reasonable to merge in a humongous branch with hundreds of unrelated changes later; doing code review on changes that big just isn't feasible and chances are good that they will linger forever. If your fork _is_ made to work correctly, folding that correct behavior back in with all the necessary test coverage and fixes will be a much larger job than doing it the right way in the first place, one bit at a time, in Twisted trunk. We have had several bad experiences with this kind of development before and I would rather not repeat them.
If this is just a short-lived experimental test bed to try things out quickly (i.e. a spike to demonstrate that it's feasible to get Twisted on py3), then that's fine, but I am somewhat concerned that impatient users will actually adopt this fork, and we will have to spend a lot of energy telling people (A) "don't use Antoine's fork, it's broken", and (B) "please stop reporting bugs in this broken fork on our bug tracker".
At any rate, the very first step here should be to add an as-yet-unsupported py3 builder to our build farm. This should be pretty straightforward, as new builders are added all the time, and we have some new hardware that could be put to use for this.
We might also be able to help with your problem of testing things on Windows, as we do have several Windows test machines set up already. (Is pywin32 supported on 3.x yet? <
http://pypi.python.org/pypi/pywin32/> doesn't indicate.)
Would anyone like to volunteer to help out with Antoine's efforts on the build-infrastructure side of things?