If you are new to Mozilla’s IRC channels, as I am, then you might have noticed some new and unknown words. All companies and communities have internal lingo built up over many years. Mozilla is different from a typical company because regular internal communication is done in the open. This means we get to hear said lingo used among employees who all know the terms by heart.
It can be intimidating coming to any community with such history and culture as Mozilla. This feeling is perfectly normal and will dissipate in time. To help the process let us explore some of the common terms unique to Mozilla. Thus you’ll know the terms the next time another Mozillian uses one.
R+
Mozilla has a healthy culture of code reviews. Real, concrete, effective code reviews mean approval is not trivial. An r+ means completing a code review and approving the commit. Some aspects of the patch may need changing but for the most part the patch is clear for commit. The wiki has more details on r+’s and their exact meaning if you want to get technical: https://wiki.mozilla.org/Firefox/Code_Review#What_does_r.2B_mean.3F
R-
The opposite of an r+ is the r-. Given when a patch is rejected, an r- does not mean the change cannot be fixed. Since r- can come across discouraging I suspect reviewers only use the term when talking to long term contributors.
CLOBBER
In all situations I’ve seen where CLOBBER gets mentioned it has been out of frustration. To clobber a tree causes a massive slowdown and annoys other developers but I do not understand the exact cause. The wiki provides some details but I’m not familiar with the build system: https://wiki.mozilla.org/Clobbering_the_Tree
ping
To get someone’s attention on IRC it is typical to mention their name in a message. This triggers highlighting of your message and triggers a bing sound on some IRC clients. If someone is on IRC but not active it is common for mozzilians to “ping” them. Such a ping takes the form, “<username>: ping”. For example when pinging me you would say “danieru: ping”. You’ll notice that this typical usage excludes any details about why the person is getting pinged. Instead it has been suggested that a ping should also contain a sentence mentioning the ping’s purpose. So going back to our example you might want to say “danieru: ping, I need help compiling fxos. I’m getting linking errors with example()”.
pong
In response to a ping the person pinged will often say “pong”. This means you may see “ping, pong” if both users are online at the same time. For any native English speakers reading the humour comes from the usage of “ping” which is a network tool used to check connectivity as a way to check for the attention of other Mozillians. Then in response “pong” interprets the ping as the “ping” in ping-pong, a sport also known as table tennis. Sorry if this ruins the humour.
++
In programming languages inspired by C the operator ++ is the pre or post incrementor. It is used like thus: “var++”. This operator will make the incremented variable equal to the original value plus one. Thus on Mozilla IRC, ++ is another way of saying “+1”. In turn “+1” is an expression meaning “I like this” or “This is true”. So if someone says ++ it means they are agreeing with something said earlier.
And that completes my knowledge of Mozilla specific terminology. If you know any other terms please mention them or ping me.
land
Commit a patch to the inbound branch or repository after the patch has been reviewed with a R+. For Mozilla Central this would be mozilla-inbound or for Gaia the gaia/master branch.
Uplift
Merge or promote a patch from the inbound repository to the stable branch. For Mozilla Central this would be Mozilla Central or for Gaia this would be a tagged version branch such as 1.2.
Sec-Critical
When security bugs which cover normal browsing get found they are marked sec-critial. These bugs cannot be viewed by the general public until they have been fixed. Once a fixed version of our software has been shipped the sec-critical bug is made public. For example see Bug #785967
Chemspill
When a security bug is found it may force our hand and require an early general release of our software. This early release is known as a chemspill.
Clownshoes
Bugs vary in scope and size yet in general a bug will only have one developer writing code to fix it. This can create a situation where the bug is larger than the person. Or as the analogy goes: the person is wearing oversized clownshoes.
TODO: No other terms I know of. Can you suggest any?
land -> get a patch to end up in the tree (mozilla-inbound or gaia master), after a r+
uplift -> get a patch to land in a more stable tree (e.g. important fix for gaia v1.2 needs to be uplifted from master)
sec-critical -> Exploit that can be triggered by normal browsing. These bugs are not viewable by general public, only by a select group of Mozillians.
chemspill -> unplanned release because a security vuln is found
Thank you Jan! I’ve expanded the terms list with your definitions. Could you read over the definitions and see if I got anything wrong?