apache / mxnet-test
Source Code Overview

Analysis scope, overview of main, test, generated, deployment, build, and other code.

Source Code Analysis Scope
Files includes and excluded from analyses
t
mk
txt
rmd
cfg
i
proto
properties
pyi
in
gitmodules
Overview of Analyzed Files
Basic stats on analyzed files
Intro
For analysis purposes we separate files in scope into several categories: main, test, generated, deployment and build, and other.

  • The main category contains all manually created source code files that are being used in the production.
  • Files in the main category are used as input for other analyses: logical decomposition, concerns, duplication, file size, unit size, and conditional complexity.
  • Test source code files are used only for testing of the product. These files are normally not deployed to production.
  • Build and deployment source code files are used to configure or support build and deployment process.
  • Generated source code files are automatically generated files that have not been manually changed after generation.
  • While a source code folder may contain a number of files, we are primarily interested in the source code files that are being written and maintained by developers.
  • Files containing binaries, documentation, or third-party libraries, for instance, are excluded from analysis. The exception are third-party libraries that have been changed by developers.

main150238 LOC (83%) 1,022 files
test17406 LOC (9%) 132 files
generated18 LOC (<1%) 1 file
build and deployment3253 LOC (1%) 84 files
other9421 LOC (5%) 142 files
Main Code
All manually created or maintained source code that defines logic of the product that is run in a production environment.
i
proto
cfg
pyi
t
in
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*".
  • 1022 files match defined criteria (150,238 LOC, 100.0% vs. main code):
    • 206 *.h files (39,953 LOC)
    • 382 *.py files (37,817 LOC)
    • 148 *.cc files (25,066 LOC)
    • 47 *.pm files (11,336 LOC)
    • 68 *.scala files (8,542 LOC)
    • 81 *.cu files (7,067 LOC)
    • 21 *.cuh files (6,357 LOC)
    • 4 *.i files (3,126 LOC)
    • 2 *.proto files (2,976 LOC)
    • 12 *.cpp files (1,984 LOC)
    • 6 *.ipynb files (1,655 LOC)
    • 9 *.hpp files (1,487 LOC)
    • 4 *.m files (763 LOC)
    • 5 *.cmake files (669 LOC)
    • 6 *.pyx files (591 LOC)
    • 1 *.c files (201 LOC)
    • 5 *.cfg files (180 LOC)
    • 5 *.yml files (115 LOC)
    • 1 *.xml files (103 LOC)
    • 2 *.java files (89 LOC)
    • 1 *.pyi files (85 LOC)
    • 1 *.yaml files (56 LOC)
    • 3 *.t files (12 LOC)
    • 1 *.perl files (5 LOC)
    • 1 *.in files (3 LOC)
  • " *.h" is biggest, containing 26.59% of LOC.
  • " *.in" is smallest, containing 0% of LOC.


*.h39953 LOC (26%) 206 files
*.py37817 LOC (25%) 382 files
*.cc25066 LOC (16%) 148 files
*.pm11336 LOC (7%) 47 files
*.scala8542 LOC (5%) 68 files
*.cu7067 LOC (4%) 81 files
*.cuh6357 LOC (4%) 21 files
*.i3126 LOC (2%) 4 files
*.proto2976 LOC (1%) 2 files
*.cpp1984 LOC (1%) 12 files
*.ipynb1655 LOC (1%) 6 files
*.hpp1487 LOC (<1%) 9 files
*.m763 LOC (<1%) 4 files
*.cmake669 LOC (<1%) 5 files
*.pyx591 LOC (<1%) 6 files
*.c201 LOC (<1%) 1 file
*.cfg180 LOC (<1%) 5 files
*.yml115 LOC (<1%) 5 files
*.xml103 LOC (<1%) 1 file
*.java89 LOC (<1%) 2 files
*.pyi85 LOC (<1%) 1 file
*.yaml56 LOC (<1%) 1 file
*.t12 LOC (<1%) 3 files
*.perl5 LOC (<1%) 1 file
*.in3 LOC (<1%) 1 file
Test Code
Used only for testing of the product. Normally not deployed in a production environment.
t
mk
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*/test_.*".
    • files with paths like ".*/[Tt]ests/.*".
    • files with paths like ".*_test[.].*".
    • files with paths like ".*/[Tt]est/.*".
  • 132 files match defined criteria (17,406 LOC, 11.6% vs. main code):
    • 52 *.py files (8,688 LOC)
    • 19 *.t files (2,575 LOC)
    • 17 *.scala files (1,961 LOC)
    • 4 *.cc files (1,716 LOC)
    • 3 *.h files (1,157 LOC)
    • 33 *.sh files (1,075 LOC)
    • 2 *.m files (105 LOC)
    • 1 *.cpp files (91 LOC)
    • 1 *.mk files (38 LOC)
  • " *.py" is biggest, containing 49.91% of LOC.
  • " *.mk" is smallest, containing 0.22% of LOC.


