aws / aws-parallelcluster
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
patch
cfg
in
jinja2
properties
gitattributes
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.

main56391 LOC (35%) 340 files
test88051 LOC (54%) 814 files
generated0 LOC (0%) 0 files
build and deployment1220 LOC (<1%) 23 files
other14798 LOC (9%) 206 files
Main Code
All manually created or maintained source code that defines logic of the product that is run in a production environment.
in
cfg
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*".
  • 340 files match defined criteria (56,391 LOC, 100.0% vs. main code):
    • 319 *.py files (45,513 LOC)
    • 15 *.yaml files (10,844 LOC)
    • 3 *.kts files (27 LOC)
    • 2 *.in files (5 LOC)
    • 1 *.cfg files (2 LOC)
  • " *.py" is biggest, containing 80.71% of LOC.
  • " *.cfg" is smallest, containing 0% of LOC.


*.py45513 LOC (80%) 319 files
*.yaml10844 LOC (19%) 15 files
*.kts27 LOC (<1%) 3 files
*.in5 LOC (<1%) 2 files
*.cfg2 LOC (<1%) 1 file
Test Code
Used only for testing of the product. Normally not deployed in a production environment.
jinja2
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*/[Tt]ests/.*".
    • 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 ".*/test[.].*".
  • 814 files match defined criteria (88,051 LOC, 156.1% vs. main code):
    • 358 *.py files (63,446 LOC)
    • 357 *.yaml files (22,729 LOC)
    • 92 *.sh files (1,624 LOC)
    • 2 *.jinja files (123 LOC)
    • 2 *.c files (70 LOC)
    • 2 *.jinja2 files (41 LOC)
    • 1 *.xml files (18 LOC)
  • " *.py" is biggest, containing 72.06% of LOC.
  • " *.xml" is smallest, containing 0.02% of LOC.


*.py63446 LOC (72%) 358 files
*.yaml22729 LOC (25%) 357 files
*.sh1624 LOC (1%) 92 files
*.jinja123 LOC (<1%) 2 files
*.c70 LOC (<1%) 2 files
*.jinja241 LOC (<1%) 2 files
*.xml18 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 ".*[.]sh".
    • files with paths like ".*[.]git[a-z]+".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*/[.]gitattributes".
    • files with paths like ".*[.]gradle".
    • files with paths like ".*[.]bat".
  • 23 files match defined criteria (1,220 LOC, 2.2% vs. main code):
    • 21 *.sh files (1,085 LOC)
    • 1 *.bat files (68 LOC)
    • 1 *.gradle files (67 LOC)
  • " *.sh" is biggest, containing 88.93% of LOC.
  • " *.gradle" is smallest, containing 5.49% of LOC.


*.sh1085 LOC (88%) 21 files
*.bat68 LOC (5%) 1 file
*.gradle67 LOC (5%) 1 file
Other Code
txt
ini
patch
cfg
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 ".*/[.]gitignore".
    • files with paths like ".*[.]txt".
    • files with paths like ".*[.]ini".
    • files with paths like ".*[.]patch".
    • files with paths like ".*/LICENSE[.][a-z0-9]+".
    • files with paths like ".*/[Ee]xamples/.*".
  • 206 files match defined criteria (14,798 LOC, 26.2% vs. main code):
    • 77 *.json files (5,302 LOC)
    • 95 *.txt files (4,876 LOC)
    • 9 *.md files (3,203 LOC)
    • 19 *.ini files (1,330 LOC)
    • 4 *.patch files (74 LOC)
    • 1 *.cfg files (12 LOC)
    • 1 *.properties files (1 LOC)
  • " *.json" is biggest, containing 35.83% of LOC.
  • " *.properties" is smallest, containing 0.01% of LOC.


*.json5302 LOC (35%) 77 files
*.txt4876 LOC (32%) 95 files
*.md3203 LOC (21%) 9 files
*.ini1330 LOC (8%) 19 files
*.patch74 LOC (<1%) 4 files
*.cfg12 LOC (<1%) 1 file
*.properties1 LOC (<1%) 1 file
Analyzers
Info about analyzers used for source code examinations.


2025-05-03 20:40