Page MenuHomePhabricator

Enable call graphs for doxygen-generated docs
Closed, ResolvedPublic

Description

Author: zak

Description:
Sample call graph for Title::getLinkUrl

It would be nice to have call graphs included in http://svn.wikimedia.org/doc

Enabling call graphs should be simple.

  • We'll need to have dot installed on the server that generates the docs.
  • In the config file for doxygen, HAVE_DOT and CALL_GRAPH need to be set to YES.

On my older MacBook with 2GB RAM, generating call graphs increases the run time of make docs about 12 times.

If you've not seen the call graphs generated by doxygen, I've attached a sample. When the call graphs is shown in the docs, it's supplemented by an image map that links to documentation for the relevant calls. e.g. The image for Title::getFullURL links to the docs page for Title::getFullURL


Version: unspecified
Severity: enhancement
URL: http://svn.wikimedia.org/doc/

Attached:

classTitle_cda13ebd9fffed58199d9e849e20ad16_cgraph.png (775×1 px, 144 KB)

Details

Reference
bz26404
TitleReferenceAuthorSource BranchDest Branch
Update function-schemata sub-module to HEAD (b5a37af)repos/abstract-wiki/wikifunctions/wikilambda-cli!16jforrestersync-function-schematamain
Update function-schemata sub-module to HEAD (b5a37af)repos/abstract-wiki/wikifunctions/function-orchestrator!72apinesync-function-schematamain
Update function-schemata sub-module to HEAD (b5a37af)repos/abstract-wiki/wikifunctions/function-evaluator!62apinesync-function-schematamain
definitions: Add Z1913/mnc-mong and Z1914/mnc-latn ZNaturalLanguagesrepos/abstract-wiki/wikifunctions/function-schemata!41jforresterT284043main
Customize query in GitLab

Event Timeline

bzimport raised the priority of this task from to Medium.Nov 21 2014, 11:14 PM
bzimport set Reference to bz26404.
bzimport added a subscriber: Unknown Object (MLST).

I do support this function. I already use it locally.

Be interesting to see how long it takes currently, and checking it with this....

Formey - http://wikitech.wikimedia.org/view/Formey

Not a brilliantly high spec machine, but dual core with 4GB Ram...

We don't have even inheritance graphs yet... :o

zak wrote:

@Reedy: On my machine, it was 4 minutes without v. 50 minutes with
(MacBook 2Ghz Core 2 Duo w/ 2GB of memory)

Zak, you might want to provide a diff for the doxyfile - phase3/maintenance/Doxyfile

zak wrote:

Sure. I'll also update the makefile with checks for dot support and so on.

Ryan reckons it's less than a minute to generate them on formey

Which is 25% of the time it takes yours.... 12 minutes doesn't seem too bad... (Though, it's probably not so linear!)

zak wrote:

Enable call graph generation if dot support is available.

A patch to mwdocgen.php and Doxyfile.

Main focus of the patch is to enable call graph generation by doxygen if dot support is available.

Minor changes:

  • tweak internal docs
  • make error message more useful
  • remove commented-out hard-coded path

attachment doxygen.patch ignored as obsolete

zak wrote:

Attempt call graph generation if dot support is available.

... let's adjust that patch a bit. Remove unused placeholder and change comments a bit.

Attached:

Btw Zak, do you have SVN access?

Graphviz package has been installed.

Cheers Ryan,

Also, Zak, any idea about enabling the inheritance graphs per Nikerabbit?

zak wrote:

Thanks @Ryan.

@Reedy:

  • I don't have commit access (but I have applied for it.)
  • The patch enables generation of inheritance graphs as well.

Committed in r79070

Hopefully should mean tonight it regenerates with the new stuff =)

Rough timing (based on IRC backlog) is about 10 minutes. Not too bad IMHO

zak wrote:

Looks good. Thanks Reedy, Ryan and all!

Well done everyone. Can we please get Zak commit access ? :-)

Thanks for the patch Zak, it is now working on http://svn.wikimedia.org/doc/