*.py8688 LOC (49%) 52 files
*.t2575 LOC (14%) 19 files
*.scala1961 LOC (11%) 17 files
*.cc1716 LOC (9%) 4 files
*.h1157 LOC (6%) 3 files
*.sh1075 LOC (6%) 33 files
*.m105 LOC (<1%) 2 files
*.cpp91 LOC (<1%) 1 file
*.mk38 LOC (<1%) 1 file
Generated Code
Automatically generated files, not manually changed after generation.
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.]h" AND any line of content like ".* DO NOT EDIT THIS FILE [-] it is machine generated .*".
  • 1 file matches defined criteria (18 LOC, 0.0% vs. main code). All matches are in *.h files.


*.h18 LOC (100%) 1 file
Build and Deployment Code
Source code used to configure or support build and deployment process.
mk
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.]git[a-z]+".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*[.]sh".
    • files with paths like ".*[.]bat".
    • files with paths like ".*[.]mk".
    • files with paths like ".*/pom[.]xml".
    • files with paths like ".*/assembly[.]xml".
    • files with paths like ".*/[.]gitmodules".
  • 84 files match defined criteria (3,253 LOC, 2.2% vs. main code):
    • 20 *.xml files (1,484 LOC)
    • 50 *.sh files (1,082 LOC)
    • 11 *.mk files (461 LOC)
    • 3 *.bat files (226 LOC)
  • " *.xml" is biggest, containing 45.62% of LOC.
  • " *.bat" is smallest, containing 6.95% of LOC.


*.xml1484 LOC (45%) 20 files
*.sh1082 LOC (33%) 50 files
*.mk461 LOC (14%) 11 files
*.bat226 LOC (6%) 3 files
Other Code
txt
properties
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.]md".
    • files with paths like ".*/README[.][a-z0-9]+".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*[.]json".
    • files with paths like ".*[.]txt".
    • files with paths like ".*/[Dd]emos?/.*".
    • files with paths like ".*[.]properties".
    • files with paths like ".*/[Ee]xamples/.*".
    • files with paths like ".*[.]svg".
    • files with paths like ".*/[.]dockerignore".
  • 142 files match defined criteria (9,421 LOC, 6.3% vs. main code):
    • 41 *.scala files (4,520 LOC)
    • 62 *.md files (2,822 LOC)
    • 6 *.pl files (800 LOC)
    • 8 *.txt files (595 LOC)
    • 5 *.json files (338 LOC)
    • 16 *.sh files (177 LOC)
    • 1 *.xml files (142 LOC)
    • 1 *.py files (15 LOC)
    • 2 *.properties files (12 LOC)
  • " *.scala" is biggest, containing 47.98% of LOC.
  • " *.properties" is smallest, containing 0.13% of LOC.


*.scala4520 LOC (47%) 41 files
*.md2822 LOC (29%) 62 files
*.pl800 LOC (8%) 6 files
*.txt595 LOC (6%) 8 files
*.json338 LOC (3%) 5 files
*.sh177 LOC (1%) 16 files
*.xml142 LOC (1%) 1 file
*.py15 LOC (<1%) 1 file
*.properties12 LOC (<1%) 2 files
Analyzers
Info about analyzers used for source code examinations.


2023-08-10 18:34