Difference between revisions of "Development:Home Page"

From Camino Wiki
Jump to navigation Jump to search
(→‎Building: please don't use these instructions)
(→‎Bonsai: flesh out bonsai, and add it's baling wire replacements)
Line 83: Line 83:
 
'''N.B.''' Non-seamonkey roots are only updated daily and might be out-of-date if there were lots of checkins since the last update.
 
'''N.B.''' Non-seamonkey roots are only updated daily and might be out-of-date if there were lots of checkins since the last update.
  
===Bonsai===
+
===pushloghtml and Bonsai===
* [http://www.mozilla.org/bonsai.html Bonsai]/CVS blame/[http://www.mozilla.org/hacking/bonsai.html “the hook”] [http://www.mozilla.org/events/lugod/4c_bonsai.html]
+
Before Mercurial, Mozilla had sophisticated, interconnected tree-management tools known as http://www.mozilla.org/bonsai.html Bonsai].
** http://bonsai.mozilla.org/cvsquery.cgi?treeid=default&module=Camino&sortby=Date&hours=2&date=day (trunk checkins to most code that Camino pulls)
+
 
 +
Bonsai offered a way to [http://www-archive.mozilla.org/events/lugod/4c_bonsai.html query for checkins (by file, author, or time), show the code changes in a checkin, show what checkins touched a file, and figure out who or what was responsible for a given line of code].  Bonsai also integrated with Tinderbox to show what checkins were present in a given build and integrated with MXR to allow MXR to show blame and historical versions of source code files.  An example Bonsai query is http://bonsai.mozilla.org/cvsquery.cgi?treeid=default&module=Camino&sortby=Date&hours=2&date=day (cvs trunk checkins to most, but not all, code that Camino pulls).
 +
 
 +
CVS log (checkins that touched a file), CVS blame (who or what was responsible for a given line of code), and CVS graph (a visual representation of CVS log, across all CVS branches where a file existed) were generally accessed via MXR.  For example, see the links in the box on the inside upper right of [http://mxr.mozilla.org/mozilla/source/camino/src/application/main.m main.m]’s MXR page.
 +
 
 +
CVS query was usually accessed via checkin and guilty links on Tinderbox, or via the query page, but it could also be accessed via MXR, as illustrated by the links in the box on the inside upper right of [http://mxr.mozilla.org/mozilla/source/camino/src/application/main.m main.m]’s MXR page.
 +
 
 +
Bonsai’s replacement is a series of tools from multiple systems, held together with baling wire.
 +
 
 +
* To see which checkins occurred between a given time, use [http://hg.mozilla.org/camino/pushloghtml pushloghtml] (and the corresponding pushloghtml for the appropriate Gecko repository).  If you’re regression-hunting and have the changesets of two builds, pushloghtml has a hidden changeset mode you can access by using URLs like http://hg.mozilla.org/camino/pushloghtml?fromchange=tip&tochange=tip.  pushloghtml is a Mozilla-specific Hg customization.
 +
 
 +
* To see which checkins touched a particular file (log), use hgweb’s “revisions” link (or “HG Log” from MXR): http://hg.mozilla.org/camino/log/tip/src/application/main.m
 +
 
 +
* To see which checkin was responsible for a particular line of code (blame), use hgweb’s “annotate” link (or “HG Blame” from MXR): http://hg.mozilla.org/camino/annotate/tip/src/application/main.m
 +
*: Note that if the last change on a particular line is not relevant (e.g., whitespace), you can go back to previous revision of the file (repository) and see the most recent change before that.
  
 
===Tinderbox===
 
===Tinderbox===

Revision as of 16:40, 22 May 2010

Contains development docs relating to bugs, triage, patching, etc.

Project Structure

Development:Project Structure describes the structure of the Camino Project and outlines the various contributors responsible for each area.

Development:Roadmap provides a broad overview of current and future releases of Camino.

Development:Localization Policies describes the policies that apply to Camino localizers.

Developer Interviews

In the summer of 2006, Ludovic Hirlimann began conducting a series of interviews with the many people working on Camino who were less well-known than the project leads. With his permission, those interviews are republished here; future interviews conducted by others will be added as they become available.

Becoming a Camino Developer

Development:Contributor Overview is an (in-development) page that provides an overview of the actual development process for new contributors, pointing to the specifics in other documents. (It should replace this page in some respects.)

Building

Development:Building:Mozilla 1.9.2 Branch is the current revision of the documentation on building Camino. This documentation covers building with Gecko 1.9.2 and the Mercurial version-control system.

Development:Building:Mac OS X 10.6 contains up-to-date supplemental information about building Camino 2.1 with Gecko 1.9.2 on Mac OS X 10.6.

Development:Building is the documentation for building Camino from CVS.

Although official nightly builds of Camino 2.1 development work are still produced from CVS, most actual development is done using the Mercurial-based Mozilla 1.9.2 Branch and the corresponding Camino Hg repository.

Development:Building:Build Errors is an old collection of “common” build errors and solutions.

Information for Third-Party Developers

Development:Camino AppleScript Guide contains information to help authors of AppleScripts and toolbar script items for Camino.

Development:Third-Party Preference Panes contains information to help creators of third-party preference panes for Camino.

Development:Third-Party Tab Themes contains information to help creators of third-party tab themes for Camino.

Development:Providing Software Update for Third-Party Camino Builds contains information to help third-party Camino builders, or Camino developers running long-lived experimental build sequences, provide software updates for their builds.

Coding and Reviewing

Development:Coding contains information about code style and patch procedures, along with tips for adding Gecko components to the project and other helpful hints for new developers.

Development:Reviewing gives an overview of how reviewing works in the Camino Project, as well as information about how a patch is committed and helpful hints for new committers.

Working With Bugs

Development:Good Bugs and Projects is our start of a "good first bugs" list, as well as some summer-sized Camino and Mac Gecko projects that need love.

Development:Editing Nibs gives information on how to properly edit nibs and attach them to bugs for review. It also gives basic Camino-specific style guidelines for our nibs.

Development:Preparing Graphics provides instructions on how to prepare TIFF files for inclusion in Camino.

Development:Gotchas is a list of assorted things to do (or not to do) when performing certain types of development activities. These items are not lengthy or detailed enough to merit their own pages.

Development:Testing arbitrary scenarios with Mochitest provides information on how to use Mochitest’s support for arbitrary servers operating off of the local filesystem to behavior-test arbitrary scenarios.

Development:Using Git for Camino development provides information on how to integrate Git into the Camino development process (for CVS-based branches).

QA:Keywords & Status Whiteboard explains some of the commonly-used keywords and status whiteboard entries.

See other Quality Assurance pages for related articles which are more targeted towards end-user support and bug triage than towards developers looking to learn about Camino's use of Bugzilla.
  • Development:OldProgramming contains the contents of the old cbo development/programming page, which need to be integrated here where appropriate.

Tools

link to tools and explanations; currently links are all to explanations of some degree of usefulness

MXR

MXR is a source cross-reference, or an advanced, web-based Spotlight for source code. It contains a browseable, searchable copy of the current source code, complete with syntax highlighting, hyperlinks for functions and various identifiers, and more. Once you’ve found a piece of code you’re interested in, you can also use MXR to find when the code last changed (“blame”) and the changelog for the file. Using these linked tools (bonsai and hgweb, depending on the version of Camino and the MXR “root”), you can also travel back in time and see what your code or file looked like at various points in the past.

  • For Camino 2.1 based on Mozilla 1.9.2, you want the camino root for Camino code (updated daily) and the mozilla1.9.2 root for Gecko.
  • For Camino 2.1 based on cvs trunk, you want the seamonkey root (updated hourly).
  • For Camino 2.0, there is no discrete root. However, you can access the current CAMINO_2_0_BRANCH version of a file by finding the file in the seamonkey root, choosing the “CVS Graph” link (in the box at the top right of the page), and then selecting the revision for the CAMINO_2_0_BRANCH from the graph. For Core checkins related to Camino 2.0.x (aside from client.mk), use the seamonkey root.
  • For Camino 1.6.x (MOZILLA_1_8_BRANCH), you want the mozilla1.8 root.
  • For Camino 1.5, as with Camino 2.0, there is no MXR root. For Core checkins to Camino 1.5.x, you want the mozilla1.8 root; for Camino code on the CAMINO_1_5_BRANCH, you can use the method described for the CAMINO_2_0_BRANCH above to find CAMINO_1_5_BRANCH files.
  • For Camino 1.0.x (MOZILLA_1_8_0_BRANCH), you want the mozilla1.8.0 root.
  • For Camino 0.8 (MOZILLA_1_7_BRANCH) and some access to really old files that may have been renamed with history loss (e.g., to track additions to the project over time, from Project Builder to Xcode 1.x to Xcode 2.x), you want the mozilla1.7 root.

N.B. Non-seamonkey roots are only updated daily and might be out-of-date if there were lots of checkins since the last update.

pushloghtml and Bonsai

Before Mercurial, Mozilla had sophisticated, interconnected tree-management tools known as http://www.mozilla.org/bonsai.html Bonsai].

Bonsai offered a way to query for checkins (by file, author, or time), show the code changes in a checkin, show what checkins touched a file, and figure out who or what was responsible for a given line of code. Bonsai also integrated with Tinderbox to show what checkins were present in a given build and integrated with MXR to allow MXR to show blame and historical versions of source code files. An example Bonsai query is http://bonsai.mozilla.org/cvsquery.cgi?treeid=default&module=Camino&sortby=Date&hours=2&date=day (cvs trunk checkins to most, but not all, code that Camino pulls).

CVS log (checkins that touched a file), CVS blame (who or what was responsible for a given line of code), and CVS graph (a visual representation of CVS log, across all CVS branches where a file existed) were generally accessed via MXR. For example, see the links in the box on the inside upper right of main.m’s MXR page.

CVS query was usually accessed via checkin and guilty links on Tinderbox, or via the query page, but it could also be accessed via MXR, as illustrated by the links in the box on the inside upper right of main.m’s MXR page.

Bonsai’s replacement is a series of tools from multiple systems, held together with baling wire.

  • To see which checkins occurred between a given time, use pushloghtml (and the corresponding pushloghtml for the appropriate Gecko repository). If you’re regression-hunting and have the changesets of two builds, pushloghtml has a hidden changeset mode you can access by using URLs like http://hg.mozilla.org/camino/pushloghtml?fromchange=tip&tochange=tip. pushloghtml is a Mozilla-specific Hg customization.
  • To see which checkin was responsible for a particular line of code (blame), use hgweb’s “annotate” link (or “HG Blame” from MXR): http://hg.mozilla.org/camino/annotate/tip/src/application/main.m
    Note that if the last change on a particular line is not relevant (e.g., whitespace), you can go back to previous revision of the file (repository) and see the most recent change before that.

Tinderbox

Crash Reporting

Assorted Tools

  • Linkzilla plug-in for Colloquy, which translates bug 377248 or bug 377248 comment 28 into live links (written by encro).

Tracking Documents

The various Development:Planning pages track the discussion and implementation of various large-scale feature changes and behavior synchronization issues that developers are in the process of fixing. The planning documents below may also contain discussion of potential new features for inclusion in future versions of Camino or of features that will never be accepted in Camino.

 


Note: This page is locked for editing.