GoogleCloudPlatform / ramble
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
tpl
ninja
pyi
in
txt
csh
patch
sig
tcl
mk
cfg
ini
fish
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.

main90728 LOC (63%) 646 files
test49316 LOC (34%) 418 files
generated0 LOC (0%) 0 files
build and deployment445 LOC (<1%) 5 files
other2996 LOC (2%) 46 files
Main Code
All manually created or maintained source code that defines logic of the product that is run in a production environment.
fish
tpl
in
csh
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*".
  • 646 files match defined criteria (90,728 LOC, 100.0% vs. main code):
    • 576 *.py files (87,814 LOC)
    • 31 *.yaml files (726 LOC)
    • 1 *.fish files (574 LOC)
    • 1 *.bash files (563 LOC)
    • 28 *.tpl files (415 LOC)
    • 3 *.in files (296 LOC)
    • 3 *.csh files (231 LOC)
    • 2 *.toml files (99 LOC)
    • 1 *.xml files (10 LOC)
  • " *.py" is biggest, containing 96.79% of LOC.
  • " *.xml" is smallest, containing 0.01% of LOC.


*.py87814 LOC (96%) 576 files
*.yaml726 LOC (<1%) 31 files
*.fish574 LOC (<1%) 1 file
*.bash563 LOC (<1%) 1 file
*.tpl415 LOC (<1%) 28 files
*.in296 LOC (<1%) 3 files
*.csh231 LOC (<1%) 3 files
*.toml99 LOC (<1%) 2 files
*.xml10 LOC (<1%) 1 file
Test Code
Used only for testing of the product. Normally not deployed in a production environment.
sig
ninja
tcl
mk
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*/[Tt]ests/.*".
    • files with paths like ".*/test_.*".
    • files with paths like ".*/test[.].*".
    • files with paths like ".*_test[.].*".
    • files with paths like ".*/[Tt]est/.*".
    • files with paths like ".*[-]tests/.*".
  • 418 files match defined criteria (49,316 LOC, 54.4% vs. main code):
    • 339 *.py files (47,197 LOC)
    • 3 *.c files (1,225 LOC)
    • 50 *.yaml files (685 LOC)
    • 1 *.sig files (91 LOC)
    • 5 *.html files (50 LOC)
    • 12 *.ninja files (49 LOC)
    • 6 *.sh files (14 LOC)
    • 1 *.tcl files (4 LOC)
    • 1 *.mk files (1 LOC)
  • " *.py" is biggest, containing 95.7% of LOC.
  • " *.mk" is smallest, containing 0% of LOC.


*.py47197 LOC (95%) 339 files
*.c1225 LOC (2%) 3 files
*.yaml685 LOC (1%) 50 files
*.sig91 LOC (<1%) 1 file
*.html50 LOC (<1%) 5 files
*.ninja49 LOC (<1%) 12 files
*.sh14 LOC (<1%) 6 files
*.tcl4 LOC (<1%) 1 file
*.mk1 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 ".*[.]git[a-z]+".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*[.]sh".
    • files with paths like ".*[.]mk".
  • 5 files match defined criteria (445 LOC, 0.5% vs. main code). All matches are in *.sh files.


*.sh445 LOC (100%) 5 files
Other Code
tpl
ini
txt
patch
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.]txt".
    • files with paths like ".*/[Ee]xamples/.*".
    • files with paths like ".*[.]md".
    • files with paths like ".*/README[.][a-z0-9]+".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*[.]json".
    • files with paths like ".*[.](rst|rest|resttxt|rsttxt)".
    • files with paths like ".*[.]patch".
    • files with paths like ".*[.]ini".
  • 46 files match defined criteria (2,996 LOC, 3.3% vs. main code):
    • 28 *.yaml files (1,193 LOC)
    • 7 *.json files (926 LOC)
    • 1 *.rst files (525 LOC)
    • 4 *.md files (251 LOC)
    • 2 *.tpl files (42 LOC)
    • 1 *.ini files (30 LOC)
    • 2 *.txt files (22 LOC)
    • 1 *.patch files (7 LOC)
  • " *.yaml" is biggest, containing 39.82% of LOC.
  • " *.patch" is smallest, containing 0.23% of LOC.


*.yaml1193 LOC (39%) 28 files
*.json926 LOC (30%) 7 files
*.rst525 LOC (17%) 1 file
*.md251 LOC (8%) 4 files
*.tpl42 LOC (1%) 2 files
*.ini30 LOC (1%) 1 file
*.txt22 LOC (<1%) 2 files
*.patch7 LOC (<1%) 1 file
Analyzers
Info about analyzers used for source code examinations.


2025-05-04 15:52