apache / arrow-adbc
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
in
rd
csproj
rmd
pyi
patch
clang-format
props
gitattributes
mod
editorconfig
gitmodules
clang-tidy
targets
vala
pxd
cfg
tpl
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.

main120137 LOC (67%) 633 files
test37393 LOC (20%) 265 files
generated145 LOC (<1%) 1 file
build and deployment4947 LOC (2%) 96 files
other16343 LOC (9%) 118 files
Main Code
All manually created or maintained source code that defines logic of the product that is run in a production environment.
in
tpl
pxd
pyi
vala
props
targets
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*".
  • 633 files match defined criteria (120,137 LOC, 100.0% vs. main code):
    • 270 *.cs files (52,241 LOC)
    • 49 *.go files (18,137 LOC)
    • 26 *.cc files (13,491 LOC)
    • 52 *.h files (8,610 LOC)
    • 71 *.java files (6,909 LOC)
    • 23 *.rs files (6,825 LOC)
    • 19 *.c files (4,564 LOC)
    • 39 *.py files (2,444 LOC)
    • 10 *.cmake files (1,693 LOC)
    • 26 *.in files (1,257 LOC)
    • 3 *.pyx files (1,180 LOC)
    • 11 *.toml files (473 LOC)
    • 9 *.ps1 files (458 LOC)
    • 2 *.yaml files (441 LOC)
    • 11 *.rb files (334 LOC)
    • 1 *.tpl files (306 LOC)
    • 1 *.pxd files (243 LOC)
    • 4 *.sql files (197 LOC)
    • 2 *.pyi files (192 LOC)
    • 1 *.vala files (54 LOC)
    • 1 *.props files (42 LOC)
    • 1 *.gemspec files (37 LOC)
    • 1 *.targets files (9 LOC)
  • " *.cs" is biggest, containing 43.48% of LOC.
  • " *.targets" is smallest, containing 0.01% of LOC.


*.cs52241 LOC (43%) 270 files
*.go18137 LOC (15%) 49 files
*.cc13491 LOC (11%) 26 files
*.h8610 LOC (7%) 52 files
*.java6909 LOC (5%) 71 files
*.rs6825 LOC (5%) 23 files
*.c4564 LOC (3%) 19 files
*.py2444 LOC (2%) 39 files
*.cmake1693 LOC (1%) 10 files
*.in1257 LOC (1%) 26 files
*.pyx1180 LOC (<1%) 3 files
*.toml473 LOC (<1%) 11 files
*.ps1458 LOC (<1%) 9 files
*.yaml441 LOC (<1%) 2 files
*.rb334 LOC (<1%) 11 files
*.tpl306 LOC (<1%) 1 file
*.pxd243 LOC (<1%) 1 file
*.sql197 LOC (<1%) 4 files
*.pyi192 LOC (<1%) 2 files
*.vala54 LOC (<1%) 1 file
*.props42 LOC (<1%) 1 file
*.gemspec37 LOC (<1%) 1 file
*.targets9 LOC (<1%) 1 file
Test Code
Used only for testing of the product. Normally not deployed in a production environment.
csproj
props
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 ".*/test_.*".
    • files with paths like ".*/test[.].*".
    • files with paths like ".*[.][Tt]ests[.].*".
    • files with paths like ".*[.][Tt]ests/.*".
  • 265 files match defined criteria (37,393 LOC, 31.1% vs. main code):
    • 113 *.cs files (13,324 LOC)
    • 14 *.go files (8,554 LOC)
    • 15 *.cc files (6,640 LOC)
    • 31 *.py files (2,309 LOC)
    • 32 *.java files (2,136 LOC)
    • 15 *.rb files (1,620 LOC)
    • 5 *.rs files (1,283 LOC)
    • 9 *.sql files (569 LOC)
    • 12 *.csproj files (392 LOC)
    • 11 *.sh files (362 LOC)
    • 3 *.ps1 files (154 LOC)
    • 1 *.bat files (32 LOC)
    • 3 *.c files (9 LOC)
    • 1 *.props files (9 LOC)
  • " *.cs" is biggest, containing 35.63% of LOC.
  • " *.props" is smallest, containing 0.02% of LOC.


*.cs13324 LOC (35%) 113 files
*.go8554 LOC (22%) 14 files
*.cc6640 LOC (17%) 15 files
*.py2309 LOC (6%) 31 files
*.java2136 LOC (5%) 32 files
*.rb1620 LOC (4%) 15 files
*.rs1283 LOC (3%) 5 files
*.sql569 LOC (1%) 9 files
*.csproj392 LOC (1%) 12 files
*.sh362 LOC (<1%) 11 files
*.ps1154 LOC (<1%) 3 files
*.bat32 LOC (<1%) 1 file
*.c9 LOC (<1%) 3 files
*.props9 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 ".*/gen/.*[.]go".
  • 1 file matches defined criteria (145 LOC, 0.1% vs. main code). All matches are in *.go files.


*.go145 LOC (100%) 1 file
Build and Deployment Code
Source code used to configure or support build and deployment process.
csproj
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*/pom[.]xml".
    • files with paths like ".*[.]git[a-z]+".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*[.]sh".
    • files with paths like ".*[.]bat".
    • files with paths like ".*[.]dockerfile".
    • files with paths like ".*/[.]gitattributes".
    • files with paths like ".*/[.]gitmodules".
    • files with paths like ".*[.]csproj".
  • 96 files match defined criteria (4,947 LOC, 4.1% vs. main code):
    • 64 *.sh files (3,470 LOC)
    • 12 *.xml files (862 LOC)
    • 9 *.csproj files (231 LOC)
    • 8 *.dockerfile files (220 LOC)
    • 3 *.bat files (164 LOC)
  • " *.sh" is biggest, containing 70.14% of LOC.
  • " *.bat" is smallest, containing 3.32% of LOC.


*.sh3470 LOC (70%) 64 files
*.xml862 LOC (17%) 12 files
*.csproj231 LOC (4%) 9 files
*.dockerfile220 LOC (4%) 8 files
*.bat164 LOC (3%) 3 files
Other Code
txt
mod
patch
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.]txt".
    • files with paths like ".*[.]md".
    • files with paths like ".*/README[.][a-z0-9]+".
    • files with paths like ".*[.]json".
    • files with paths like ".*/vendor/.*".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*/LICENSE[.][a-z0-9]+".
    • files with paths like ".*[.]patch".
    • files with paths like ".*[.]editorconfig".
    • files with paths like ".*[.](rst|rest|resttxt|rsttxt)".
    • files with paths like ".*[.]markdown".
    • files with paths like ".*/go[.]mod".
  • 118 files match defined criteria (16,343 LOC, 13.6% vs. main code):
    • 41 *.txt files (10,994 LOC)
    • 60 *.md files (4,599 LOC)
    • 14 *.json files (543 LOC)
    • 1 *.mod files (124 LOC)
    • 2 *.patch files (83 LOC)
  • " *.txt" is biggest, containing 67.27% of LOC.
  • " *.patch" is smallest, containing 0.51% of LOC.


*.txt10994 LOC (67%) 41 files
*.md4599 LOC (28%) 60 files
*.json543 LOC (3%) 14 files
*.mod124 LOC (<1%) 1 file
*.patch83 LOC (<1%) 2 files
Analyzers
Info about analyzers used for source code examinations.


2025-05-07 20:39