[Buildbot-devel] GSoC Asynchronous Master/Slave Protocol
tpa12 at sfu.ca
Mon Mar 26 23:11:05 UTC 2012
Hi BuildBot community,
My name is Tibi, and I'm a computing science student in my final year at Simon Fraser University in Canada. For the GSoC I'm interested in contributing to the Buildbot project.
I've worked as a build engineer for Electronic Arts where I shipped 3 AAA titles. At EA I created the build process from scratch for a Need for Speed title using IBM's Buildforge, and maintained an existing build system that used CruiseControl. I also have experience and education working on distributed systems. In 2010 I successfully completed a GSoC project for Worldforge.
I'm interested creating an asynchronus master - slave protocol. I have a rough idea for a schedule, but I think this is something that needs more discussion. I would really appreciate input on this.
1. Familiarization ~2-3 Weeks
Initially, I need to become familiar with the Buildbot architecture, with an emphasis on master-slave communication. I think some useful deliverables might be sequence diagrams of the communications and other UML diagrams, and improved documentation on the website. This would help me and future developers understand how things work.
2. Design ~4-6 Weeks
I imagine that during this phase, I would work very closely with my mentor. When designing the protocol, it's important to consider the needs of Buildbot, and any work already done on this. I like zeromq, and I have a lot of experience programming in C. Deliverables would be the design documents created.
3. Implementation ~4-6 Weeks
Once my mentor and I have agreed upon a design, and I've documented my intention for the protocol, I can begin implementation. I think creating a design that satisfies the needs of Buildbot and is well documented is more important than actually implementing it. If I don't complete the implementation, I can always work on it after the GSoC based on the design.
4. Testing ~2 Weeks
Any remaining time would be spent on testing.
Last year, I helped create a synchronous distributed system. The project was a part of a course that aside from teaching distributed systems, featured a semester long competition between teams to scale a game that was ran on one machine. I was a leader, and one of the main organizers and contributors. Networking was done using nonblocking sockets with epoll. Here is the github source: https://github.com/horseplay/Antix
Here are some videos that showcase my contributions to Worldforge for GSoC 2010.
I'm currently on vacation, and I don't have access to a computer that I can configure for building. However, I would like to set up a build machine for Worldforge's Ember client. Looking at the documentation for Buildbot it seems that build scripts can only be configured in python. Ideally, I think that the build process should allow for configuration in any language.
I'm really interested in distributed systems, and I'd like to work with Buildbot this summer and in the future.
More information about the devel