spotify / 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
properties
txt
proto
pxd
sass
ini
p8
gitattributes
cfg
mod
htaccess
in
gitmodules
eslintignore
pb
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.

main497850 LOC (50%) 4,769 files
test366918 LOC (36%) 2,118 files
generated45 LOC (<1%) 2 files
build and deployment11655 LOC (1%) 211 files
other118445 LOC (11%) 993 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
cfg
in
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*".
  • 4769 files match defined criteria (497,850 LOC, 100.0% vs. main code):
    • 3,081 *.java files (327,793 LOC)
    • 429 *.py files (77,714 LOC)
    • 334 *.go files (52,848 LOC)
    • 96 *.scss files (8,876 LOC)
    • 493 *.yaml files (7,133 LOC)
    • 18 *.proto files (4,770 LOC)
    • 103 *.sql files (4,461 LOC)
    • 65 *.html files (3,337 LOC)
    • 21 *.groovy files (2,952 LOC)
    • 22 *.js files (2,309 LOC)
    • 43 *.kt files (1,225 LOC)
    • 9 *.xml files (749 LOC)
    • 13 *.pxd files (622 LOC)
    • 8 *.tsx files (613 LOC)
    • 4 *.kts files (574 LOC)
    • 9 *.sass files (471 LOC)
    • 5 *.ts files (433 LOC)
    • 3 *.pyx files (367 LOC)
    • 1 *.ftl files (329 LOC)
    • 1 *.toml files (89 LOC)
    • 5 *.css files (52 LOC)
    • 2 *.h files (49 LOC)
    • 2 *.cfg files (41 LOC)
    • 1 *.rdf files (23 LOC)
    • 1 *.in files (20 LOC)
  • " *.java" is biggest, containing 65.84% of LOC.
  • " *.in" is smallest, containing 0% of LOC.


*.java327793 LOC (65%) 3,081 files
*.py77714 LOC (15%) 429 files
*.go52848 LOC (10%) 334 files
*.scss8876 LOC (1%) 96 files
*.yaml7133 LOC (1%) 493 files
*.proto4770 LOC (<1%) 18 files
*.sql4461 LOC (<1%) 103 files
*.html3337 LOC (<1%) 65 files
*.groovy2952 LOC (<1%) 21 files
*.js2309 LOC (<1%) 22 files
*.kt1225 LOC (<1%) 43 files
*.xml749 LOC (<1%) 9 files
*.pxd622 LOC (<1%) 13 files
*.tsx613 LOC (<1%) 8 files
*.kts574 LOC (<1%) 4 files
*.sass471 LOC (<1%) 9 files
*.ts433 LOC (<1%) 5 files
*.pyx367 LOC (<1%) 3 files
*.ftl329 LOC (<1%) 1 file
*.toml89 LOC (<1%) 1 file
*.css52 LOC (<1%) 5 files
*.h49 LOC (<1%) 2 files
*.cfg41 LOC (<1%) 2 files
*.rdf23 LOC (<1%) 1 file
*.in20 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 ".*/[Tt]est/.*".
    • files with paths like ".*_tests[.].*".
    • files with paths like ".*/[Tt]ests/.*".
    • files with paths like ".*/test_.*".
    • 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 ".*/test[.].*".
    • files with paths like ".*[-]tests/.*".
    • files with paths like ".*[-]tests[-].*".
    • files with paths like ".*[-]test[-].*".
    • files with paths like ".*/testing[.].*".
  • 2118 files match defined criteria (366,918 LOC, 73.7% vs. main code):
    • 1,626 *.java files (288,834 LOC)
    • 242 *.py files (54,263 LOC)
    • 159 *.go files (19,738 LOC)
    • 38 *.kt files (977 LOC)
    • 9 *.sh files (651 LOC)
    • 7 *.tsx files (581 LOC)
    • 7 *.proto files (534 LOC)
    • 13 *.gradle files (502 LOC)
    • 2 *.ts files (273 LOC)
    • 1 *.ipynb files (178 LOC)
    • 4 *.xml files (118 LOC)
    • 2 *.yaml files (117 LOC)
    • 3 *.avsc files (65 LOC)
    • 2 *.thrift files (45 LOC)
    • 2 *.p8 files (28 LOC)
    • 1 *.js files (14 LOC)
  • " *.java" is biggest, containing 78.72% of LOC.
  • " *.js" is smallest, containing 0% of LOC.


