Bug 2592

Summary: Add sort option to doxygen.warnings.report.sh
Product: ns-3 Reporter: Robert Ammon <ammo6818>
Component: documentationAssignee: Peter Barnes <pdbarnes>
Status: RESOLVED INVALID    
Severity: enhancement CC: ns-bugs
Priority: P3    
Version: ns-3-dev   
Hardware: All   
OS: All   

Description Robert Ammon 2016-12-18 19:35:15 EST
Add a -S option to sort the log file output by file name.
Comment 1 Robert Ammon 2016-12-18 19:39:21 EST
Changes uploaded as http://codereview.appspot.com/317000043
Comment 2 Tom Henderson 2016-12-19 23:06:54 EST
Looks fine to me; am reassigning to Peter for his +1 since he was original script author
Comment 3 Peter Barnes 2016-12-20 19:39:03 EST
I don't understand the use case.  

A.  The Doxygen warnings are often multi-line with no common prefix:

...docs/src/wave/model/bsm-application.h:69: warning: The following parameters of ns3::BsmApplication::Setup(Ipv4InterfaceContainer &i, int nodeId, Time totalTime, uint32_t wavePacketSize, Time waveInterval, double gpsAccuracyNs, std::vector< double > rangesSq, Ptr< WaveBsmStats > waveBsmStats, std::vector< int > *nodesMoving, int mode, Time txDelay) are not documented:
  parameter 'gpsAccuracyNs'
  parameter 'rangesSq'
  parameter 'waveBsmStats'
  parameter 'nodesMoving'
  parameter 'mode'
  parameter 'txDelay'

After sorting, the missing parameter names can't be associated with the file and function on the first line, and looking at the first line you can't tell which parameters are undocumented (which is helpful in the case of misspellings...)

B.  Since the script produces sorted output, and rerunning from the raw log file is very fast, you can easily generated sorted output that way.

Please give more information about your usage pattern and how -S is helpful.
Comment 4 Robert Ammon 2016-12-21 18:00:54 EST
You are correct about the multiple line issue.

However, out of the 8400++ warnings (report also ran with the -e and -t options), there are less than 100 occurrences of multi line errors.

I have embarked on a project to to eliminate all existing doxygen warnings and wanted a method to generate a sorted list of all modules by module to work from so that each file only needs to be touched once and each model can be updated as a block.  I realize that there is an option to select a model, but it becomes difficult to do that if you don't have all of the model names memorized or a list of them somewhere

If you think this doesn't provide enough value of causes issues because of multi line errors, then i would not object to rejecting it, since I can just do the same thing from the command line.  I will defer to your judgment.
Comment 5 Peter Barnes 2016-12-21 20:28:33 EST
First,

> I have embarked on a project to to eliminate all existing doxygen warnings

Bravo!  Thanks for your help.  I vowed (and succeeded) to do the same for core, though I see a few warnings have crept back in.  Without eternal vigilance...

Second, I think the information you want is in the stdout already.

	./doc/doxygen.warnings.report.sh -iwet 
	...
	Warnings by module/directory:

	Count Directory
	----- ----------------------------------
	3154 src/lte/model
	1523 src/wimax/model
	...
	Warnings by file (alphabetical)

	Count File
	----- ----------------------------------
	   1 doc/introspected-doxygen.h
	 274 doc/main.h
	   1 src/antenna/model/antenna-model.h
	   8 src/antenna/model/cosine-antenna-model.h
	...


The first list shows modules, so you can choose one to work on (without having to know the names in advance).  Using -m to narrow down to one directory:

	./doc/doxygen.warnings.report.sh -iwetm spectrum

	doxygen.warnings.report.sh:

	Skipping doxygen run, using existing log file ./doxygen.warnings.log
	Filtering in "src/spectrum"
	Filtering out "/examples/\|/test/"


	Report of Doxygen warnings
	----------------------------------------

	(All counts are lower bounds.)

	Warnings by module/directory:

	Count Directory
	----- ----------------------------------
	  12 src/spectrum/model
	 103 additional undocumented parameters.
	----------------------------------------
	   115 total warnings
		 1 directories with warnings


	Warnings by file (alphabetical)

	Count File
	----- ----------------------------------
	   1 src/spectrum/model/spectrum-model-300kHz-300GHz-log.cc
	   1 src/spectrum/model/spectrum-model-ism2400MHz-res1MHz.cc
	   4 src/spectrum/model/wifi-spectrum-value-helper.cc
	   6 src/spectrum/model/wifi-spectrum-value-helper.h
	----------------------------------------
		 4 files with warnings


	Warnings by file (numerical)

	Count File
	----- ----------------------------------
	   6 src/spectrum/model/wifi-spectrum-value-helper.h
	   4 src/spectrum/model/wifi-spectrum-value-helper.cc
	   1 src/spectrum/model/spectrum-model-300kHz-300GHz-log.cc
	   1 src/spectrum/model/spectrum-model-ism2400MHz-res1MHz.cc
	----------------------------------------
		 4 files with warnings


	Doxygen Warnings Summary
	----------------------------------------
		 1 directories
		 4 files
	   115 warnings


	Filtered Warnings
	========================================
	...

There are four files which need work, the errors are shown (in the elided section at the bottom) and away you go.

What am I missing?
Comment 6 Robert Ammon 2016-12-23 16:57:02 EST
Please close with no action or cancel if possible.