Uber / piranha
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
txt
properties
scm
pyi
in
eslintignore
prettierignore
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.

main16036 LOC (30%) 123 files
test23425 LOC (45%) 358 files
generated4026 LOC (7%) 7 files
build and deployment535 LOC (1%) 13 files
other7861 LOC (15%) 108 files
Main Code
All manually created or maintained source code that defines logic of the product that is run in a production environment.
pyi
in
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*".
  • 123 files match defined criteria (16,036 LOC, 100.0% vs. main code):
    • 20 *.toml files (4,647 LOC)
    • 26 *.rs files (3,736 LOC)
    • 17 *.java files (2,313 LOC)
    • 29 *.py files (2,163 LOC)
    • 11 *.js files (1,167 LOC)
    • 9 *.swift files (925 LOC)
    • 1 *.cpp files (618 LOC)
    • 1 *.html files (156 LOC)
    • 5 *.css files (152 LOC)
    • 1 *.pyi files (150 LOC)
    • 1 *.go files (6 LOC)
    • 1 *.in files (2 LOC)
    • 1 *.yml files (1 LOC)
  • " *.toml" is biggest, containing 28.98% of LOC.
  • " *.yml" is smallest, containing 0.01% of LOC.


*.toml4647 LOC (28%) 20 files
*.rs3736 LOC (23%) 26 files
*.java2313 LOC (14%) 17 files
*.py2163 LOC (13%) 29 files
*.js1167 LOC (7%) 11 files
*.swift925 LOC (5%) 9 files
*.cpp618 LOC (3%) 1 file
*.html156 LOC (<1%) 1 file
*.css152 LOC (<1%) 5 files
*.pyi150 LOC (<1%) 1 file
*.go6 LOC (<1%) 1 file
*.in2 LOC (<1%) 1 file
*.yml1 LOC (<1%) 1 file
Test Code
Used only for testing of the product. Normally not deployed in a production environment.
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*/[Tt]ests/.*".
    • files with paths like ".*/test_.*".
    • files with paths like ".*/[Tt]est/.*".
    • files with paths like ".*/test[-]resources/.*".
    • files with paths like ".*_test[.].*".
  • 358 files match defined criteria (23,425 LOC, 146.1% vs. main code):
    • 110 *.java files (8,279 LOC)
    • 47 *.swift files (3,813 LOC)
    • 79 *.toml files (3,510 LOC)
    • 21 *.rs files (2,841 LOC)
    • 30 *.kt files (1,609 LOC)
    • 16 *.js files (1,202 LOC)
    • 15 *.py files (786 LOC)
    • 9 *.go files (633 LOC)
    • 5 *.m files (448 LOC)
    • 18 *.scala files (203 LOC)
    • 3 *.ts files (51 LOC)
    • 3 *.tsx files (42 LOC)
    • 2 *.thrift files (8 LOC)
  • " *.java" is biggest, containing 35.34% of LOC.
  • " *.thrift" is smallest, containing 0.03% of LOC.


*.java8279 LOC (35%) 110 files
*.swift3813 LOC (16%) 47 files
*.toml3510 LOC (14%) 79 files
*.rs2841 LOC (12%) 21 files
*.kt1609 LOC (6%) 30 files
*.js1202 LOC (5%) 16 files
*.py786 LOC (3%) 15 files
*.go633 LOC (2%) 9 files
*.m448 LOC (1%) 5 files
*.scala203 LOC (<1%) 18 files
*.ts51 LOC (<1%) 3 files
*.tsx42 LOC (<1%) 3 files
*.thrift8 LOC (<1%) 2 files
Generated Code
Automatically generated files, not manually changed after generation.
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with any line of content like "\<\!\-\-[ ]*Generated by .*".
    • files with paths like ".*/package[-]lock[.]json".
  • 7 files match defined criteria (4,026 LOC, 25.1% vs. main code):
    • 1 *.json files (2,586 LOC)
    • 6 *.svg files (1,440 LOC)
  • " *.json" is biggest, containing 64.23% of LOC.
  • " *.svg" is smallest, containing 35.77% of LOC.


*.json2586 LOC (64%) 1 file
*.svg1440 LOC (35%) 6 files
Build and Deployment Code
Source code used to configure or support build and deployment process.
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.]gradle".
    • files with paths like ".*[.]bat".
    • files with paths like ".*[.]sh".
    • files with paths like ".*[.]git[a-z]+".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*/package[-]lock[.]json".
    • files with paths like ".*/package[.]json".
  • 13 files match defined criteria (535 LOC, 3.3% vs. main code):
    • 6 *.gradle files (352 LOC)
    • 6 *.sh files (122 LOC)
    • 1 *.bat files (61 LOC)
  • " *.gradle" is biggest, containing 65.79% of LOC.
  • " *.bat" is smallest, containing 11.4% of LOC.


*.gradle352 LOC (65%) 6 files
*.sh122 LOC (22%) 6 files
*.bat61 LOC (11%) 1 file
Other Code
txt
properties
scm
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*/[Dd]emos?/.*".
    • files with paths like ".*[.]md".
    • files with paths like ".*[.]txt".
    • files with paths like ".*/README[.][a-z0-9]+".
    • files with paths like ".*[.]json".
    • files with paths like ".*[.]svg".
    • files with paths like ".*[.]properties".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*/[Ee]xamples/.*".
    • files with paths like ".*/[.]prettierignore".
    • files with paths like ".*/[.]eslintignore".
    • files with paths like ".*[.]scm".
  • 108 files match defined criteria (7,861 LOC, 49.0% vs. main code):
    • 35 *.json files (3,859 LOC)
    • 6 *.svg files (1,440 LOC)
    • 20 *.md files (1,257 LOC)
    • 12 *.toml files (569 LOC)
    • 7 *.py files (328 LOC)
    • 9 *.java files (86 LOC)
    • 1 *.thrift files (75 LOC)
    • 5 *.txt files (53 LOC)
    • 3 *.properties files (46 LOC)
    • 2 *.swift files (32 LOC)
    • 1 *.go files (31 LOC)
    • 1 *.js files (31 LOC)
    • 2 *.kt files (21 LOC)
    • 1 *.ts files (17 LOC)
    • 1 *.tsx files (14 LOC)
    • 2 *.scm files (2 LOC)
  • " *.json" is biggest, containing 49.09% of LOC.
  • " *.scm" is smallest, containing 0.03% of LOC.


*.json3859 LOC (49%) 35 files
*.svg1440 LOC (18%) 6 files
*.md1257 LOC (15%) 20 files
*.toml569 LOC (7%) 12 files
*.py328 LOC (4%) 7 files
*.java86 LOC (1%) 9 files
*.thrift75 LOC (<1%) 1 file
*.txt53 LOC (<1%) 5 files
*.properties46 LOC (<1%) 3 files
*.swift32 LOC (<1%) 2 files
*.go31 LOC (<1%) 1 file
*.js31 LOC (<1%) 1 file
*.kt21 LOC (<1%) 2 files
*.ts17 LOC (<1%) 1 file
*.tsx14 LOC (<1%) 1 file
*.scm2 LOC (<1%) 2 files
Analyzers
Info about analyzers used for source code examinations.


2024-04-03 14:39