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

Jørn Lomax northlomax at gmail.com
Mon Mar 30 06:43:50 UTC 2015

On 30.03.2015 06:16, Vasily Kuz'min wrote:
> In my opinion, at first it is necessary to complete 40% of the
> Twisted, and only then to start the main objective. On an evaluation
> of alternative options some time will be required
I think it would be more important to look at the parts of twisted that 
buildbot relies the most on, which is the Prerspective Broker proker 
(pb). There are some parts of twisted buildbot never uses, so I don't 
think it should be within the scope of the project to port *all* of 
twisted. I think that would be an entire twisted GSoC project in itself.

Unfortunately, pb is not a part of twisted I have much experience with 
so it's hard to say how hard it would be to port it to python3. Looking 
briefly at the source code it looks achvievable to do as part of the 
project, but maybe someone with more experience with the pb module have 
a better idea exactly how much work it would take

Jørn Lomax
> 2015-03-30 2:10 GMT+03:00 Bob Hood <bhood2 at comcast.net>:
>> 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