A High Score List You Don’t Want to Top

tryHighScoresForBlog

Firefox is a large and complicated software project. As such, it has a large and complicated build system and a large and complicated suite of tests. These builds and tests are run each time code is pushed to the mozilla-central repository to ensure that nothing obviously wrong makes it into the tree.

This is important. Nothing slows development to a crawl or causes volunteer contributors to leave in droves quite like a codebase that is too broken to develop in.

But wouldn’t it be better to run these builds and tests before the code makes it to mozilla-central and has potentially-disastrous consequences?

That’s where Try come into play.

Try will run any or all of the builds and tests that code getting into mozilla-central would go through, without having to wait until it is pushed to mozilla-central to do it. All you need to access Try is commit level 1.

Sounds great! Why don’t we run every code change through the whole battery of builds and tests to be sure nothing gets missed?

Well, if you’ve ever built Firefox (it’s really easy) you’ll have noticed that it takes some time. Not a lot of time, but some. During that time, your computer is going full tilt trying to get it all done.

Multiply this by 39 build configurations, and you start to see where I’m heading with this.

Running the builds takes a lot of computers a lot of time. Running the tests on top of it only increases the resource requirement.

And this brings me back to the High Scores. Give a bunch of nerds (Mozillians) something countable and we can turn it into points. Give them points and identifiers, and you get a High Scores List.

The more you use Try, the more computer hours you use. The more computer hours you use, the higher your email address rises on the list. Get within sight of the top, and you might just get an email from a Release Engineer asking you why you think you need to build every platform for the documentation typo you fixed.

Faced with the staggering variety of different build platforms and test suites, how do you learn which ones you need to run and which ones you don’t?

Mozillians are friendly, so you ask. And ask. And keep asking until you gain confidence. Then you make a mistake and start asking again.

And every time you ask, you get an answer. Or at least that’s been my experience of working with Mozillians.

:chutten

Advertisements