Fedora Open Badges
The idea is that as you do things as a Fedora Contributor and (eventually) as a Fedora User, we'll automatically issue you badges saying "So and so filed their first bug in Bugzilla" or "So and so closed 10 bugs in one week!".
If you think you want to know more about what we're trying to do here, you should probably jump on the mailing list and add yourself to the above list.
Some unanswered questions
- What does the badge submission process look like? We have a brainstorm-y list started below... maybe a trac instance where people can submit tickets with their ideas and then community members with different skillsets can glom on and contribute the different necessary pieces (code.. image.. etc.)
- Who ultimately decides what badges we do and do not start handing out? threebean?
Please add to the section below as you see fit; we're still in brainstorming mode.
+ Involvement Created a FAS account + First Submit your first package review + Reviewer Complete your first package review of another individual + Push'd Push your first update using bodhi + If you build it... Complete your first successfull build with koji + SCM Push to the Fedora Package Repository + Proven Provenpackager group + Sponsor Packager sponsor group + Top packager If you have more than X (20? 30?) packages approved + Reviewer If you did more than X (10?) reviews + Bottom-poster (doesn't top-post on email lists). + Not a jerk (awarded by steering committee for handling situations well) + Secretary General (awarded when zodbot notes you as a chair in an IRC meeting) + Generalissimo Member of the Fedora Board, FPC or FESCo + Commander in Chief Fedora Project Leader + Bug tracker if you participated in more than X (20? 30?) bugs that have been closed RAWHIDE, CURRENTRELEASE, or NEXTRELEASE + Alpha tester if you reported X (1? 5? 10?) bugs against an alpha release + Beta tester if you reported X (1? 5? 10?) bugs against a beta release + Living on the edge Reported a bug against a Rawhide critpath package + Communicator Submitted a translation to a Fedora package + Polyglot Submitted two or more languages to a single Fedora package
- Add a "Met User X" badge system. Use case: You're at a conference running a booth, everyone who comes up can scan your QR code and be awarded the "I met So and So in person" badge. This should be automatically available to anyone with a FAS account.
- Add an event badge system so that users can create badges for a particular event. "I went to FUDCon 2013"
- "I verified and signed $foos gpg key" ?
Really Making Badges
Making a (phase one) badge requires the following:
- An image (with certain properties, TBD).
- A name
- A description
- An http link to any old page describing criteria for the badge.
- A plugin for our infrastructure daemon that know when and when not to award badges. (we need some examples of how to write this)
On second thought
Should we define a domain-specific language for making badges that obviates the need for coding a badge-specific plugin? We would require:
- Metadata (as before)
- A structured "criteria" file
The criteria file could be YAML. It could define the metadata and something like this https://gist.github.com/ralphbean/5443891#file-bodhi-update-simple-yaml
With a standardized format for badge definitions, we could build a web form so end users can submit badge ideas. That webform would then plop out a yaml file that it emails to firstname.lastname@example.org for consideration by.. someone.
Infrastructure (the plan)
These will get exported to Mozilla's Open Badges Infrastructure (OBI). See their frontpage for a general introduction and the README for a more technical introduction. This is good -- it means we don't lock in users' badges just to Fedora where their friends' friends will never see them.
Phase One badge awarding will be driven by the fedmsg bus. For instance, when a user comments on a bodhi update, bodhi emits a fedmsg message. A daemon sitting in our infrastructure catches that message, checks a database to see if that user has ever comment on an update before. If not, then a badge awarded to them for commenting on their first update. Badge awarding means creating an entry in a second database that User X has Badge Y.
Mozilla's OBI requires that the user authenticate with them over Persona. We do not yet have a way to push badges automatically from our DB to the OBI. A stand-in workaround is to host a webapp that request Persona authn from the Fedora user and then exports our badges to OBI over their json API. This (while not deployed in our infrastructure) actually works.. even if its a clumsy extra step.
Phase Two badge awarding will be driven by user activity on their Fedora machine. When they run yum update for the first time, or open the gnome-tweak-tool for the first time, a daemon on their machine will make submissions to our infrastructure.. awarding them badges. Phase Two is not yet well thought out.
- Spruce up the Tahrir app.
- Deploy the Tahrir app.
- Begin awarding badges via the fedmsg bus.
- Create a process for contributors to submit and vet new badge ideas and details.
- Write and make available a system for awarding badges from the desktop