*.java288834 LOC (78%) 1,626 files
*.py54263 LOC (14%) 242 files
*.go19738 LOC (5%) 159 files
*.kt977 LOC (<1%) 38 files
*.sh651 LOC (<1%) 9 files
*.tsx581 LOC (<1%) 7 files
*.proto534 LOC (<1%) 7 files
*.gradle502 LOC (<1%) 13 files
*.ts273 LOC (<1%) 2 files
*.ipynb178 LOC (<1%) 1 file
*.xml118 LOC (<1%) 4 files
*.yaml117 LOC (<1%) 2 files
*.avsc65 LOC (<1%) 3 files
*.thrift45 LOC (<1%) 2 files
*.p828 LOC (<1%) 2 files
*.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 ".*/generated/.*".
  • 2 files match defined criteria (45 LOC, 0.0% vs. main code):
    • 1 *.g4 files (41 LOC)
    • 1 *.java files (4 LOC)
  • " *.g4" is biggest, containing 91.11% of LOC.
  • " *.java" is smallest, containing 8.89% of LOC.


*.g441 LOC (91%) 1 file
*.java4 LOC (8%) 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 ".*[.]sh".
    • files with paths like ".*[.]gradle".
    • files with paths like ".*/package[.]json".
    • files with paths like ".*/pom[.]xml".
    • files with paths like ".*[.]bat".
    • files with paths like ".*[.]git[a-z]+".
    • files with paths like ".*/[.]gitattributes".
    • files with paths like ".*/[.]gitmodules".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*/jenkins/.*[.]groovy".
    • files with paths like ".*/assembly[.]xml".
  • 211 files match defined criteria (11,655 LOC, 2.3% vs. main code):
    • 159 *.gradle files (7,488 LOC)
    • 44 *.sh files (3,265 LOC)
    • 5 *.xml files (678 LOC)
    • 3 *.bat files (224 LOC)
  • " *.gradle" is biggest, containing 64.25% of LOC.
  • " *.bat" is smallest, containing 1.92% of LOC.


*.gradle7488 LOC (64%) 159 files
*.sh3265 LOC (28%) 44 files
*.xml678 LOC (5%) 5 files
*.bat224 LOC (1%) 3 files
Other Code
txt
properties
pb
ini
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 ".*[.]txt".
    • files with paths like ".*/[.]prettierignore".
    • files with paths like ".*[.]json".
    • files with paths like ".*/[.]eslintignore".
    • files with paths like ".*[.]ini".
    • files with paths like ".*[.]properties".
    • files with paths like ".*[.]pb".
    • files with paths like ".*/checkstyle[.]xml".
    • files with paths like ".*/checkstyle.*".
    • files with paths like ".*/go[.]mod".
    • files with paths like ".*/[Dd]ocumentation/.*".
    • files with paths like ".*[.]svg".
    • files with paths like ".*/[.]htaccess".
    • files with paths like ".*/[.]gitignore".
  • 993 files match defined criteria (118,445 LOC, 23.8% vs. main code):
    • 456 *.md files (43,650 LOC)
    • 19 *.txt files (15,825 LOC)
    • 35 *.json files (14,913 LOC)
    • 122 *.java files (11,717 LOC)
    • 147 *.py files (10,095 LOC)
    • 18 *.ipynb files (8,600 LOC)
    • 77 *.svg files (6,810 LOC)
    • 24 *.kt files (1,924 LOC)
    • 28 *.go files (1,689 LOC)
    • 25 *.properties files (871 LOC)
    • 4 *.xml files (777 LOC)
    • 5 *.gradle files (387 LOC)
    • 1 *.pb files (360 LOC)
    • 7 *.html files (335 LOC)
    • 3 *.ini files (333 LOC)
    • 18 *.yaml files (63 LOC)
    • 1 *.sh files (36 LOC)
    • 2 *.cc files (32 LOC)
    • 1 *.mod files (28 LOC)
  • " *.md" is biggest, containing 36.85% of LOC.
  • " *.mod" is smallest, containing 0.02% of LOC.


*.md43650 LOC (36%) 456 files
*.txt15825 LOC (13%) 19 files
*.json14913 LOC (12%) 35 files
*.java11717 LOC (9%) 122 files
*.py10095 LOC (8%) 147 files
*.ipynb8600 LOC (7%) 18 files
*.svg6810 LOC (5%) 77 files
*.kt1924 LOC (1%) 24 files
*.go1689 LOC (1%) 28 files
*.properties871 LOC (<1%) 25 files
*.xml777 LOC (<1%) 4 files
*.gradle387 LOC (<1%) 5 files
*.pb360 LOC (<1%) 1 file
*.html335 LOC (<1%) 7 files
*.ini333 LOC (<1%) 3 files
*.yaml63 LOC (<1%) 18 files
*.sh36 LOC (<1%) 1 file
*.cc32 LOC (<1%) 2 files
*.mod28 LOC (<1%) 1 file
Analyzers
Info about analyzers used for source code examinations.


2025-01-17 11:41