Sunday, May 22, 2011

Proposed Rough Schedule

The coding period for GSOC runs from May 23 to August 22, a period of 13 full weeks. Additionally, a mid-term evaluation is scheduled for July 11, which is the beginning of the 10th week. I've divided the 13 week summer into 4 separate stages, each of which has their own completion criteria.

Initial Ramp-Up - 1 Week (May 23 - May 29)
For the first week of the sumer, I will be doing a couple of things. First off, I will be comparing the Android Emulator with Mainline QEMU to determine, and make a list of, the broad areas I need to merge into the Mainline to get it running an Android image. While most of the changes appear to be in the addition of the "goldfish" hardware emulation, there are several other areas that need to be checked to determine what needs to be merged. The current Android Emulator can't be compared only to QEMU release 0.8.2 because some later patches to QEMU have been selectively added back into the Android Emulator, which complicates this process. After this process I will have a better understanding of how the timeline for the summer will go and will update the schedule.

During this stage I will also complete some of the due diligence that I've fallen behind on, including setting up a public git repository for my branch of Mainline QEMU and posting setup instructions for building the Android Emulator (I've got this in a script for Ubuntu 64-bit which is running right now, so this shouldn't take long).

Merging Changes - 9 Weeks (May 30 - July 31)
As already mentioned I will probably be changing the plans for this section of the schedule after I finish determining the necessary changes to be made during the Initial Ramp-Up period. This period is budgeted at 9 weeks of work, and will be entirely devoted to merging the portions of the Android Emulator into my branch of Mainline QEMU in order to enable the running of an Android image. My current schedule of changes to be made divides the necessary modifications into two segments, "goldfish" hardware and everything else. As it seems most of the changes are in the "goldfish" hardware, I'm hoping to get that done in the first 5 weeks and use the remaining 4 to work on the rest.

The end of this stage occurs when all of the necessary merges listed during the Initial Ramp-Up period are completely merged into my branch. The mid-term for GSOC occurs one week after I plan to be finished merging "goldfish", so even if I fall behind my current project schedule I should be finished with that portion by the mid-term. Finishing that will be my main goal to be on track at mid-term evaluations.

Testing and Debugging - 2 Weeks (August 1 - August 14)
The two weeks devoted to testing and debugging may seem excessive, but I'm trying to allow some leeway for any unforeseen issues. If everything works fine then I can focus on fixing everything up and cleaning up the documentation. Since everything is not going to work fine and/or the previous stage will take more time than anticipated, these two weeks are being set aside for

At the end of this period, no more code merging should be taking place. The only anticipated code modifications would be resolving diff conflicts with Mainline.

Final Stages - 1 Week (August 15 - August 21)
During the final week I plan on doing mostly clean up work, catching up on documentation and hopefully getting the diffs integrated back into Mainline QEMU. I may be crunched for time moving into a new apartment and preparing for grad school this week (my school year begins the day GSOC ends) so I'm planning on having most everything done before.

No comments:

Post a Comment