apache / fury
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
pxd
properties
pxi
patch
proto
mod
gitattributes
editorconfig
npmrc
gyp
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.

main86216 LOC (70%) 743 files
test30629 LOC (24%) 283 files
generated522 LOC (<1%) 8 files
build and deployment2229 LOC (1%) 16 files
other2977 LOC (2%) 49 files
Main Code
All manually created or maintained source code that defines logic of the product that is run in a production environment.
pxi
pxd
proto
gyp
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*".
  • 743 files match defined criteria (86,216 LOC, 100.0% vs. main code):
    • 335 *.java files (53,104 LOC)
    • 199 *.dart files (8,350 LOC)
    • 38 *.ts files (4,941 LOC)
    • 29 *.py files (4,718 LOC)
    • 13 *.go files (2,850 LOC)
    • 41 *.rs files (2,748 LOC)
    • 4 *.pyx files (2,541 LOC)
    • 18 *.h files (1,945 LOC)
    • 12 *.cc files (1,897 LOC)
    • 3 *.pxi files (706 LOC)
    • 4 *.bzl files (488 LOC)
    • 5 *.js files (412 LOC)
    • 10 *.pxd files (375 LOC)
    • 7 *.kt files (320 LOC)
    • 8 *.toml files (295 LOC)
    • 3 *.scala files (229 LOC)
    • 2 *.proto files (164 LOC)
    • 9 *.yaml files (82 LOC)
    • 2 *.sbt files (36 LOC)
    • 1 *.gyp files (15 LOC)
  • " *.java" is biggest, containing 61.59% of LOC.
  • " *.gyp" is smallest, containing 0.02% of LOC.


*.java53104 LOC (61%) 335 files
*.dart8350 LOC (9%) 199 files
*.ts4941 LOC (5%) 38 files
*.py4718 LOC (5%) 29 files
*.go2850 LOC (3%) 13 files
*.rs2748 LOC (3%) 41 files
*.pyx2541 LOC (2%) 4 files
*.h1945 LOC (2%) 18 files
*.cc1897 LOC (2%) 12 files
*.pxi706 LOC (<1%) 3 files
*.bzl488 LOC (<1%) 4 files
*.js412 LOC (<1%) 5 files
*.pxd375 LOC (<1%) 10 files
*.kt320 LOC (<1%) 7 files
*.toml295 LOC (<1%) 8 files
*.scala229 LOC (<1%) 3 files
*.proto164 LOC (<1%) 2 files
*.yaml82 LOC (<1%) 9 files
*.sbt36 LOC (<1%) 2 files
*.gyp15 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]est/.*".
    • files with paths like ".*[-]test[-].*".
    • files with paths like ".*/test_.*".
    • files with paths like ".*_test[.].*".
    • files with paths like ".*/[Ss]pecs/.*".
    • files with paths like ".*/[Tt]ests/.*".
    • files with paths like ".*/jest[.][a-zA-Z0-9\.]+".
    • files with paths like ".*[.][Tt]est[.].*".
    • files with paths like ".*[.]test[.].*".
  • 283 files match defined criteria (30,629 LOC, 35.5% vs. main code):
    • 171 *.java files (21,018 LOC)
    • 26 *.dart files (2,139 LOC)
    • 20 *.py files (1,939 LOC)
    • 22 *.ts files (1,453 LOC)
    • 13 *.cc files (1,223 LOC)
    • 7 *.go files (1,094 LOC)
    • 7 *.kt files (735 LOC)
    • 5 *.rs files (467 LOC)
    • 7 *.scala files (397 LOC)
    • 2 *.xml files (114 LOC)
    • 1 *.toml files (26 LOC)
    • 1 *.js files (22 LOC)
    • 1 *.yaml files (2 LOC)
  • " *.java" is biggest, containing 68.62% of LOC.
  • " *.yaml" is smallest, containing 0.01% of LOC.


*.java21018 LOC (68%) 171 files
*.dart2139 LOC (6%) 26 files
*.py1939 LOC (6%) 20 files
*.ts1453 LOC (4%) 22 files
*.cc1223 LOC (3%) 13 files
*.go1094 LOC (3%) 7 files
*.kt735 LOC (2%) 7 files
*.rs467 LOC (1%) 5 files
*.scala397 LOC (1%) 7 files
*.xml114 LOC (<1%) 2 files
*.toml26 LOC (<1%) 1 file
*.js22 LOC (<1%) 1 file
*.yaml2 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 ".*/generated/.*".
  • 8 files match defined criteria (522 LOC, 0.6% vs. main code). All matches are in *.java files.


*.java522 LOC (100%) 8 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 ".*/pom[.]xml".
    • files with paths like ".*[.]sh".
    • files with paths like ".*[.]git[a-z]+".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*/[.]gitattributes".
    • files with paths like ".*/package[.]json".
  • 16 files match defined criteria (2,229 LOC, 2.6% vs. main code):
    • 11 *.xml files (1,511 LOC)
    • 5 *.sh files (718 LOC)
  • " *.xml" is biggest, containing 67.79% of LOC.
  • " *.sh" is smallest, containing 32.21% of LOC.


*.xml1511 LOC (67%) 11 files
*.sh718 LOC (32%) 5 files
Other Code
properties
txt
patch
mod
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.]json".
    • files with paths like ".*[.]md".
    • files with paths like ".*/README[.][a-z0-9]+".
    • files with paths like ".*[.]properties".
    • files with paths like ".*/checkstyle[.]xml".
    • files with paths like ".*/checkstyle.*".
    • files with paths like ".*[.]txt".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*[.]patch".
    • files with paths like ".*[.]npmrc".
    • files with paths like ".*[.]svg".
    • files with paths like ".*/go[.]mod".
    • files with paths like ".*[.]editorconfig".
  • 49 files match defined criteria (2,977 LOC, 3.5% vs. main code):
    • 24 *.md files (1,189 LOC)
    • 4 *.properties files (883 LOC)
    • 10 *.txt files (386 LOC)
    • 6 *.json files (247 LOC)
    • 2 *.xml files (203 LOC)
    • 2 *.patch files (47 LOC)
    • 1 *.mod files (22 LOC)
  • " *.md" is biggest, containing 39.94% of LOC.
  • " *.mod" is smallest, containing 0.74% of LOC.


*.md1189 LOC (39%) 24 files
*.properties883 LOC (29%) 4 files
*.txt386 LOC (12%) 10 files
*.json247 LOC (8%) 6 files
*.xml203 LOC (6%) 2 files
*.patch47 LOC (1%) 2 files
*.mod22 LOC (<1%) 1 file
Analyzers
Info about analyzers used for source code examinations.


2025-05-07 20:49