Difference between revisions of "Development:Contributor Overview"

From Camino Wiki
Jump to navigation Jump to search
(→‎Working on a bug: code structure)
(→‎Good First Bug vs. Triage Priority: let's see how many regressions we have open)
 
(8 intermediate revisions by 2 users not shown)
Line 4: Line 4:
  
 
''We should also see if there's anything useful on http://www.caminobrowser.org/development/programming/, either for this page itself or for the subpages we're going to refer to; this page is intended to replace http://www.caminobrowser.org/development/programming/''
 
''We should also see if there's anything useful on http://www.caminobrowser.org/development/programming/, either for this page itself or for the subpages we're going to refer to; this page is intended to replace http://www.caminobrowser.org/development/programming/''
 +
 +
{{draft}}
  
 
==Welcome==
 
==Welcome==
Line 21: Line 23:
  
 
==Choosing a bug==
 
==Choosing a bug==
All decisions concerning which bugfixes and features should be implemented in Camino are made in the [https://bugzilla.mozilla.org/ bugzilla] bug-tracking database and on [irc://irc.mozilla.org irc.mozilla.org], channel #camino.
+
All decisions concerning which bugfixes and features should be implemented in Camino are made in the [https://bugzilla.mozilla.org/ bugzilla] bug-tracking database, on [irc://irc.mozilla.org irc.mozilla.org], channel #camino (or during [[Status Meetings|weekly meetings]] in #camino-mtg), or during annual Camino [[Camino_Meet-up|face-to-face meetings]].
  
 
* ''Something that bothers you, something on good first bugs, something that needs to be fixed...''
 
* ''Something that bothers you, something on good first bugs, something that needs to be fixed...''
Line 27: Line 29:
 
===Good First Bug vs. Triage Priority===
 
===Good First Bug vs. Triage Priority===
  
The "Good First Bugs" list is a list of "bugs" (problems or feature requests) that are good entry points for new Camino developers, not necessarily a list of the bugs that need to be fixed most urgently.  A bug's priority is determined (roughly) by the severity field, the priority field (used generally by developers to prioritize lists of bugs assigned to them), the target milestone, and the blocking flags.  For instance, bugs with a target milestone of Camino 1.1 are generally most important at the moment, and ones with higher severity (or a camino1.1+ or camino1.1? flag) are the most important of those.
+
The "Good First Bugs" list is a list of "bugs" (problems or feature requests) that are good entry points for new Camino developers, not necessarily a list of the bugs that need to be fixed most urgently.  A bug's priority is determined (roughly) by the severity field, the priority field (used generally by developers to prioritize lists of bugs assigned to them), the target milestone, and the blocking flags.  For instance, bugs with a target milestone of Camino 1.6 are generally most important at the moment, and ones with higher severity (or a camino1.6+ or camino1.6? flag) are the most important of those.
  
* [https://bugzilla.mozilla.org/buglist.cgi?query_format=advanced&product=Camino&target_milestone=Camino1.1&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&cmdtype=doit&order=Reuse+same+sort+as+last+time Bugs Targeted at Camino 1.1]
+
* [https://bugzilla.mozilla.org/buglist.cgi?query_format=advanced&product=Camino&target_milestone=Camino1.6&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&cmdtype=doit&order=Reuse+same+sort+as+last+time Bugs Targeted at Camino 1.6]
 
* ''Somewhere we should have an "Unofficial" Roadmap for Developers with bugs or categories of bugs for a release, like the Firefox PRD but more humane, to supplement the "target milestone" queries--a more-official version of Sam's Roadmap or Smokey's 1.1 list''
 
* ''Somewhere we should have an "Unofficial" Roadmap for Developers with bugs or categories of bugs for a release, like the Firefox PRD but more humane, to supplement the "target milestone" queries--a more-official version of Sam's Roadmap or Smokey's 1.1 list''
 +
** For 1.6, this is [[Development:Planning:Camino 1.6]]
 
* [[Development:Home_Page#Tracking_Documents|Tracking Documents]]
 
* [[Development:Home_Page#Tracking_Documents|Tracking Documents]]
 
* [[Development:Roadmap]]
 
* [[Development:Roadmap]]
Line 36: Line 39:
 
** Some members of the team have compiled personal lists of bugs they think need to be fixed, or that people commonly complain about: [[User:Sardisson/Dogfood]], [[User:Sardisson/Camino_1.1]], [[User:Sardisson/Camino_1.2]]
 
** Some members of the team have compiled personal lists of bugs they think need to be fixed, or that people commonly complain about: [[User:Sardisson/Dogfood]], [[User:Sardisson/Camino_1.1]], [[User:Sardisson/Camino_1.2]]
 
** [https://bugzilla.mozilla.org/buglist.cgi?query_format=advanced&product=Camino&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&votes=5&order=bugs.votes,bugs.delta_ts%2Cbugs.bug_status%2Cbugs.priority%2Cmap_assigned_to.login_name%2Cbugs.bug_id Camino Vote List] (only bugs with 5 or more votes; what our Bugzilla-using users would like fixed)
 
** [https://bugzilla.mozilla.org/buglist.cgi?query_format=advanced&product=Camino&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&votes=5&order=bugs.votes,bugs.delta_ts%2Cbugs.bug_status%2Cbugs.priority%2Cmap_assigned_to.login_name%2Cbugs.bug_id Camino Vote List] (only bugs with 5 or more votes; what our Bugzilla-using users would like fixed)
**: ''Camino 1.1 saw the fixing of many of the top high vote-getters''
+
**: ''Camino 1.5 saw the fixing of many of the top high vote-getters''
 
**  [https://bugzilla.mozilla.org/buglist.cgi?query_format=advanced&product=Camino&status_whiteboard_type=allwordssubstr&status_whiteboard=%5Bgood+first+bug%5D&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED "Good First Bug" query]
 
**  [https://bugzilla.mozilla.org/buglist.cgi?query_format=advanced&product=Camino&status_whiteboard_type=allwordssubstr&status_whiteboard=%5Bgood+first+bug%5D&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED "Good First Bug" query]
 
* [[QA:Keywords & Status Whiteboard]] for more info on keywords and the whiteboard
 
* [[QA:Keywords & Status Whiteboard]] for more info on keywords and the whiteboard
 
** [https://bugzilla.mozilla.org/buglist.cgi?query_format=advanced&product=Camino&keywords_type=allwords&keywords=helpwanted&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&order=Reuse+same+sort+as+last+time helpwanted] query
 
** [https://bugzilla.mozilla.org/buglist.cgi?query_format=advanced&product=Camino&keywords_type=allwords&keywords=helpwanted&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&order=Reuse+same+sort+as+last+time helpwanted] query
 +
** [https://bugzilla.mozilla.org/buglist.cgi?query_format=advanced&product=Camino&keywords_type=allwords&keywords=regression&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&chfieldto=Now regression] query
  
 
===Working on a bug===
 
===Working on a bug===
 
* When to take a bug, and how to do it (some of this is in the existing cbo dev pages)
 
* When to take a bug, and how to do it (some of this is in the existing cbo dev pages)
* Bugs with status '''NEW''' whose assignee is ''nobody@mozilla.org'', ''mikepinkerton@mac.com'', and  ''sfraser_bugs@smfr.org'' are fair game  
+
* Bugs with status '''NEW''' whose assignees are either ''nobody@mozilla.org'' and  ''sfraser_bugs@smfr.org'' are fair game  
 
* Ask first before taking a bug with status '''NEW''' with any other assignee, or before taking a bug with status '''ASSI'''.
 
* Ask first before taking a bug with status '''NEW''' with any other assignee, or before taking a bug with status '''ASSI'''.
  
Line 51: Line 55:
 
* Camino code structure
 
* Camino code structure
 
*: [10:47pm] froodian: if you just want to get a feel for the code, the meat of Camino is in:<br>[10:47pm] froodian: mozilla/camino/src/browser/BrowserWindowController.mm<br>[10:47pm] ardissone|away: aka BWC <br>[10:47pm] froodian: and mozilla/camino/src/application/MainController.mm<br>
 
*: [10:47pm] froodian: if you just want to get a feel for the code, the meat of Camino is in:<br>[10:47pm] froodian: mozilla/camino/src/browser/BrowserWindowController.mm<br>[10:47pm] ardissone|away: aka BWC <br>[10:47pm] froodian: and mozilla/camino/src/application/MainController.mm<br>
 +
* The relationship between the various content views is described in ASCII art in http://mxr.mozilla.org/mozilla/source/camino/src/browser/BrowserContentViews.mm
 +
** Unfortunately, tabs themselves need a similar mockup
 
*etc
 
*etc
  
Line 56: Line 62:
 
Text, text, text
 
Text, text, text
  
*[[Development:Reviewing]] (prob needs a new page name)
+
*[[Development:Coding]]
 
* Also some of the Tools bits on [[Development:Home Page]] (needs either own page or to move here)
 
* Also some of the Tools bits on [[Development:Home Page]] (needs either own page or to move here)
  
Line 62: Line 68:
 
Text, text, text
 
Text, text, text
  
*[[Development:Reviewing]] (other parts of the page, or split the page in 2)
+
*[[Development:Reviewing]]
  
 
==Links and Recommended Reading==
 
==Links and Recommended Reading==
Line 77: Line 83:
  
 
===Requirements===
 
===Requirements===
        <ul>
+
*[https://bugzilla.mozilla.org/createaccount.cgi Register at Bugzilla]
          <li><a href="https://bugzilla.mozilla.org/createaccount.cgi">Register at Bugzilla</a></li>
+
*[https://bugzilla.mozilla.org/enter_bug.cgi?format=guided&amp;product=Camino Report a Camino bug]
          <li><a href="https://bugzilla.mozilla.org/enter_bug.cgi?format=guided&amp;product=Camino">Report a Camino bug</a></li>
+
*[https://bugzilla.mozilla.org/enter_bug.cgi?format=guided&amp;product=Core Report a Mozilla bug]
          <li><a href="https://bugzilla.mozilla.org/enter_bug.cgi?format=guided&amp;product=Core">Report a Mozilla bug</a></li>
+
*[http://www.mozilla.org/quality/bug-writing-guidelines.html Bug writing guidelines]
          <li><a href="http://www.mozilla.org/quality/bug-writing-guidelines.html">Bug writing guidelines</a></li>
+
*[https://bugzilla.mozilla.org/query.cgi Search for bugs]
          <li><a href="https://bugzilla.mozilla.org/query.cgi">Search for bugs</a></li>
+
*[https://bugzilla.mozilla.org/buglist.cgi?product=Camino&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;changedin=14&amp;chfieldto=Now Recent active bugs]
          <li><a href="https://bugzilla.mozilla.org/buglist.cgi?product=Camino&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;changedin=14&amp;chfieldto=Now">Recent active bugs</a></li>
+
*[https://bugzilla.mozilla.org/buglist.cgi?product=Camino&amp;bug_status=UNCONFIRMED Unconfirmed bugs]
          <li><a href="https://bugzilla.mozilla.org/buglist.cgi?product=Camino&amp;bug_status=UNCONFIRMED">Unconfirmed bugs</a></li>
+
*[http://www.mozilla.org/hacking/ Mozilla hacking documents]
          <li><a href="http://www.mozilla.org/hacking/">Mozilla hacking documents</a></li>
+
*[http://bonsai.mozilla.org/cvsquery.cgi?treeid=default&amp;module=Camino&amp;branch=&amp;branchtype=match&amp;dir=%2Fmozilla%2Fcamino&amp;file=&amp;filetype=match&amp;who=&amp;whotype=match&amp;hours=2&amp;date=week&amp;mindate=&amp;maxdate=&amp;cvsroot=%2Fcvsroot Last week's Camino check-ins]
          <li><a href="http://bonsai.mozilla.org/cvsquery.cgi?treeid=default&amp;module=Camino&amp;branch=&amp;branchtype=match&amp;dir=%2Fmozilla%2Fcamino&amp;file=&amp;filetype=match&amp;who=&amp;whotype=match&amp;hours=2&amp;date=week&amp;mindate=&amp;maxdate=&amp;cvsroot=%2Fcvsroot">Last week's Camino check-ins</a></li>
+
*[http://bonsaibugs.org/pyblosxom.cgi/camino Latest Mozilla tree checkins]
          <li><a href="http://bonsaibugs.org/pyblosxom.cgi/camino">Latest Mozilla tree checkins</a></li>
+
*[http://fink.sourceforge.net/index.php Fink Project]
          <li><a href="http://fink.sourceforge.net/index.php">Fink Project</a></li>
+
*[http://developer.apple.com/cocoa/ Apple Cocoa]
          <li><a href="http://developer.apple.com/cocoa/">Apple Cocoa</a></li>
+
 
        </ul>
+
<!-- END Quick Links -->
        <!-- END Quick Links -->
+
<!-- BEGIN Books -->
  
        <!-- BEGIN Books -->
 
 
===Recommended Reading===
 
===Recommended Reading===
 
+
*[http://www.amazon.com/exec/obidos/ASIN/0596004702/ Learn Unix for Mac OS X]
        <ul>
+
*[http://www.amazon.com/exec/obidos/tg/detail/-/0321213149/qid=1111520306/sr=1-2/ref=sr_1_2/104-8082258-4999151?v=glance&amp;s=books Cocoa Programming for Mac OS X]
          <li><a href="http://www.amazon.com/exec/obidos/ASIN/0596004702/">Learn Unix for Mac OS X</a></li>
 
          <li><a href="http://www.amazon.com/exec/obidos/tg/detail/-/0321213149/qid=1111520306/sr=1-2/ref=sr_1_2/104-8082258-4999151?v=glance&amp;s=books">Cocoa Programming for Mac OS X</a></li>
 
 
 
        </ul>
 

Latest revision as of 15:08, 7 December 2008

This page will be one of the main pages of the dev-wiki; it will walk a new contributor through the process in an overview fashion, pointing to the detailed information on each part in the separate docs, e.g. building/setting up your dev environment, choosing a bug, coding, getting reviews.

Things in the lists below the text are the pages we should link to

We should also see if there's anything useful on http://www.caminobrowser.org/development/programming/, either for this page itself or for the subpages we're going to refer to; this page is intended to replace http://www.caminobrowser.org/development/programming/

DRAFT
This page is not complete.

Welcome

Welcome to Camino. Interested in becoming a contributor? We're glad to have you on board. This page documents some basic information on how to make the leap from Camino fan to Camino dev, from getting Camino built, to picking out bugs to fix, to getting patches written and checked in. Even if you've contributed to Mozilla-based projects before, you may find this information useful, as much of it is Camino-specific.

Setting up your development environment

Like most complex pieces of software, the Mozilla project requires a flexible build system, which is not always straightforward. Unlike many open-source projects, ./configure; make does not suffice. Similarly, Camino, which embeds the cross-platform Gecko engine in a Cocoa application, depends on a somewhat hybrid build system; in other words, unlike other Cocoa apps, simply opening Xcode and clicking build won't produce a complete Camino application.

While this may seem daunting at first, the system is quite logical and there's very little effort involved in making it work. Gecko is built entirely using UNIX-style makefiles, and the Camino application code can be built either via makefiles or with Xcode once Gecko has been built (for the curious, this provides an overview of the Mozilla build system from a technical perspective).

Setting up your development environment entails installing the latest Xcode and appropriate SDKs, installing the three third-party dependencies, setting up your build options, and pulling cvs and building. The following documents will guide you through these steps.

Choosing a bug

All decisions concerning which bugfixes and features should be implemented in Camino are made in the bugzilla bug-tracking database, on irc.mozilla.org, channel #camino (or during weekly meetings in #camino-mtg), or during annual Camino face-to-face meetings.

  • Something that bothers you, something on good first bugs, something that needs to be fixed...

Good First Bug vs. Triage Priority

The "Good First Bugs" list is a list of "bugs" (problems or feature requests) that are good entry points for new Camino developers, not necessarily a list of the bugs that need to be fixed most urgently. A bug's priority is determined (roughly) by the severity field, the priority field (used generally by developers to prioritize lists of bugs assigned to them), the target milestone, and the blocking flags. For instance, bugs with a target milestone of Camino 1.6 are generally most important at the moment, and ones with higher severity (or a camino1.6+ or camino1.6? flag) are the most important of those.

Working on a bug

  • When to take a bug, and how to do it (some of this is in the existing cbo dev pages)
  • Bugs with status NEW whose assignees are either nobody@mozilla.org and sfraser_bugs@smfr.org are fair game
  • Ask first before taking a bug with status NEW with any other assignee, or before taking a bug with status ASSI.

Coding a fix

Text, text, text

Getting Code Review and Checkin

Text, text, text

Links and Recommended Reading

  • Stuff from the sidebars in cbo/development (below)
  • Anything else?

Sections

  1. <a href="/development/" accesskey="I">Contributor Introduction</a>
  2. <a href="/development/programming/" accesskey="P">Programming</a>
  3. <a href="/development/build/" id="current" accesskey="B">Build Instructions</a>
  4. <a href="/development/roadmap/" accesskey="R">Roadmap</a>
  5. <a href="/development/structure/" accesskey="T">Team Structure</a>

Requirements


Recommended Reading