apache / impala
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
orc
proto
diff
properties
ditamap
ditaval
in
cfg
clang-format
bsl
clang-tidy
gitattributes
flex
ini
snap
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.

main623367 LOC (79%) 3,419 files
test144933 LOC (18%) 665 files
generated0 LOC (0%) 0 files
build and deployment4160 LOC (<1%) 35 files
other13020 LOC (1%) 81 files
Main Code
All manually created or maintained source code that defines logic of the product that is run in a production environment.
proto
flex
in
cfg
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*".
  • 3419 files match defined criteria (623,367 LOC, 100.0% vs. main code):
    • 1,225 *.cc files (318,859 LOC)
    • 836 *.java files (141,341 LOC)
    • 1,119 *.h files (129,975 LOC)
    • 58 *.css files (7,912 LOC)
    • 36 *.py files (7,440 LOC)
    • 34 *.thrift files (5,145 LOC)
    • 37 *.proto files (3,156 LOC)
    • 16 *.js files (2,310 LOC)
    • 37 *.cmake files (2,054 LOC)
    • 2 *.sql files (2,005 LOC)
    • 8 *.cpp files (1,575 LOC)
    • 6 *.c files (960 LOC)
    • 1 *.flex files (572 LOC)
    • 1 *.xml files (44 LOC)
    • 2 *.in files (15 LOC)
    • 1 *.cfg files (4 LOC)
  • " *.cc" is biggest, containing 51.15% of LOC.
  • " *.cfg" is smallest, containing 0% of LOC.


*.cc318859 LOC (51%) 1,225 files
*.java141341 LOC (22%) 836 files
*.h129975 LOC (20%) 1,119 files
*.css7912 LOC (1%) 58 files
*.py7440 LOC (1%) 36 files
*.thrift5145 LOC (<1%) 34 files
*.proto3156 LOC (<1%) 37 files
*.js2310 LOC (<1%) 16 files
*.cmake2054 LOC (<1%) 37 files
*.sql2005 LOC (<1%) 2 files
*.cpp1575 LOC (<1%) 8 files
*.c960 LOC (<1%) 6 files
*.flex572 LOC (<1%) 1 file
*.xml44 LOC (<1%) 1 file
*.in15 LOC (<1%) 2 files
*.cfg4 LOC (<1%) 1 file
Test Code
Used only for testing of the product. Normally not deployed in a production environment.
proto
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 ".*/[Tt]ests/.*".
    • files with paths like ".*[.]snap".
    • files with paths like ".*[.][Tt]est[.].*".
    • files with paths like ".*[.]test[.].*".
  • 665 files match defined criteria (144,933 LOC, 23.3% vs. main code):
    • 401 *.py files (75,982 LOC)
    • 161 *.java files (56,495 LOC)
    • 22 *.cc files (4,325 LOC)
    • 30 *.h files (4,128 LOC)
    • 30 *.xml files (2,443 LOC)
    • 2 *.css files (600 LOC)
    • 5 *.js files (566 LOC)
    • 7 *.proto files (286 LOC)
    • 3 *.sh files (72 LOC)
    • 4 *.sql files (36 LOC)
  • " *.py" is biggest, containing 52.43% of LOC.
  • " *.sql" is smallest, containing 0.02% of LOC.


*.py75982 LOC (52%) 401 files
*.java56495 LOC (38%) 161 files
*.cc4325 LOC (2%) 22 files
*.h4128 LOC (2%) 30 files
*.xml2443 LOC (1%) 30 files
*.css600 LOC (<1%) 2 files
*.js566 LOC (<1%) 5 files
*.proto286 LOC (<1%) 7 files
*.sh72 LOC (<1%) 3 files
*.sql36 LOC (<1%) 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 ".*[.]git[a-z]+".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*[.]sh".
    • files with paths like ".*/[.]gitattributes".
    • files with paths like ".*/package[.]json".
  • 35 files match defined criteria (4,160 LOC, 0.7% vs. main code):
    • 19 *.xml files (2,542 LOC)
    • 16 *.sh files (1,618 LOC)
  • " *.xml" is biggest, containing 61.11% of LOC.
  • " *.sh" is smallest, containing 38.89% of LOC.


*.xml2542 LOC (61%) 19 files
*.sh1618 LOC (38%) 16 files
Other Code
txt
properties
ini
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*[.]properties".
    • files with paths like ".*[.]txt".
    • files with paths like ".*[.]json".
    • files with paths like ".*/README[.][a-z0-9]+".
    • files with paths like ".*[.]md".
    • files with paths like ".*[.]ini".
    • files with paths like ".*/LICENSE[.][a-z0-9]+".
    • files with paths like ".*[.]diff".
  • 81 files match defined criteria (13,020 LOC, 2.1% vs. main code):
    • 61 *.txt files (7,449 LOC)
    • 5 *.json files (4,271 LOC)
    • 12 *.md files (1,245 LOC)
    • 2 *.properties files (50 LOC)
    • 1 *.ini files (5 LOC)
  • " *.txt" is biggest, containing 57.21% of LOC.
  • " *.ini" is smallest, containing 0.04% of LOC.


*.txt7449 LOC (57%) 61 files
*.json4271 LOC (32%) 5 files
*.md1245 LOC (9%) 12 files
*.properties50 LOC (<1%) 2 files
*.ini5 LOC (<1%) 1 file
Analyzers
Info about analyzers used for source code examinations.


2025-05-07 16:02