apache / openwhisk
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
ini
cfg
properties
gitattributes
csproj
proto
lua
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.

main40125 LOC (37%) 303 files
test54481 LOC (50%) 383 files
generated29 LOC (<1%) 1 file
build and deployment1921 LOC (1%) 71 files
other11757 LOC (10%) 94 files
Main Code
All manually created or maintained source code that defines logic of the product that is run in a production environment.
proto
cfg
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*".
  • 303 files match defined criteria (40,125 LOC, 100.0% vs. main code):
    • 263 *.scala files (34,999 LOC)
    • 12 *.js files (3,129 LOC)
    • 13 *.py files (947 LOC)
    • 5 *.groovy files (356 LOC)
    • 4 *.xml files (332 LOC)
    • 1 *.css files (181 LOC)
    • 1 *.html files (100 LOC)
    • 1 *.proto files (58 LOC)
    • 2 *.cfg files (21 LOC)
    • 1 *.java files (2 LOC)
  • " *.scala" is biggest, containing 87.22% of LOC.
  • " *.java" is smallest, containing 0% of LOC.


*.scala34999 LOC (87%) 263 files
*.js3129 LOC (7%) 12 files
*.py947 LOC (2%) 13 files
*.groovy356 LOC (<1%) 5 files
*.xml332 LOC (<1%) 4 files
*.css181 LOC (<1%) 1 file
*.html100 LOC (<1%) 1 file
*.proto58 LOC (<1%) 1 file
*.cfg21 LOC (<1%) 2 files
*.java2 LOC (<1%) 1 file
Test Code
Used only for testing of the product. Normally not deployed in a production environment.
csproj
lua
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*UnitTests[.][a-zA-Z0-9_]+".
    • files with paths like ".*/[Tt]ests/.*".
    • files with paths like ".*/[Tt]est/.*".
    • files with paths like ".*[.][Tt]ests/.*".
  • 383 files match defined criteria (54,481 LOC, 135.8% vs. main code):
    • 275 *.scala files (52,466 LOC)
    • 8 *.java files (556 LOC)
    • 56 *.js files (555 LOC)
    • 8 *.gradle files (406 LOC)
    • 9 *.sh files (119 LOC)
    • 9 *.swift files (101 LOC)
    • 1 *.mustache files (85 LOC)
    • 3 *.xml files (63 LOC)
    • 2 *.yaml files (63 LOC)
    • 9 *.py files (41 LOC)
    • 1 *.cs files (17 LOC)
    • 1 *.csproj files (8 LOC)
    • 1 *.lua files (1 LOC)
  • " *.scala" is biggest, containing 96.3% of LOC.
  • " *.lua" is smallest, containing 0% of LOC.


*.scala52466 LOC (96%) 275 files
*.java556 LOC (1%) 8 files
*.js555 LOC (1%) 56 files
*.gradle406 LOC (<1%) 8 files
*.sh119 LOC (<1%) 9 files
*.swift101 LOC (<1%) 9 files
*.mustache85 LOC (<1%) 1 file
*.xml63 LOC (<1%) 3 files
*.yaml63 LOC (<1%) 2 files
*.py41 LOC (<1%) 9 files
*.cs17 LOC (<1%) 1 file
*.csproj8 LOC (<1%) 1 file
*.lua1 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 ".*/package[-]lock[.]json".
  • 1 file matches defined criteria (29 LOC, 0.1% vs. main code). All matches are in *.json files.


*.json29 LOC (100%) 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[.]json".
    • files with paths like ".*/jenkins/.*[.]groovy".
    • files with paths like ".*/package[-]lock[.]json".
    • files with paths like ".*[.]csproj".
    • files with paths like ".*[.]git[a-z]+".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*/[.]gitattributes".
    • files with paths like ".*[.]bat".
  • 71 files match defined criteria (1,921 LOC, 4.8% vs. main code):
    • 55 *.sh files (995 LOC)
    • 14 *.gradle files (824 LOC)
    • 1 *.bat files (68 LOC)
    • 1 *.groovy files (34 LOC)
  • " *.sh" is biggest, containing 51.8% of LOC.
  • " *.groovy" is smallest, containing 1.77% of LOC.


*.sh995 LOC (51%) 55 files
*.gradle824 LOC (42%) 14 files
*.bat68 LOC (3%) 1 file
*.groovy34 LOC (1%) 1 file
Other Code
txt
ini
properties
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.]properties".
    • files with paths like ".*[.]md".
    • files with paths like ".*/README[.][a-z0-9]+".
    • files with paths like ".*[.]json".
    • files with paths like ".*/[.]dockerignore".
    • files with paths like ".*[.]txt".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*[.]ini".
    • files with paths like ".*/LICENSE[.][a-z0-9]+".
  • 94 files match defined criteria (11,757 LOC, 29.3% vs. main code):
    • 36 *.json files (7,661 LOC)
    • 33 *.md files (3,282 LOC)
    • 18 *.txt files (615 LOC)
    • 6 *.ini files (161 LOC)
    • 1 *.properties files (38 LOC)
  • " *.json" is biggest, containing 65.16% of LOC.
  • " *.properties" is smallest, containing 0.32% of LOC.


*.json7661 LOC (65%) 36 files
*.md3282 LOC (27%) 33 files
*.txt615 LOC (5%) 18 files
*.ini161 LOC (1%) 6 files
*.properties38 LOC (<1%) 1 file
Analyzers
Info about analyzers used for source code examinations.


2025-05-07 15:58