apache / beam
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
proto
sass
pxd
mod
hcl
ini
p8
tpl
pb
gitattributes
cfg
prettierignore
pyi
htaccess
in
gitmodules
eslintignore
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.

main774010 LOC (47%) 7,108 files
test596198 LOC (36%) 3,255 files
generated11521 LOC (<1%) 27 files
build and deployment17946 LOC (1%) 330 files
other225565 LOC (13%) 2,179 files
Main Code
All manually created or maintained source code that defines logic of the product that is run in a production environment.
proto
pxd
sass
pyi
cfg
in
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*".
  • 7108 files match defined criteria (774,010 LOC, 100.0% vs. main code):
    • 4,139 *.java files (447,766 LOC)
    • 674 *.py files (114,349 LOC)
    • 625 *.go files (107,240 LOC)
    • 129 *.ts files (27,486 LOC)
    • 401 *.dart files (20,328 LOC)
    • 589 *.yaml files (15,523 LOC)
    • 98 *.scss files (9,510 LOC)
    • 17 *.proto files (6,166 LOC)
    • 103 *.sql files (4,461 LOC)
    • 75 *.html files (4,176 LOC)
    • 23 *.groovy files (3,869 LOC)
    • 28 *.js files (2,600 LOC)
    • 82 *.tf files (2,328 LOC)
    • 13 *.kts files (2,204 LOC)
    • 43 *.kt files (1,225 LOC)
    • 10 *.tsx files (869 LOC)
    • 14 *.pxd files (792 LOC)
    • 14 *.sass files (706 LOC)
    • 5 *.pyx files (548 LOC)
    • 8 *.xml files (468 LOC)
    • 1 *.pyi files (376 LOC)
    • 1 *.ftl files (355 LOC)
    • 6 *.css files (216 LOC)
    • 1 *.ipynb files (172 LOC)
    • 2 *.toml files (128 LOC)
    • 2 *.h files (49 LOC)
    • 2 *.cfg files (41 LOC)
    • 1 *.rdf files (23 LOC)
    • 1 *.in files (22 LOC)
    • 1 *.scala files (14 LOC)
  • " *.java" is biggest, containing 57.85% of LOC.
  • " *.scala" is smallest, containing 0% of LOC.


*.java447766 LOC (57%) 4,139 files
*.py114349 LOC (14%) 674 files
*.go107240 LOC (13%) 625 files
*.ts27486 LOC (3%) 129 files
*.dart20328 LOC (2%) 401 files
*.yaml15523 LOC (2%) 589 files
*.scss9510 LOC (1%) 98 files
*.proto6166 LOC (<1%) 17 files
*.sql4461 LOC (<1%) 103 files
*.html4176 LOC (<1%) 75 files
*.groovy3869 LOC (<1%) 23 files
*.js2600 LOC (<1%) 28 files
*.tf2328 LOC (<1%) 82 files
*.kts2204 LOC (<1%) 13 files
*.kt1225 LOC (<1%) 43 files
*.tsx869 LOC (<1%) 10 files
*.pxd792 LOC (<1%) 14 files
*.sass706 LOC (<1%) 14 files
*.pyx548 LOC (<1%) 5 files
*.xml468 LOC (<1%) 8 files
*.pyi376 LOC (<1%) 1 file
*.ftl355 LOC (<1%) 1 file
*.css216 LOC (<1%) 6 files
*.ipynb172 LOC (<1%) 1 file
*.toml128 LOC (<1%) 2 files
*.h49 LOC (<1%) 2 files
*.cfg41 LOC (<1%) 2 files
*.rdf23 LOC (<1%) 1 file
*.in22 LOC (<1%) 1 file
*.scala14 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 ".*_test[.].*".
    • files with paths like ".*/test_.*".
    • files with paths like ".*/[Tt]est/.*".
    • files with paths like ".*_mock[.][a-zA-Z0-9_\-]+".
    • files with paths like ".*/[Tt]ests/.*".
    • files with paths like ".*[-]tests[-].*".
    • files with paths like ".*[-]test[-].*".
    • files with paths like ".*[-]tests/.*".
    • files with paths like ".*/test[.].*".
    • files with paths like ".*/tests_.*".
    • files with paths like ".*_tests[.].*".
    • files with paths like ".*/jest[.][a-zA-Z0-9\.]+".
    • files with paths like ".*[.][Tt]est[.].*".
    • files with paths like ".*[.]test[.].*".
    • files with paths like ".*__tests__.*".
    • files with paths like ".*/mock[a-zA-Z0-9_\- ]+/.*".
    • files with paths like ".*/testing[.].*".
  • 3255 files match defined criteria (596,198 LOC, 77.0% vs. main code):
    • 2,188 *.java files (420,095 LOC)
    • 440 *.py files (96,369 LOC)
    • 404 *.go files (63,895 LOC)
    • 74 *.dart files (6,488 LOC)
    • 36 *.yaml files (2,268 LOC)
    • 14 *.ts files (2,154 LOC)
    • 39 *.kt files (980 LOC)
    • 7 *.sh files (797 LOC)
    • 10 *.proto files (704 LOC)
    • 8 *.tsx files (678 LOC)
    • 11 *.gradle files (516 LOC)
    • 8 *.xml files (459 LOC)
    • 2 *.ipynb files (284 LOC)
    • 6 *.avsc files (239 LOC)
    • 1 *.sql files (121 LOC)
    • 3 *.p8 files (54 LOC)
    • 2 *.thrift files (45 LOC)
    • 1 *.dockerfile files (38 LOC)
    • 1 *.js files (14 LOC)
  • " *.java" is biggest, containing 70.46% of LOC.
  • " *.js" is smallest, containing 0% of LOC.


