Wednesday, September 22, 2010

Release Engineering & Student Projects

This semester we are trying to see if we can get some students to contribute to Mozilla by working with the Release Engineering team on very diverse and interesting projects. You might not have heard of Release Engineering before. I had no knowledge of the area before I got involved as a student at Seneca. In short, a release engineer at Mozilla creates, maintains, and automates systems to deal with the release infrastructure.  Our work affects you every time you get an update with Firefox. We generate releases and updates for all different platforms; Linux, Mac, Windows and their 64-bit counterparts. Our systems also manage the continuous integration for developers working on Firefox and other Mozilla projects generating build, test, and performance results as developers commit changes and believe me they push our systems to the limit :P

We've put together a list of project we think might be interesting (and are manageable in size) to student contribution:

Teach the slave to be smarter! - The hgtools project
What if our pool of builders was better at managing all the different working directories (from Mercurial checkouts) we need at any give time?
If you look at this conversation from IRC you can see the benefits of this and a patch that has the initial work of it.

I am a releng and we are bad ass - ask me why :)
Give me a script and I will run it - The ScriptFactory project
Imagine that we did not have to touch that much our buildbot factories but instead we would maintain a bunch of script for all the different jobs we run? That would be easier and not even require our masters to be reconfigured to pick up the changes!
It would be good if we could create scripts that told a machine how to generate an optimized build, a debug build, unit tests, talos runs, locale repackages.
If you look in the tools/scripts repo you can see that we have a simple shell file to do this for the fuzzing automation. The buildbot factory that calls it is called ScriptFactory and it is very simple.

End-to-end project
How can we build faster and provide tests results faster to our developers?
That is what we are trying to figure out and we will be adding bugs to this tracking bug to optimize our infrastructure.

I don't like waiting - give me a CPU!
We have hundred jobs running per hour and we sometimes have jobs that have to wait before getting started. If we optimized the load we could make these jobs have to wait earlier. I will be adding bugs to this tracking bug to reduce our load on our pools and therefore reduce our waiting times.

Many many more projects...
We have a really large number of bugs unassigned and here are the queries for them in case any previous project did not call your attention:

Creative Commons License
This work by Zambrano Gasparnian, Armen is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.

No comments:

Post a Comment