[Buildbot-devel] GSoC: provide forward compatibility for Python 3

Bob Hood bhood2 at comcast.net
Sun Mar 29 23:10:35 UTC 2015

On 3/29/2015 3:29 PM, Vasily Kuz'min wrote:
> Hi Dustin,
> thank you for your reply. I've uploaded my proposal as PDF to my server[0]
> so that people who want could have a look. I've also attached it as text file.
> I'm quite unsure about the timeline part, since I have to better understand the
> structure of the source code before I can give my time estimation. I think I'll
> have to correct it once I'll understand source code structure.
> As for Twisted, it seems that they mention several issues on the corresponding
> web page[0]. I doubt that's all that we should care about: milestone for Py3K
> shows that Twisted is only 60% ready[2]. I think it means that we may face
> other problems except those listed. I don't think that will be a real problem
> though; moreover, I tend to think that means I can help both buildbot and
> Twisted.
> Generally speaking, we have two ways: create various work-arounds for buildbot
> or correct these issues in Twisted directly. The first is faster but I think
> it is incorrect, because it'll introduce backward incompatibilities later when
> Twisted will get updated its APIs. What I really think about is to collaborate
> with Twisted guys. I tend to think that the second way is better, but of course
> we shall concentrate on things related to buildbot. However, I'd like to know
> your opinions.
> [0] http://derzsky.freedom-web.ru/proposal.pdf
> [1] https://twistedmatrix.com/documents/14.0.0/core/howto/python3.html
> [2] https://twistedmatrix.com/trac/milestone/Python-3.x

Hello, Vasily!  Thanks for your proposal.

I'm a bit concerned about the Twisted framework. Being 60% done means it's 40% 
incomplete, and that is a large risk to your success.  As you've pointed out, 
working on Twisted yourself is certainly one option, but that then takes time 
away from your focus on Buildbot.  A completed Twisted framework for Python 
3.0 is a dependency to successfully completing your proposal, and on that page 
you provide, it actually says "No date set" for completion.

In light of all this (which would be setting off alarms and Big Red Flags to a 
project manager), have you given any thought to alternatives?  I recall 
reading about 'asyncio' being a viable alterntive to Twisted in Python v3.  Do 
you think it would be wise to have a "plan b" available in case Twisted is not 
fully ported to Python v3 by the time your project needs to complete?  I'm not 
saying Dustin would accept that ( ;) ), but it would show recognition of that 
dependency and its risk to successful completion.

Also, the schedule you include in your proposal could probably benefit from 
some additional detail.  Having a four-month block that only says 
"Reimplementing the core functionality" is quite nebulous and doesn't really 
offer anything from which a metric of task success can be measured.  I 
understand that you are not really familiar with the Buildbot code base, but 
I'm sure there must be some higher-level tasks that could be listed with time 
estimates, e.g.: "Familiarize myself with Buildbot's design - 1 week"; 
"Evaluate 'asyncio' as an alternative to the Twisted framework - 1 week"; 
etc.  There needs to be goals and milestones so the health of your progress on 
the task can be monitored.

More information about the devel mailing list