IT/Production Acceptance/DXR: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(added more dxr todos)
(Moving out non-IT issues to another page)
 
(37 intermediate revisions by 7 users not shown)
Line 1: Line 1:
TODO - fill out info on dxr
==Project Information==
*'''Project sponsor:''' Taras Glek
*'''Main IT contact:''' Taras Glek
*'''Metrics contact:'''' N/A
*'''Main third party contact:''' David Humphrey
*'''Final application owner/maintainer:'''' Taras Glek
*'''Time Frame:''' ASAP, deployed on a devel server atm.
*'''Site Repository:''' http://hg.mozilla.org/webtools/dxr/
*'''Demo Site:''' http://australia.proximity.on.ca/dxr/
*'''Production Site:''' https://dxr.mozilla.org
*'''DXR Future Work Plan:''' [[DXR Future Work Plan]]


* Add DXR bugzilla component - [https://bugzilla.mozilla.org/show_bug.cgi?id=517550 bug 517550]
*'''Any pre-requisites needed (technology, server capacity, staffing, monitoring, response time, etc)''': Machine is expected to compile Mozilla continuously in order to produce the index, so should have 8gb ram, quadcore cpu.  
* DXR Tracking bug - [https://bugzilla.mozilla.org/show_bug.cgi?id=489834 bug 489834]
*'''External dependencies''': None
*'''Dev environment specs''': No clue what goes here
*'''Does this project use any plugins or proprietary technology:''' No, it's pure awesome.


== Task List ==
==What is DXR?==
* Start doing continuous re-indexing of the tree
* <strike>Switch to using http get for searches</strike> Completed.
* Show Classname:: as part of member sidebar on the right
* Make search results clickable anywhere vs. just on line number
* When searching of nsFoo, display a little summary of the class bases,derived, members
* Add links for #include header files
* Add derived/parent class info to source-view
* Searching for filenames should work for fullnames vs. initial portions (e.g., nsGlobal or nsGlobalWindow vs. nsGlobalWindow.cpp)
* Add support for C source
* Fix pop-up position so it isn't off the screen
* Fix Users query so it includes uses of the type directly in addition to uses of derived types (e.g., nsIFoo might have direct users if not an idl type)
* Change sort order of members in sidebar panel so it is alphabetical
* Tokenize macros so that embedded macros are clickable (e.g., NS_ProcessNextEvent resolves to NS_ProcessNextEvent_P)
* Investigate ways to deal with naming collisions.  For example, where types, methods, or macros share the same name, sometimes we pick the wrong one for purposes of linkifying (e.g., NS_ProcessNextEvent). 
* Make IDL pages, and other decl locations do a better job at providing links
* Add more query options to search page (e.g., looking for implementations)
* Add support for JS source
* Finish xpidl_xref so all parts of XPIDL are parsed (eg. c++ fragments, typedefs)
* Add Macro decl locations
* Add support for Obj-C/C++ source
* Integrate callgraph
* Show compiler warnings


* Improve post-processing speed, investigate better parallelism
DXR is a two things.  First, it’s a method for collecting type, member, statement, macro, etc. information about C++, IDL, and soon JavaScript using Mozilla’s static analysis tools (e.g., Dehydra), a hacked build system, and a bunch of scripts.  Second, it’s a web-based tool for mapping this information back onto source code, and allowing users to query and look-up this information.
* Investigate strategy for increment re-indexing vs. full clobbers
 
* Audit web app for security
You can read more about it [http://vocamus.net/dave/?p=557 here].
* Fix srcdir vs. objdir links (e.g., PRInt32)
 
* Remove .html from source file names (mod_rewrite?)
DXR was written and is being actively developed by David Humphrey.
* Add support for html/xml, perhaps with links to MDC doc pages
 
Bugs can be filed using Mozilla's Bugzilla with [https://bugzilla.mozilla.org/buglist.cgi?quicksearch=product%3Awebtools+component%3Adxr Product:WebTools and Component:DXR]
 
== Mozilla Roll-out Task List ==
 
* Deploy DXR at Mozilla - [https://bugzilla.mozilla.org/show_bug.cgi?id=524725 bug 524725]
* Dave to update DXR hg repo with latest callgraph code
* Tweak installation and indexing system for use by Mozilla
* Make dxr scripts path agnostic and more portable (python path stuff)
* Make dxr scripts path agnostic and more portable (python path stuff)
* Fix ctor html linkifying code so Foo::Foo works properly
* Figure out how to deal with code being ifdef'ed out (e.g., debug vs. non-debug build)
* Various fixes to dehydra script
* Multi-platform indexing
* Various front-end fixes (e.g., dojo UI stuff)
* Add gcov support
* Add build dependency map info - "what do I have to remake if I change something in content/html/document/src?"
* Make http://dxr.proximity.on.ca/dxr/mozilla-central/xpcom/ds/nsHashtable.h.html#144/Put work

Latest revision as of 15:32, 27 February 2010

Project Information

  • Any pre-requisites needed (technology, server capacity, staffing, monitoring, response time, etc): Machine is expected to compile Mozilla continuously in order to produce the index, so should have 8gb ram, quadcore cpu.
  • External dependencies: None
  • Dev environment specs: No clue what goes here
  • Does this project use any plugins or proprietary technology: No, it's pure awesome.

What is DXR?

DXR is a two things. First, it’s a method for collecting type, member, statement, macro, etc. information about C++, IDL, and soon JavaScript using Mozilla’s static analysis tools (e.g., Dehydra), a hacked build system, and a bunch of scripts. Second, it’s a web-based tool for mapping this information back onto source code, and allowing users to query and look-up this information.

You can read more about it here.

DXR was written and is being actively developed by David Humphrey.

Bugs can be filed using Mozilla's Bugzilla with Product:WebTools and Component:DXR

Mozilla Roll-out Task List

  • Deploy DXR at Mozilla - bug 524725
  • Dave to update DXR hg repo with latest callgraph code
  • Tweak installation and indexing system for use by Mozilla
  • Make dxr scripts path agnostic and more portable (python path stuff)