*.java420095 LOC (70%) 2,188 files
*.py96369 LOC (16%) 440 files
*.go63895 LOC (10%) 404 files
*.dart6488 LOC (1%) 74 files
*.yaml2268 LOC (<1%) 36 files
*.ts2154 LOC (<1%) 14 files
*.kt980 LOC (<1%) 39 files
*.sh797 LOC (<1%) 7 files
*.proto704 LOC (<1%) 10 files
*.tsx678 LOC (<1%) 8 files
*.gradle516 LOC (<1%) 11 files
*.xml459 LOC (<1%) 8 files
*.ipynb284 LOC (<1%) 2 files
*.avsc239 LOC (<1%) 6 files
*.sql121 LOC (<1%) 1 file
*.p854 LOC (<1%) 3 files
*.thrift45 LOC (<1%) 2 files
*.dockerfile38 LOC (<1%) 1 file
*.js14 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 ".*[.]dart" AND any line of content like ".*GENERATED CODE.*DO NOT MODIFY.*".
    • files with paths like ".*/package[-]lock[.]json".
    • files with paths like ".*/generated/.*".
  • 27 files match defined criteria (11,521 LOC, 1.5% vs. main code):
    • 3 *.json files (10,485 LOC)
    • 22 *.dart files (991 LOC)
    • 1 *.g4 files (41 LOC)
    • 1 *.java files (4 LOC)
  • " *.json" is biggest, containing 91.01% of LOC.
  • " *.java" is smallest, containing 0.03% of LOC.


*.json10485 LOC (91%) 3 files
*.dart991 LOC (8%) 22 files
*.g441 LOC (<1%) 1 file
*.java4 LOC (<1%) 1 file
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 ".*[.]sh".
    • files with paths like ".*/package[-]lock[.]json".
    • files with paths like ".*/package[.]json".
    • files with paths like ".*[.]git[a-z]+".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*[.]bat".
    • files with paths like ".*/[.]gitmodules".
    • files with paths like ".*/pom[.]xml".
    • files with paths like ".*[.]dockerfile".
    • files with paths like ".*/assembly[.]xml".
    • files with paths like ".*/jenkins/.*[.]groovy".
    • files with paths like ".*/[.]gitattributes".
  • 330 files match defined criteria (17,946 LOC, 2.3% vs. main code):
    • 249 *.gradle files (12,544 LOC)
    • 71 *.sh files (4,394 LOC)
    • 5 *.xml files (685 LOC)
    • 4 *.bat files (295 LOC)
    • 1 *.dockerfile files (28 LOC)
  • " *.gradle" is biggest, containing 69.9% of LOC.
  • " *.dockerfile" is smallest, containing 0.16% of LOC.


