<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Bad Nomenclature &#187; mozilla</title>
	<atom:link href="http://blog.paulbiggar.com/archive/tag/mozilla/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.paulbiggar.com</link>
	<description>Compilers, open source, and similar.</description>
	<lastBuildDate>Wed, 04 Jan 2012 07:02:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>TryChooser</title>
		<link>http://blog.paulbiggar.com/archive/trychooser/</link>
		<comments>http://blog.paulbiggar.com/archive/trychooser/#comments</comments>
		<pubDate>Mon, 11 Jul 2011 19:06:50 +0000</pubDate>
		<dc:creator>Paul Biggar</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[hg]]></category>
		<category><![CDATA[mercurial]]></category>
		<category><![CDATA[mozilla]]></category>
		<category><![CDATA[mq]]></category>
		<category><![CDATA[try]]></category>
		<category><![CDATA[trychooser]]></category>
		<category><![CDATA[tryesrver]]></category>

		<guid isPermaLink="false">http://blog.paulbiggar.com/?p=177</guid>
		<description><![CDATA[TryChooser is a simple extension that makes sending to TryServer simple. Here&#8217;s a transcript of sending some mq patches to Try. $ hg trychooser Run everything? [Ynh?] n Both optimized and debug? [Ynh?] n Just optimized? [Ynh?] y All platforms? &#8230; <a href="http://blog.paulbiggar.com/archive/trychooser/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="document">
<p><a class="reference" href="http://github.com/pbiggar/trychooser">TryChooser</a> is a simple extension that makes sending to <a class="reference" href="http://tbpl.mozilla.org/?tree=Try">TryServer</a> simple.
Here&#8217;s a transcript of sending some <a class="reference" href="http://mercurial.selenic.com/wiki/MqExtension">mq</a> patches to Try.</p>
<pre>
<font color=green>$</font> hg trychooser
<font color=blue>Run everything?</font>
[Ynh?] n
<font color=blue>Both optimized and debug?</font>
[Ynh?] n
<font color=blue>Just optimized?</font>
[Ynh?] y
<font color=blue>All platforms?</font>
[Ynh?] n
<font color=blue>Linux?</font>
[Ynh?] n
<font color=blue>linux64?</font>
[Ynh?] n
<font color=blue>macosx?</font>
[Ynh?] n
<font color=blue>macosx64?</font>
[Ynh?] n
<font color=blue>win32?</font>
[Ynh?] n
<font color=blue>android-r7?</font>
[Ynh?] y
<font color=blue>maemo5-gtk?</font>
[Ynh?] n
<font color=blue>maemo5-qt?</font>
[Ynh?] n
<font color=blue>All Unit tests?</font>
[Ynh?] y
<font color=blue>All talos tests?</font>
[Ynh?] n
<font color=blue>Any talos tests?</font>
[Ynh?] n
<font color=green>The following try message is going to be used:
try: -b o -p android-r7 -u all -t none
Creating the trychooser mq entry...
pushing to ssh://hg.mozilla.org/try</font>
<font color=silver>searching for changes
remote: adding changesets
remote: adding manifests
remote: adding file changes
remote: added 2 changesets with 1 changes to 1 files (+1 heads)
remote: Looks like you used try syntax, going ahead with the push.
remote: If you don't get what you expected,
        check http://people.mozilla.org/~lsblakk/trychooser/
        for help with building your trychooser request.
remote: Thanks for helping save resources, you're the best!
remote: Trying to insert into pushlog.
remote: Please do not interrupt...
remote: Inserted into the pushlog db successfully.</font>
<font color=green>popping trychooser
now at: fix_android</font>
</pre><p>Get it <a class="reference" href="http://github.com/pbiggar/trychooser">here</a>.</p>
<a href="http://github.com/pbiggar/trychooser"><img style="position: absolute; top: 0; left: 0; border: 0;" src="https://gs1.wac.edgecastcdn.net/80460E/assets/img/edc6dae7a1079163caf7f17c60495bbb6d027c93/687474703a2f2f73332e616d617a6f6e6177732e636f6d2f6769746875622f726962626f6e732f666f726b6d655f6c6566745f677265656e5f3030373230302e706e67" alt="Fork me on GitHub"></a></div>

]]></content:encoded>
			<wfw:commentRss>http://blog.paulbiggar.com/archive/trychooser/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Helping new contributors &#8211; Part 2 &#8211; Mentoring</title>
		<link>http://blog.paulbiggar.com/archive/helping-new-contributors-part-2-mentoring/</link>
		<comments>http://blog.paulbiggar.com/archive/helping-new-contributors-part-2-mentoring/#comments</comments>
		<pubDate>Fri, 06 May 2011 22:17:08 +0000</pubDate>
		<dc:creator>Paul Biggar</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[bugs]]></category>
		<category><![CDATA[bugzilla]]></category>
		<category><![CDATA[contributor engagement]]></category>
		<category><![CDATA[mentoring]]></category>
		<category><![CDATA[mozilla]]></category>

		<guid isPermaLink="false">http://blog.paulbiggar.com/?p=150</guid>
		<description><![CDATA[Getting into the Mozilla code base can be pretty hard. Even experienced developers may need help finding a good place to start. Up until now, we&#8217;ve been using the good first bug whiteboard annotation in bugzilla to tell contributors where &#8230; <a href="http://blog.paulbiggar.com/archive/helping-new-contributors-part-2-mentoring/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="document">
<p>Getting into the Mozilla code base can be pretty hard.
Even experienced developers may need help finding a good place to start.</p>
<p>Up until now, we&#8217;ve been using the <a class="reference external" href="https://bugzil.la/sw:[good%20first%20bug]">good first bug</a> whiteboard annotation in bugzilla to tell contributors where to start, and we&#8217;re trying to iterate on the model based on the experience of Mozilla developers.
After some discussion, we&#8217;ve started using a new whiteboard annotation, which we hope will come to replace the existing <em>good first bug</em> annotation:</p>
<blockquote>
[mentor=pbiggar&#64;mozilla.com]</blockquote>
<p>Add this to a bug&#8212;with your own bugzilla ID of course&#8212;to tell a newcomer that you will mentor them through this bug.
By having existing contributors take personal responsibility for new contributors, we hope to make it easier to shepherd them through the difficult early stages of contribution.</p>
<p>When marking a bug as mentored, you should also add a comment, telling newcomers where to start, where to look for docs, etc.
Avoid jargon if possible; newcomers are going to have trouble understanding things we take for granted.
Some community members have already started creating <a class="reference external" href="https://bugzil.la/sw:[mentor=&amp;resolution=---">mentored bugs</a>, which I hope demonstrate what we&#8217;re going for <a class="footnote-reference" href="#do-they" id="id1">[1]</a>.</p>
<p>When a contributor starts working on a bug you mentor, be as friendly and outgoing as possible.
Email them privately to thank them, and tell them to contact you with any problems they have or any jargon they may not understand.
Your aim should be to help them with anything that they wouldn&#8217;t know about Mozilla, which is quite a lot.</p>
<p>Find a reviewer for them, push their patches to tryserver if necessary, and ping their reviewer if required <a class="footnote-reference" href="#ping" id="id2">[2]</a>.
Get them onto IRC so they can get help when you&#8217;re not around, and point them at the right documentation.
If they produce a good patch, apply for level 1 access on their behalf, and vouch for them.
After review, push their patch, and comment to mention what a great job they&#8217;re doing.
If you can, suggest a slightly harder a bug for them to do next.</p>
<p>As well as adding new mentored bugs, it&#8217;s useful to triage old <a class="reference external" href="https://bugzil.la/sw:[good%20first%20bug]">good first bugs</a>.
If they&#8217;re still useful, convert them to mentored bugs.
If they&#8217;re out-of-date, close them, and optionally start a new bug with updated information.</p>
<div class="section" id="what-makes-a-good-mentored-bug">
<h1>What makes a good mentored bug?</h1>
<p>Mentored bugs are basically the same as good first bugs, but with a mentor.
That means we can use the same criteria as before:</p>
<ul>
<li><dl class="first docutils">
<dt>Easy:</dt>
<dd><p class="first last">The best possible first bug, from a procedural point of view, would be a typo fix <a class="footnote-reference" href="#feelings" id="id3">[3]</a>.
It would be trivial to fix, but would serve to teach you bugzilla, build firefox, meet other developers, format your patch correctly, ask for review, and so on.
These procedural issues are what makes contribution difficult, and a perfect first bug would just guide people through these steps.</p>
</dd>
</dl>
</li>
<li><dl class="first docutils">
<dt>Self-contained:</dt>
<dd><p class="first last">Bugs which depend on other bugs, or which span many modules, are probably not great first bugs.
The contributor will be unused to Mozilla&#8217;s practices, and having to split work across multiple trees, figure out super-review, etc, are not going to encourage them to stay.</p>
</dd>
</dl>
</li>
<li><dl class="first docutils">
<dt>Well-understood:</dt>
<dd><p class="first last">You should be able to guide the contributor down the right track, which means you should understand the bug yourself.
Similarly, the bug should have a good start and finish &#8211; it should be obvious when the bug is fixed.
Bugs which contain a reduced test case are perfect for this; intermittent oranges are not.
In general, you should know how you&#8217;d approach it, and you should add that as a comment: how to reproduce the problem, the file and function to fix, how you&#8217;ll recognize the required fix, etc.</p>
</dd>
</dl>
</li>
<li><dl class="first docutils">
<dt>Apolitical:</dt>
<dd><p class="first last">The last thing you want is for the contributor to pour hours into fixing a bug, only for it to be nixed by the reviewer or module owner.
You should be 100% certain that fixing the bug is desired, and that there won&#8217;t be any dissent at a later date.
We don&#8217;t want newcomers leaving because their time was wasted.</p>
</dd>
</dl>
</li>
</ul>
<p>Although we say &#8220;easy&#8221; above, we can also mentor bugs that would serve as <em>good second and third bugs</em>.
Second and third bugs can add a little more difficultly and discovery.
They should still be conceptually easy, but hold a small challenge for someone who doesn&#8217;t know the codebase.
They&#8217;ve jumped through the hoops, now reel them in with something slightly meaty and interesting <a class="footnote-reference" href="#jemalloc" id="id4">[4]</a>.</p>
</div>
<div class="section" id="what-kinds-of-bugs-are-useful-to-mentor">
<h1>What kinds of bugs are useful to mentor?</h1>
<p>In general, they should be bugs you&#8217;d like to see fixed, but ones that aren&#8217;t so important that you&#8217;ll do them yourself.
Good examples are:</p>
<ul>
<li><dl class="first docutils">
<dt>Small bugs you don&#8217;t have time for:</dt>
<dd><p class="first last">For example, the JS team wants to <a class="reference external" href="https://bugzilla.mozilla.org/show_bug.cgi?id=638219">integrate our two testing frameworks</a>, but we probably won&#8217;t do it ourselves.</p>
</dd>
</dl>
</li>
<li><dl class="first docutils">
<dt>Bugs you&#8217;ve started, but won&#8217;t finish:</dt>
<dd><p class="first last">I&#8217;ve started a few bugs that I ran out of time to finish, but I still want them to get done.
In <a class="reference external" href="https://bugzilla.mozilla.org/show_bug.cgi?id=651952">those</a> <a class="reference external" href="https://bugzilla.mozilla.org/show_bug.cgi?id=628332">cases</a>, I attached what I had done and marked them as mentored.
These bugs are particularly good since they are really close to being finished, and the trajectory a new contributor needs to take is unambiguous.</p>
</dd>
</dl>
</li>
<li><dl class="first docutils">
<dt>Broken windows:</dt>
<dd><p class="first last">Mozilla is an old project, and has accrued many <em>broken windows</em> &#8211; things which are an incredibly low priority to fix, but make the place look ugly and run-down.
These are ideal starting points, especially if they only involved deleting code.
Beware that this can lead to scope creep: a new contributor recently removed <a class="reference external" href="https://bugzilla.mozilla.org/show_bug.cgi?id=647389">WinCE support from SpiderMonkey</a>, which had to be split into 5 separate bugs requiring 5 separate reviewers.
This can scare new contributors off <a class="footnote-reference" href="#not-this-time" id="id5">[5]</a>.</p>
</dd>
</dl>
</li>
<li><dl class="first docutils">
<dt>Refactorings:</dt>
<dd><p class="first last">Refactorings are a very good way to learn a code-base, though they won&#8217;t always be good first bugs (perhaps second or third bugs).
It&#8217;s always great when a contributor can add something of beauty, instead of a hacky fix.</p>
</dd>
</dl>
</li>
<li><dl class="first docutils">
<dt>Local optimizations:</dt>
<dd><p class="first last">If you have a single function that could be optimized, that makes for a very self-contained bug.
The new contributor can write a micro-benchmark and optimize it, and really see the results of their work.</p>
</dd>
</dl>
</li>
</ul>
</div>
<div class="section" id="next-steps">
<h1>Next steps</h1>
<p>We&#8217;re currently directing newcomers to an <a class="reference external" href="https://developer.mozilla.org/En/Introduction">introductory page</a>, where we link to mentored bugs, and encourage newcomers to pick a bug they&#8217;d like to work on.
It seems that giving newcomers bugs directly is far more effective than leaving them to find one they like, so we&#8217;d like to move to that if possible.
Unfortunately, we don&#8217;t have enough mentored bugs, or a wide enough variety of them, to make this work just yet.</p>
<p>This is particularly true of non-C++ bugs.
We have lots of newcomers who don&#8217;t know C++, or who barely know it.
We currently have an <a class="reference external" href="https://developer.mozilla.org/En/Introduction_%28alternate%29">introductory page for people who don&#8217;t know C++</a>, but we&#8217;d like to do a lot better here.
If you work on a aspect of Mozilla that doesn&#8217;t use C++, whether it&#8217;s RelEng, a website, or even a small tool, we&#8217;d love feedback on how to help newcomers work with you.</p>
<p>Speaking of feedback, we want lots of it.
Mentored bugs are new to Mozilla, though they&#8217;ve been used in <a class="reference external" href="http://pythonmentors.com">other projects</a> before.
We&#8217;d love to hear your experiences with them, here and elsewhere, to see if we&#8217;re really improving things.
Our contact details are in the <a class="reference external" href="http://blog.paulbiggar.com/archive/helping-new-contributors-part-1-meta/">first post</a>, and we&#8217;ll keep the <a class="reference external" href="https://wiki.mozilla.org/Mentors">mentors page</a> updated as we go.</p>
<table class="docutils footnote" frame="void" id="do-they" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
<tr><td class="label"><a class="fn-backref" href="#id1">[1]</a></td><td>We&#8217;re in early stages here, so feedback welcome.</td></tr>
</tbody>
</table>
<table class="docutils footnote" frame="void" id="ping" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
<tr><td class="label"><a class="fn-backref" href="#id2">[2]</a></td><td>We don&#8217;t want new contributors to be frustrated by having to wait days or weeks for a review.
&#8220;John here is a new contributor, would you be able to prioritize this review?&#8221; works wonders; even if it doesn&#8217;t speed up the review, it makes the contributor feel special.
I&#8217;ll get into this more in a later installment.</td></tr>
</tbody>
</table>
<table class="docutils footnote" frame="void" id="feelings" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
<tr><td class="label"><a class="fn-backref" href="#id3">[3]</a></td><td>However, since it wouldn&#8217;t give the contributor a warm fuzzy feeling, probably best not to file these.</td></tr>
</tbody>
</table>
<table class="docutils footnote" frame="void" id="jemalloc" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
<tr><td class="label"><a class="fn-backref" href="#id4">[4]</a></td><td>For example, <a class="reference external" href="https://bugzilla.mozilla.org/show_bug.cgi?id=651952">here&#8217;s a bug</a> I wrote specifically for a new contributor.
It&#8217;s a challenging bug, but is self-contained and well-understood.</td></tr>
</tbody>
</table>
<table class="docutils footnote" frame="void" id="not-this-time" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
<tr><td class="label"><a class="fn-backref" href="#id5">[5]</a></td><td>Though it didn&#8217;t in this case, cause he is awesome. He actually then went on to delete WinCE from the whole damn tree!</td></tr>
</tbody>
</table>
</div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://blog.paulbiggar.com/archive/helping-new-contributors-part-2-mentoring/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Helping New Contributors &#8211; Part 1 &#8211; Meta</title>
		<link>http://blog.paulbiggar.com/archive/helping-new-contributors-part-1-meta/</link>
		<comments>http://blog.paulbiggar.com/archive/helping-new-contributors-part-1-meta/#comments</comments>
		<pubDate>Thu, 28 Apr 2011 22:42:07 +0000</pubDate>
		<dc:creator>Paul Biggar</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[contributor engagement]]></category>
		<category><![CDATA[mozilla]]></category>

		<guid isPermaLink="false">http://blog.paulbiggar.com/?p=136</guid>
		<description><![CDATA[There has been a lot of recent interest in helping new members of the community contribute to the Mozilla code base. A few of us met up during the All-hands, and have started doing &#8220;Coding Contributor Engagement&#8221;, in cahoots with &#8230; <a href="http://blog.paulbiggar.com/archive/helping-new-contributors-part-1-meta/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="document">
<p>There has been a lot of recent interest in helping new members of the community contribute to the Mozilla code base.
A few of us met up during the All-hands, and have started doing &#8220;Coding Contributor Engagement&#8221;, in cahoots with the existing <a class="reference external" href="https://wiki.mozilla.org/Mozilla.org/Contribute/">Contributor Engagement team</a>.</p>
<p>The direct goal is to substantially increase the number of contributors to the Mozilla code base.
In the short term, we&#8217;re looking at removing <a class="reference external" href="https://bugzilla.mozilla.org/show_bug.cgi?id=649501">bottlenecks</a> to bring in new contributors, ensuring that we aren&#8217;t <a class="reference external" href="https://bugzilla.mozilla.org/show_bug.cgi?id=648681">making life hard</a> for them, and avoiding losing them once they arrive.
For example, we&#8217;re trying to fix small nuisances, <a class="reference external" href="https://bugzilla.mozilla.org/show_bug.cgi?id=653515">write documentation</a> aimed at new contributors (and improve existing docs), and create a <a class="reference external" href="https://wiki.mozilla.org/Mentors">mentoring system</a> to help new contributors with their first steps.</p>
<p>An indirect goal is to also improve things for all contributors.
Removing bottlenecks to contribution, for example by improving processes and documentation, helps everybody.
By examining where we lose new contributors, we can learn how best to retain existing community members.
By improving communication for newcomers, we help improve communication throughout the community.
Finally, we want to ensure that information and resources available to employees of Mozilla Corp are available to all contributors.
These goals are shared by most of Mozilla, many people across the community already work on this, and we&#8217;ve already had great support in this area.</p>
<p>I&#8217;m putting out a series of posts over the next few days discussing specific short-term actions that everyone can help with.
First, here&#8217;s the meta-information around what we&#8217;re <a class="footnote-reference" href="#we" id="id1">[1]</a> doing:</p>
<ul class="simple">
<li>Join us to discuss Contributor Engagement on the <a class="reference external" href="https://www.mozilla.org/about/forums/#mozillians">Mozillians mailing list</a>.</li>
<li>Come to the <a class="reference external" href="irc://irc.mozilla.org#mozillians">#mozillians channel</a>.</li>
<li>Check out the <a class="reference external" href="https://wiki.mozilla.org/Mozilla.org/Contribute/Coding">coding contributor engagement homepage</a> and a <a class="reference external" href="https://wiki.mozilla.org/Mozilla.org/Contribute/Coding">contributor engagement homepage</a>.</li>
<li>Bugs are tracked in the <a class="reference external" href="https://bugzilla.mozilla.org/buglist.cgi?product=Mozilla%20Communities&amp;component=Contributor%20Engagement&amp;resolution=---&amp;list_id=82074">Mozilla Communities -&gt; Contributor Engagement</a>  component in bugzilla.
Bugs from other components that relate to contributor enagement are tracked in <a class="reference external" href="https://bugzilla.mozilla.org/show_bug.cgi?id=652719">bug 652719</a>.
Or you can see <a class="reference external" href="https://bugzilla.mozilla.org/buglist.cgi?cmdtype=runnamed&amp;namedcmd=All%20Contributor%20Engagement%20Bugs&amp;list_id=81191">all those bugs in one list</a>.
Volunteer to fix some!</li>
</ul>
<table class="docutils footnote" frame="void" id="we" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
<tr><td class="label"><a class="fn-backref" href="#id1">[1]</a></td><td>&#8220;we&#8221; in this context means anyone who will help, so &#8220;we&#8221; really intend this to mean &#8220;you&#8221;.</td></tr>
</tbody>
</table>
</div>

]]></content:encoded>
			<wfw:commentRss>http://blog.paulbiggar.com/archive/helping-new-contributors-part-1-meta/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Summary of Contributor Engagement threads on dev-planning</title>
		<link>http://blog.paulbiggar.com/archive/dev-planning-contributor-engagement-summary/</link>
		<comments>http://blog.paulbiggar.com/archive/dev-planning-contributor-engagement-summary/#comments</comments>
		<pubDate>Sun, 03 Apr 2011 05:17:50 +0000</pubDate>
		<dc:creator>Paul Biggar</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[contributor engagement]]></category>
		<category><![CDATA[mozilla]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/pbiggar/?p=21</guid>
		<description><![CDATA[There have been a few threads regarding Contributor Engagement on the dev-planning list, focussing specifically on contributions to the tree. In order to follow up on these ideas, and others that different folks have been brewing, we&#8217;re discussing this in &#8230; <a href="http://blog.paulbiggar.com/archive/dev-planning-contributor-engagement-summary/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="document">
<p>There have been a <a class="reference external" href="https://groups.google.com/group/mozilla.dev.planning/browse_thread/thread/ae3264714a8e36a7">few</a> <a class="reference external" href="https://groups.google.com/group/mozilla.dev.planning/browse_thread/thread/8b4d4c7b66c608aa/4578673208480cf7?lnk=gst&amp;q=external+contributors#4578673208480cf7">threads</a> regarding Contributor Engagement on the <a class="reference external" href="https://groups.google.com/group/mozilla.dev.planning">dev-planning list</a>, focussing specifically on contributions to the tree.
In order to follow up on these ideas, and others that different folks have been brewing, we&#8217;re discussing this in <a class="reference external" href="https://wiki.mozilla.org/Mozilla.org/Contribute/AllHandsCodingSession">a session</a> during the All-Hands next week.</p>
<div class="section" id="challenges-for-contributors">
<h1>Challenges for contributors</h1>
<ul class="simple">
<li>What does a new contributor have to go through to build FF:<ul>
<li>no readme</li>
<li><cite>&#8212;enable-application=X</cite><ul>
<li>no warning</li>
<li>needs default</li>
</ul>
</li>
<li>directory is called mozilla-2.0, not firefox4.0</li>
<li>cvs is mentioned in the docs!</li>
<li>build instructions prose is poor</li>
<li>not configure/make based</li>
<li><cite>ac_add_option</cite> / <cite>.mozconfig</cite> is confusing</li>
<li>patch submission is tortuous</li>
<li>even simple stuff has jargon</li>
</ul>
</li>
<li>Getting feedback:<ul>
<li>there isn&#8217;t a good wasy to ask &#8220;what do you think of this approach?&#8221;<ul>
<li><cite>f?</cite> only works on attachments</li>
<li>some people put the proposal as an attachement, then ask for feedback</li>
<li>there was a suggestion of a &#8216;request review&#8217; mailing list.</li>
</ul>
</li>
</ul>
</li>
<li>Tinderbox is scary:<ul>
<li>new contributors are scared by oranges, and we currently have a problem with random oranges<ul>
<li>there is automated oranging, sufficient?</li>
<li><a class="reference external" href="http://arbpl.visophyte.org">ArbPL</a> might be easier in this regard</li>
</ul>
</li>
</ul>
</li>
<li>Submitting bugs:<ul>
<li>finding a committer is tough<ul>
<li>we should have a script/query/dashboard following [commit-needed]</li>
<li>add a &#8220;job&#8221; like sherriffing, for the person whose job it is to land patches</li>
</ul>
</li>
<li>getting tryserver access takes a day<ul>
<li>arbitrary try server access<ul>
<li>solvable, but security concerns</li>
</ul>
</li>
</ul>
</li>
<li>we&#8217;d like to prioritize landing from new contributors and &#8220;people who aren&#8217;t paid to work on this thing&#8221;</li>
<li>currently work has to be &#8216;negotiated&#8217; into the tree<ul>
<li>new contributors should have &#8216;greased path&#8217; into the tree</li>
</ul>
</li>
</ul>
</li>
<li>So many tools to learn:<ul>
<li>tbpl</li>
<li>tryserver</li>
<li>qimportbz</li>
<li>bzexport</li>
<li>gdb-archer</li>
<li>lithium</li>
<li>irc</li>
<li>mercurial queues</li>
<li>bugzilla fastness</li>
<li>weird unique build system &#8211; autoconf213, mozconfig</li>
</ul>
</li>
<li>Time zones:<ul>
<li>hard to get an answer if you contribute outside 9-5, Monday-Friday PST</li>
</ul>
</li>
<li>Working independently:
Problems should be solvable for external contributors independenctly.
Each new person who is introduced can potentially scuttle what you&#8217;re doing.
If you email someone and wait a week for a response, it makes it less fun.
If they never respond you&#8217;ll probably stop contributing.
Related: tryserver access, reviews, approvals, commit-needed</li>
</ul>
</div>
<div class="section" id="experience-reports">
<h1>Experience reports</h1>
<ul class="simple">
<li>Long form:<ul>
<li><a class="reference external" href="https://groups.google.com/group/mozilla.dev.planning/msg/d0bbd32c1139af92">Steve Fink</a></li>
<li><a class="reference external" href="http://www.joshmatthews.net/blog/2010/03/getting-involve-with-mozilla/">Josh Matthews</a></li>
<li><a class="reference external" href="https://wiki.mozilla.org/JavaScript:New_to_SpiderMonkey">New to Spidermonkey</a></li>
<li><a class="reference external" href="https://groups.google.com/group/mozilla.dev.planning/msg/f49f0a96e6ab86dd">Cameron Kaiser</a></li>
<li><a class="reference external" href="https://wiki.mozilla.org/Firefox/Projects/TabCandy/Work">TabCandy</a></li>
<li><a class="reference external" href="https://groups.google.com/group/mozilla.dev.planning/msg/ea66ebfa2061d888">Joshua Cranmer</a></li>
</ul>
</li>
<li>briefly:<ul>
<li>seamonkey does a lot of hand-holding, and has been successful</li>
<li>l10n too</li>
<li><a class="reference external" href="https://live.gnome.org/GnomeLove">Gnome Love</a> project<ul>
<li>(gnome-women is also copyable)</li>
</ul>
</li>
<li>maybe get reports from professors, Seneca, etc<ul>
<li>relationships are more important than resources</li>
<li>you need to &#8220;protect&#8221; new contributors from &#8220;normal&#8221; interactions</li>
</ul>
</li>
</ul>
</li>
<li>Experiences summary:<ul>
<li>idiosyncratic build infrastructure</li>
<li>submission process (including bugzilla)</li>
<li>contributor agreement</li>
<li><cite>r?</cite> with no target are ignored</li>
<li>requesting reviews</li>
<li>learn irc, our channels and etiquette</li>
<li>blame logs</li>
<li>finding related bugs in bugzilla</li>
<li>[checkin-needed]</li>
<li>project branches</li>
<li>watching the tree + tinderbox</li>
<li>approvals process</li>
<li>blocking/wanted flags</li>
<li>forgetting the -u flag [<em>editor&#8217;s note: NEVER EVER FORGET THE -u FLAG!!!</em>]</li>
</ul>
</li>
</ul>
</div>
<div class="section" id="engagement">
<h1>Engagement</h1>
<ul class="simple">
<li>Contributor engagement team (ref David Boswell)<ul>
<li>high level, need coding-specific help</li>
<li>100 people contact per week to help<ul>
<li>mozilla.org/contribute -&gt; <a class="reference external" href="mailto:contribute&#64;mozilla.org">contribute&#64;mozilla.org</a> list [needs volunteers to answer the queries - contact <a class="reference external" href="mailto:david&#64;mozilla.org">david&#64;mozilla.org</a>]</li>
<li>contribute&#64; list and <a class="reference external" href="https://wiki.mozilla.org/Mozilla.org/Contribute/Canned_responses#Coding">canned responses</a></li>
<li>poor success ratio (10% is a good result)</li>
<li>getting started information</li>
<li>#mozillians channel</li>
<li>track what works and doesnt</li>
<li>point them to first bugs</li>
<li>contributor directory can help</li>
</ul>
</li>
</ul>
</li>
<li>Mentoring:<ul>
<li>we should have an outreach team</li>
<li>mentors would guiding patches through the process</li>
<li>danger: watch out for people not going the distance</li>
<li>people who learn processes will be good in the long run</li>
</ul>
</li>
<li>What do we do when potential contributors email existing contributors directly?<ul>
<li>mentor?</li>
<li>send canned response?</li>
<li>redirect to Constributor Engagement</li>
</ul>
</li>
<li>terminology is important:<ul>
<li>&#8220;internal&#8221; vs &#8220;external&#8221; &#8211; &#8220;internal&#8221; might have bad connotations</li>
<li>volunteers is bad</li>
<li>&#8220;greased&#8221;?</li>
</ul>
</li>
</ul>
</div>
<div class="section" id="tools-to-help-us">
<h1>Tools to help us</h1>
<ul class="simple">
<li>we need dashboards to find:<ul>
<li>unspecified <cite>r?</cite></li>
<li>forgotten [checkin-needed]</li>
<li>patches from new contributors</li>
<li>[good first bugs]</li>
</ul>
</li>
<li>identify new contributor (metrics):<ul>
<li>age of bugzilla account</li>
<li>number of patches submitted by this submitter</li>
<li>whether a submitter is employed by Mozilla Corp</li>
<li>whether a submitter is paid to work on Mozilla</li>
<li>age of submitter&#8217;s first-ever patch</li>
<li>timezone of submitter</li>
<li>native language of submitter</li>
<li>age of submitter</li>
<li>number of bugzilla comments written by submitter</li>
<li>whether a submitter has commit privs</li>
<li>fuzzy heuristic combinations of the above to bucket people into &#8220;new unpaid volunteer&#8221; or whatever</li>
<li>dmose/metrics have built <a class="reference external" href="https://wiki.mozilla.org/User:Dmose:Simple_Metrics">something</a> like this</li>
</ul>
</li>
<li><a class="reference external" href="https://bugzilla.mozilla.org/show_bug.cgi?id=616089">development appliance</a>?</li>
<li>documentation:<ul>
<li>live help?</li>
<li>feedback button (there is a talk page &#8211; is that the same thing&gt;)</li>
</ul>
</li>
<li>a stackoverflow instance like <a class="reference external" href="http://infomonkey.cdleary.com">infomonkey</a> for mozilla questions</li>
</ul>
</div>
<div class="section" id="documentation">
<h1>Documentation</h1>
<ul class="simple">
<li>Is this just a documentation problem? [<em>editor&#8217;s note: No</em>]</li>
<li>many docs are obselete<ul>
<li>the important ones are the ones which appear high on google</li>
<li>hard to update</li>
<li><a class="reference external" href="https://groups.google.com/group/mozilla.dev.planning/msg/b457bb77262391f6">updating guidelines</a></li>
</ul>
</li>
</ul>
</div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://blog.paulbiggar.com/archive/dev-planning-contributor-engagement-summary/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Great commit messages</title>
		<link>http://blog.paulbiggar.com/archive/great-commit-messages/</link>
		<comments>http://blog.paulbiggar.com/archive/great-commit-messages/#comments</comments>
		<pubDate>Fri, 11 Feb 2011 21:37:51 +0000</pubDate>
		<dc:creator>Paul Biggar</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[bugzilla]]></category>
		<category><![CDATA[commit messages]]></category>
		<category><![CDATA[gcc]]></category>
		<category><![CDATA[mercurial]]></category>
		<category><![CDATA[mozilla]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[phc]]></category>
		<category><![CDATA[version control]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/pbiggar/?p=9</guid>
		<description><![CDATA[roc and jimb write great commit messages. As well as fulfilling the basics requirements of listing the reviewer, bug number, etc, they add enough context that you don’t need to crawl through bugzilla to get a reasonable understanding of the &#8230; <a href="http://blog.paulbiggar.com/archive/great-commit-messages/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="document">
<p><a class="reference external" href="http://weblogs.mozillazine.org/roc/">roc</a> and <a class="reference external" href="https://itcouldbesomuchbetter.wordpress.com">jimb</a> write <a href="http://hg.mozilla.org/tracemonkey/rev/297b1312f534">great</a> <a href="http://hg.mozilla.org/tracemonkey/rev/18a1effafe19">commit</a> <a href="http://hg.mozilla.org/tracemonkey/rev/0eddf5b448bb">messages</a>. As well as fulfilling the basics requirements of listing the reviewer, bug number, etc, they add enough context that you don’t need to crawl through bugzilla to get a reasonable understanding of the problem.</p>
<p>Not that linking to bugzilla is bad &#8211; there is all manner of context in there that is really important to track. But there are also dead-ends, dups, noise, discussion, politics, reviews, and other things that don’t really help get a high-level overview of the problem.</p>
<p>I used to write better messages in projects I committed to in the past (mostly <a href="https://code.google.com/p/phc/source/detail?r=3356">phc</a>, following to a lesser extent the example I saw on the <a href="http://gcc.gnu.org/ml/gcc-patches">gcc-patches list</a>), but since it wasn’t the Mozilla way, I felt like I was freed from the burden. And it is a burden: writing concise but descriptive log messages takes time and effort. But considering the work that goes into a patch, the few minutes to edit the message seem worth it.</p>
<p>The <a href="http://gcc.gnu.org/ml/gcc-patches">gcc-patches</a> list is the best place I&#8217;ve seen this done; for an epic example, consider <a href="http://gcc.gnu.org/ml/gcc-patches/2004-09/msg02055.html">a 2004 post by Jakub Jelinek</a>. Bear in mind that long messages like this are for code reviewers, not for posterity, so it&#8217;s solving a slightly different problem. However, for people following along at home, they have the same benefit.</p>
<p>One problem with writing better messages is that they aren’t really obvious. In <cite>hg log</cite>, you need the <cite>-v</cite> flag to even make them appear, and the default view over at <a class="reference external" href="http://hg.mozilla.org/tracemonkey/">hg.mozilla.org</a> doesn’t show them. However, it’s pretty apparent in the <a class="reference external" href="https://hg.mozilla.org/tracemonkey/log/297b1312f534">log view</a> how superior these messages are.</p>
<p>Good revolutions start from the bottom, so I’m going to follow roc and jimb’s examples.</p>
<table id="mozilla-note" class="docutils footnote" frame="void" rules="none">
<colgroup>
<col class="label"></col>
<col></col>
</colgroup>
<tbody>
<tr>
<td class="label"><a class="fn-backref" href="#id1">[1]</a></td>
<td>For the non-Mozillians in the audience, Mozilla’s <a class="reference external" href="https://developer.mozilla.org/en/Developer_Guide/Committing_Rules_and_Responsibilities">coding standards</a> require that commit messages include the bug number, the reviewer name, and some other information such as a super-reviewer, if they exist.<br />
Since they don’t specify that you need to describe the bug in any detail, we end up with terse, one-line descriptions of the commits.<br />
However, our tools link to <a class="reference external" href="https://bugzilla.mozilla.org">bugzilla</a> number, so we do have easy access to the full history of the problem.</td>
</tr>
</tbody>
</table>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.paulbiggar.com/archive/great-commit-messages/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Database Caching 1/32 queries in 0.015 seconds using disk: basic
Object Caching 380/549 objects using disk: basic

Served from: blog.paulbiggar.com @ 2012-07-02 22:31:43 -->