1
edit
Changes
→Project Plan
==Project Plan==
This project will be broken into many distinct parts. The first seven parts of Step 2 of the system will be completed as releases for DPS911 and the remainder will be completed during the summer of 2009. As I don't know what this project holds, I have more solid details of the first few releases. As I work through the first few parts of the system, I will be able to add detail to this page.
===Step 1===
====Name In====
I guess this is what I am doing here
===Step 2===
====DPS911 Release - Setup Local Buildbot====
This step will be to set up buildbot at CDOT. This system will serve a dual purpose of having a local Buildbot system for use in CDOT as well as allowing me to test changes to buildbot. If having a local stable buildbot is found to be useful, an additional one can be set up. Initially, this local Buildbot will have a single CentOS Slave, though, as time goes on more slaves will be added.
I plan to put the buildbot master on Australia and use either KVM based Virtual Machines or bare metal machines.
====DPS911 Release - Make a (successful) change to BuildBot/Twisted====
This step involves making a change to buildbot which doesn't horribly break the system. By this release I would like to have at least one Windows and one OS X machine as slaves to ensure that nothing is broken for the individual build systems. This step will serve as a learning tool for my next step and make me familiar with the BuildBot codebase
====DPS911 Release - Patch BuildBot to add timestamps====
As I understand it, buildbot uses [http://twistedmatrix.com/trac/ Twisted]'s twisted.python.log.msg() method to log everything. I will modify this function to interface with some sort of information gathering system and create a configuration option in buildbot to use this option. The patches which will accomplish this will be submitted upstream.
====DPS911 Release - Design Database Schema====
The log parser will need somewhere to put the information it finds in the logs. Currently, the best place to put this is a database. I will design the schema required for storing data. My goal is to have this be able to store information for different branches, each with their own history. This release will be in the form of a diagram illustrating the design.
====DPS911 Release - Create DB====This release will be a database generation script based on the above schema. I will target either MySQL or Postgres depending on what is preferred. ====DPS911 Release - Start writing log parserLog Parser====
This release involves writing the initial part of a log parser which will take information from the log files and populate the database. Another potential option is to modify the buildbot patch to directly insert into the database. If buildbot is going to directly insert into the database it might be a good idea to write a high performance caching program in C so the build is not affected by database overhead. This C program would then write to the database as needed.
====Design UI for trending information====