apache / flink-statefun
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
proto
p8
properties
txt
mod
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.

main24669 LOC (56%) 445 files
test13500 LOC (31%) 176 files
generated2307 LOC (5%) 4 files
build and deployment2223 LOC (5%) 38 files
other849 LOC (1%) 23 files
Main Code
All manually created or maintained source code that defines logic of the product that is run in a production environment.
proto
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*".
  • 445 files match defined criteria (24,669 LOC, 100.0% vs. main code):
    • 394 *.java files (19,215 LOC)
    • 15 *.go files (3,247 LOC)
    • 9 *.ts files (844 LOC)
    • 11 *.py files (736 LOC)
    • 7 *.proto files (378 LOC)
    • 8 *.yaml files (235 LOC)
    • 1 *.js files (14 LOC)
  • " *.java" is biggest, containing 77.89% of LOC.
  • " *.js" is smallest, containing 0.06% of LOC.


*.java19215 LOC (77%) 394 files
*.go3247 LOC (13%) 15 files
*.ts844 LOC (3%) 9 files
*.py736 LOC (2%) 11 files
*.proto378 LOC (1%) 7 files
*.yaml235 LOC (<1%) 8 files
*.js14 LOC (<1%) 1 file
Test Code
Used only for testing of the product. Normally not deployed in a production environment.
proto
p8
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 ".*/[Tt]ests/.*".
    • files with paths like ".*[.][Tt]est[.].*".
    • files with paths like ".*[.]test[.].*".
    • files with paths like ".*[-]tests/.*".
    • files with paths like ".*/e2e/.*".
    • files with paths like ".*[-]tests[-].*".
  • 176 files match defined criteria (13,500 LOC, 54.7% vs. main code):
    • 112 *.java files (8,850 LOC)
    • 11 *.go files (1,469 LOC)
    • 2 *.js files (1,026 LOC)
    • 10 *.xml files (687 LOC)
    • 8 *.py files (390 LOC)
    • 6 *.ts files (346 LOC)
    • 6 *.proto files (328 LOC)
    • 15 *.yaml files (243 LOC)
    • 6 *.p8 files (161 LOC)
  • " *.java" is biggest, containing 65.56% of LOC.
  • " *.p8" is smallest, containing 1.19% of LOC.


*.java8850 LOC (65%) 112 files
*.go1469 LOC (10%) 11 files
*.js1026 LOC (7%) 2 files
*.xml687 LOC (5%) 10 files
*.py390 LOC (2%) 8 files
*.ts346 LOC (2%) 6 files
*.proto328 LOC (2%) 6 files
*.yaml243 LOC (1%) 15 files
*.p8161 LOC (1%) 6 files
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/.*".
  • 4 files match defined criteria (2,307 LOC, 9.4% vs. main code). All matches are in *.js files.


*.js2307 LOC (100%) 4 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 ".*/package[.]json".
    • files with paths like ".*/[.]gitmodules".
  • 38 files match defined criteria (2,223 LOC, 9.0% vs. main code):
    • 24 *.xml files (1,917 LOC)
    • 14 *.sh files (306 LOC)
  • " *.xml" is biggest, containing 86.23% of LOC.
  • " *.sh" is smallest, containing 13.77% of LOC.


*.xml1917 LOC (86%) 24 files
*.sh306 LOC (13%) 14 files
Other Code
properties
mod
txt
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.]md".
    • files with paths like ".*/go[.]mod".
    • files with paths like ".*/README[.][a-z0-9]+".
    • files with paths like ".*[.]json".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*[.]properties".
    • files with paths like ".*[.]txt".
  • 23 files match defined criteria (849 LOC, 3.4% vs. main code):
    • 11 *.md files (647 LOC)
    • 5 *.properties files (106 LOC)
    • 3 *.json files (59 LOC)
    • 1 *.mod files (20 LOC)
    • 3 *.txt files (17 LOC)
  • " *.md" is biggest, containing 76.21% of LOC.
  • " *.txt" is smallest, containing 2% of LOC.


*.md647 LOC (76%) 11 files
*.properties106 LOC (12%) 5 files
*.json59 LOC (6%) 3 files
*.mod20 LOC (2%) 1 file
*.txt17 LOC (2%) 3 files
Analyzers
Info about analyzers used for source code examinations.


2023-08-10 22:27