Open Badges for contributions to specific Firefox releases

Published

Although I'm primarily interested in Firefox development, Mozilla is more than just Firefox and Firefox OS. There's a crazy amount of stuff happening! One interesting project is Open Badges. I'm certain this is a right idea/right time moment, given the meteoric rise of sites like Khan Academy, edX, and Coursera (not forgetting Mozilla's very own Webmaker project), all offering the opportunity for learners to acquire new skills. Indeed, I participated in Udacity's first offering of CS101, to observe the mechanics of online learning. (Fortunately I obtained highest distinction - anything else may have triggered a mini-existential crisis!). In fact, I went on to take CS212 Design of Computer Programs (because Peter Norvig!) and CS262 Programming Languages (featuring several Mozillians). Course awards take the form of a downloadable PDF certificate - useful in the offline world for emails and CVs perhaps, but what about online? The ability to showcase your skills online via evidence-based badges is a powerful one.

Separately there is an ongoing focus within Mozilla to grow the Mozilla community and increase the number of contributors to all areas of the project. As a volunteer contributor, this is close to my heart. It may be one of the most important efforts underway within Mozilla. The coding contribute group are wrestling with how to attract, retain and reward coders to the various Mozilla software products. One area of focus is tracking contributors as they reach important milestones in their Mozilla career, and issuing rewards for certain milestones. Open badges have been raised in that context, as a potential reward for certain milestones.

Badges for releases

Aside from individual accomplishments, we hit an important milestone every 6 weeks: a new version of Firefox is released to the world, containing hundreds of patches submitted by contributors in the previous 18 weeks. When your code reaches millions of Firefox users...well, that's an achievement. That is surely something worth celebrating. Why not issue a badge to anyone who contributed new code to a particular release? By waiting until the release is out the door, we can capture all relevant contributions, rather than trying to measure a moving target like Aurora and Beta. Such a badge could have real value, particularly if backed by evidence - currently if a third-party wants proof that someone contributed, the unattractive options available to them are grepping "hg log" or learning to query Bugzilla. A per-release badge might even be a subtle tool for contributor retention - contributors might aim to earn a badge for every release. Gotta catch 'em all!

Assessing whether someone has earned a badge for a particular release should be trivial. It's simply a Bugzilla query - though we need to make sure it's the right query. This made me curious about the badge issuing process; I was pleased to find it fairly straightforward. In fact, I was quickly able to put together a simple proof of concept, a simple site that will issue a badge to anyone who contributed new code to Firefox 17, with the caveat that the earner will be mightly disappointed when faced with my terrible badge-drawing skills!

Proof of concept

To receive a badge for Firefox 17 contributions, visit graememcc.co.uk/badger and enter your bugmail.

Screenshot of the bugmail entry form
Enter the email address used on bugzilla.mozilla.org

The site then queries Bugzilla, querying if you landed code within the relevant timeframe. The specific criteria are:

  • Assignee == supplied bugmail
  • Resolution == FIXED
  • One of:
    • Target Milestone == Firefox 17
    • Target Milestone == mozilla17
    • status-firefox17 == fixed

If this search finds qualifying bugs, you will be sent to the badge page, complete with awful badge artwork (patches welcome!):

An example badge
A badge is issued - if you earned it! (Note, the badge issued now is actually for Firefox 17 contributions)

The button below the badge allows you to add it to your Open Badge backpack, by signing in to their backpack via Persona, and creating a backpack if necessary. The Open Badges Issuer API takes care of these steps. If you view the badge in your backpack, you can see the associated metadata:

Screenshot of the badge viewed on beta.openbadges.org
Viewing the badge on beta.openbadges.org. Note the evidence field.

An Open Badge assertion contains various pieces of metadata associated with the badge. The most interesting field, the one which gives badges real practical value, is "evidence". This allows the badge issuer to attach proof that the badge earner has acquired the knowledge or participated in a way that merits a particular badge. Given access to this badge is judged on Bugzilla data, it makes sense to present this data as the evidence. The assertion for your badge is a URL for a Bugzilla query to list all your code contributions to Firefox 17.

Again, note this is just a proof of concept; the badge will expire 28 days after it is issued.

Users that didn't earn a badge, are directed to a page suggesting they visit whatcanidoformozilla.org to get started!

Feedback

I hope you'll give Badger a quick spin - and I hope you earned a badge! Remember, this isn't an official Mozilla badge - such a badge would be far, far prettier for starters - however, the evidence in your badge backpack will speak for itself. I'm particularly interested to here from anyone who did contribute code to Firefox 17 yet doesn't receive a badge. The search criteria above should be sufficient, however I definitely want to know if they need refining. I would love to hear people's opinions as to whether this is something worth exploring further.

The code is on github: https://github.com/graememcc/badger