*.gradle12544 LOC (69%) 249 files
*.sh4394 LOC (24%) 71 files
*.xml685 LOC (3%) 5 files
*.bat295 LOC (1%) 4 files
*.dockerfile28 LOC (<1%) 1 file
Other Code
txt
properties
ini
pb
mod
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 ".*/[Ee]xamples/.*".
    • files with paths like ".*[.]svg".
    • files with paths like ".*/go[.]mod".
    • files with paths like ".*[.]txt".
    • files with paths like ".*[.]properties".
    • files with paths like ".*[.]json".
    • files with paths like ".*/[Dd]ocumentation/.*".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*/[Ss]amples/.*".
    • files with paths like ".*/[.]prettierignore".
    • files with paths like ".*/checkstyle[.]xml".
    • files with paths like ".*/checkstyle.*".
    • files with paths like ".*[.]pb".
    • files with paths like ".*/[.]eslintignore".
    • files with paths like ".*[.]ini".
    • files with paths like ".*/vendor/.*".
    • files with paths like ".*/[.]htaccess".
  • 2179 files match defined criteria (225,565 LOC, 29.1% vs. main code):
    • 986 *.md files (83,449 LOC)
    • 110 *.json files (34,640 LOC)
    • 43 *.ipynb files (28,375 LOC)
    • 361 *.py files (18,669 LOC)
    • 264 *.java files (17,371 LOC)
    • 58 *.txt files (17,205 LOC)
    • 116 *.svg files (12,383 LOC)
    • 53 *.go files (4,347 LOC)
    • 24 *.kt files (1,914 LOC)
    • 32 *.dart files (1,325 LOC)
    • 30 *.properties files (1,055 LOC)
    • 56 *.yaml files (1,033 LOC)
    • 14 *.gradle files (952 LOC)
    • 5 *.xml files (868 LOC)
    • 3 *.ini files (637 LOC)
    • 3 *.pb files (384 LOC)
    • 6 *.mod files (369 LOC)
    • 7 *.html files (340 LOC)
    • 3 *.ts files (77 LOC)
    • 1 *.rs files (64 LOC)
    • 1 *.sh files (40 LOC)
    • 1 *.toml files (36 LOC)
    • 2 *.cc files (32 LOC)
  • " *.md" is biggest, containing 37% of LOC.
  • " *.cc" is smallest, containing 0.01% of LOC.


*.md83449 LOC (36%) 986 files
*.json34640 LOC (15%) 110 files
*.ipynb28375 LOC (12%) 43 files
*.py18669 LOC (8%) 361 files
*.java17371 LOC (7%) 264 files
*.txt17205 LOC (7%) 58 files
*.svg12383 LOC (5%) 116 files
*.go4347 LOC (1%) 53 files
*.kt1914 LOC (<1%) 24 files
*.dart1325 LOC (<1%) 32 files
*.properties1055 LOC (<1%) 30 files
*.yaml1033 LOC (<1%) 56 files
*.gradle952 LOC (<1%) 14 files
*.xml868 LOC (<1%) 5 files
*.ini637 LOC (<1%) 3 files
*.pb384 LOC (<1%) 3 files
*.mod369 LOC (<1%) 6 files
*.html340 LOC (<1%) 7 files
*.ts77 LOC (<1%) 3 files
*.rs64 LOC (<1%) 1 file
*.sh40 LOC (<1%) 1 file
*.toml36 LOC (<1%) 1 file
*.cc32 LOC (<1%) 2 files
Analyzers
Info about analyzers used for source code examinations.


2025-05-07 16:01