azure / azure-sdk-tools
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
csproj
cshtml
mod
tpl
patch
editorconfig
in
props
targets
jsonl
plist
mjs
prettierignore
cmd
cfg
snap
handlebars
gitattributes
dotsettings
ini
proj
npmrc
clang-format
eslintignore
webmanifest
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.

main156720 LOC (26%) 1,661 files
test53354 LOC (9%) 440 files
generated50613 LOC (8%) 24 files
build and deployment7436 LOC (1%) 77 files
other321124 LOC (54%) 1,493 files
Main Code
All manually created or maintained source code that defines logic of the product that is run in a production environment.
cshtml
targets
props
handlebars
webmanifest
mjs
cmd
in
proj
cfg
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*".
  • 1661 files match defined criteria (156,720 LOC, 100.0% vs. main code):
    • 777 *.cs files (65,651 LOC)
    • 248 *.ts files (25,754 LOC)
    • 148 *.ps1 files (18,791 LOC)
    • 167 *.py files (18,245 LOC)
    • 17 *.cpp files (5,953 LOC)
    • 71 *.java files (5,267 LOC)
    • 40 *.cshtml files (3,757 LOC)
    • 43 *.scss files (3,449 LOC)
    • 36 *.swift files (2,387 LOC)
    • 10 *.go files (1,995 LOC)
    • 23 *.html files (1,360 LOC)
    • 8 *.hpp files (901 LOC)
    • 23 *.yaml files (698 LOC)
    • 3 *.cmake files (454 LOC)
    • 1 *.xml files (401 LOC)
    • 6 *.js files (376 LOC)
    • 1 *.psm1 files (263 LOC)
    • 1 *.css files (247 LOC)
    • 4 *.targets files (247 LOC)
    • 6 *.props files (160 LOC)
    • 1 *.rs files (68 LOC)
    • 2 *.handlebars files (62 LOC)
    • 1 *.webmanifest files (59 LOC)
    • 5 *.toml files (51 LOC)
    • 4 *.mjs files (49 LOC)
    • 3 *.cmd files (36 LOC)
    • 6 *.in files (17 LOC)
    • 2 *.proj files (10 LOC)
    • 3 *.cfg files (6 LOC)
    • 1 *.less files (6 LOC)
  • " *.cs" is biggest, containing 41.89% of LOC.
  • " *.less" is smallest, containing 0% of LOC.


*.cs65651 LOC (41%) 777 files
*.ts25754 LOC (16%) 248 files
*.ps118791 LOC (11%) 148 files
*.py18245 LOC (11%) 167 files
*.cpp5953 LOC (3%) 17 files
*.java5267 LOC (3%) 71 files
*.cshtml3757 LOC (2%) 40 files
*.scss3449 LOC (2%) 43 files
*.swift2387 LOC (1%) 36 files
*.go1995 LOC (1%) 10 files
*.html1360 LOC (<1%) 23 files
*.hpp901 LOC (<1%) 8 files
*.yaml698 LOC (<1%) 23 files
*.cmake454 LOC (<1%) 3 files
*.xml401 LOC (<1%) 1 file
*.js376 LOC (<1%) 6 files
*.psm1263 LOC (<1%) 1 file
*.css247 LOC (<1%) 1 file
*.targets247 LOC (<1%) 4 files
*.props160 LOC (<1%) 6 files
*.rs68 LOC (<1%) 1 file
*.handlebars62 LOC (<1%) 2 files
*.webmanifest59 LOC (<1%) 1 file
*.toml51 LOC (<1%) 5 files
*.mjs49 LOC (<1%) 4 files
*.cmd36 LOC (<1%) 3 files
*.in17 LOC (<1%) 6 files
*.proj10 LOC (<1%) 2 files
*.cfg6 LOC (<1%) 3 files
*.less6 LOC (<1%) 1 file
Test Code
Used only for testing of the product. Normally not deployed in a production environment.
csproj
tpl
snap
targets
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.][Tt]ests/.*".
    • files with paths like ".*[.][Tt]ests[.].*".
    • files with paths like ".*/[Tt]est/.*".
    • 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 ".*/vitest[.].*".
    • files with paths like ".*/test_.*".
    • files with paths like ".*/[Ss]pecs/.*".
    • files with paths like ".*[.]spec[.]ts".
    • files with paths like ".*/TestData/.*".
    • files with paths like ".*/test[.].*".
    • files with paths like ".*/IntegrationTests?/.*".
    • files with paths like ".*/jest[.][a-zA-Z0-9\.]+".
    • files with paths like ".*/karma[.]conf[.]js".
    • files with paths like ".*/mock[a-zA-Z0-9_\- ]+/.*".
    • files with paths like ".*[.]snap".
    • files with paths like ".*/[Mm]ocks/.*".
    • files with paths like ".*UnitTests[.][a-zA-Z0-9_]+".
    • files with paths like ".*/testing[.].*".
    • files with paths like ".*[.]tests[.].*".
    • files with paths like ".*[-]tests/.*".
  • 440 files match defined criteria (53,354 LOC, 34.0% vs. main code):
    • 143 *.cs files (19,951 LOC)
    • 127 *.ts files (18,838 LOC)
    • 83 *.py files (6,758 LOC)
    • 27 *.ps1 files (4,868 LOC)
    • 6 *.java files (607 LOC)
    • 4 *.go files (482 LOC)
    • 15 *.csproj files (473 LOC)
    • 2 *.swift files (444 LOC)
    • 11 *.tpl files (394 LOC)
    • 8 *.yaml files (226 LOC)
    • 2 *.snap files (134 LOC)
    • 6 *.js files (90 LOC)
    • 1 *.toml files (40 LOC)
    • 1 *.xml files (21 LOC)
    • 2 *.sh files (17 LOC)
    • 1 *.targets files (8 LOC)
    • 1 *.bat files (3 LOC)
  • " *.cs" is biggest, containing 37.39% of LOC.
  • " *.bat" is smallest, containing 0.01% of LOC.


*.cs19951 LOC (37%) 143 files
*.ts18838 LOC (35%) 127 files
*.py6758 LOC (12%) 83 files
*.ps14868 LOC (9%) 27 files
*.java607 LOC (1%) 6 files
*.go482 LOC (<1%) 4 files
*.csproj473 LOC (<1%) 15 files
*.swift444 LOC (<1%) 2 files
*.tpl394 LOC (<1%) 11 files
*.yaml226 LOC (<1%) 8 files
*.snap134 LOC (<1%) 2 files
*.js90 LOC (<1%) 6 files
*.toml40 LOC (<1%) 1 file
*.xml21 LOC (<1%) 1 file
*.sh17 LOC (<1%) 2 files
*.targets8 LOC (<1%) 1 file
*.bat3 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".
    • files with paths like ".*/_generated/.*".
  • 24 files match defined criteria (50,613 LOC, 32.3% vs. main code):
    • 13 *.json files (47,715 LOC)
    • 11 *.py files (2,898 LOC)
  • " *.json" is biggest, containing 94.27% of LOC.
  • " *.py" is smallest, containing 5.73% of LOC.


*.json47715 LOC (94%) 13 files
*.py2898 LOC (5%) 11 files
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 ".*/package[-]lock[.]json".
    • files with paths like ".*[.]git[a-z]+".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*[.]csproj".
    • files with paths like ".*/package[.]json".
    • files with paths like ".*[.]sh".
    • files with paths like ".*/pnpm.*[.]ya?ml".
    • files with paths like ".*/pom[.]xml".
    • files with paths like ".*/[.]gitattributes".
    • files with paths like ".*([.]|/)webpack([.]|/).*".
    • files with paths like ".*[.]bat".
  • 77 files match defined criteria (7,436 LOC, 4.7% vs. main code):
    • 2 *.yaml files (5,707 LOC)
    • 57 *.csproj files (1,060 LOC)
    • 5 *.xml files (496 LOC)
    • 2 *.js files (97 LOC)
    • 9 *.sh files (45 LOC)
    • 2 *.bat files (31 LOC)
  • " *.yaml" is biggest, containing 76.75% of LOC.
  • " *.bat" is smallest, containing 0.42% of LOC.


*.yaml5707 LOC (76%) 2 files
*.csproj1060 LOC (14%) 57 files
*.xml496 LOC (6%) 5 files
*.js97 LOC (1%) 2 files
*.sh45 LOC (<1%) 9 files
*.bat31 LOC (<1%) 2 files
Other Code
txt
patch
plist
ini
mod
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.]json".
    • files with paths like ".*[.]md".
    • files with paths like ".*/README[.][a-z0-9]+".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*[.]editorconfig".
    • files with paths like ".*[.]txt".
    • files with paths like ".*/[Ee]xamples/.*".
    • files with paths like ".*/[.]prettierignore".
    • files with paths like ".*[.]npmrc".
    • files with paths like ".*/[.]eslintignore".
    • files with paths like ".*[.]patch".
    • files with paths like ".*/[Dd]ocumentation/.*".
    • files with paths like ".*/[.]dockerignore".
    • files with paths like ".*[.]plist".
    • files with paths like ".*/go[.]mod".
    • files with paths like ".*[.]svg".
    • files with paths like ".*/LICENSE[.][a-z0-9]+".
    • files with paths like ".*/[Ss]amples/.*".
    • files with paths like ".*[.]ini".
    • files with paths like ".*[.](rst|rest|resttxt|rsttxt)".
  • 1493 files match defined criteria (321,124 LOC, 204.9% vs. main code):
    • 1,058 *.json files (268,844 LOC)
    • 104 *.txt files (28,143 LOC)
    • 210 *.md files (20,800 LOC)
    • 32 *.ts files (1,612 LOC)
    • 7 *.patch files (487 LOC)
    • 39 *.svg files (466 LOC)
    • 25 *.yaml files (361 LOC)
    • 2 *.js files (168 LOC)
    • 2 *.py files (76 LOC)
    • 5 *.rst files (49 LOC)
    • 4 *.plist files (47 LOC)
    • 2 *.ini files (32 LOC)
    • 2 *.sh files (24 LOC)
    • 1 *.mod files (15 LOC)
  • " *.json" is biggest, containing 83.72% of LOC.
  • " *.mod" is smallest, containing 0% of LOC.


*.json268844 LOC (83%) 1,058 files
*.txt28143 LOC (8%) 104 files
*.md20800 LOC (6%) 210 files
*.ts1612 LOC (<1%) 32 files
*.patch487 LOC (<1%) 7 files
*.svg466 LOC (<1%) 39 files
*.yaml361 LOC (<1%) 25 files
*.js168 LOC (<1%) 2 files
*.py76 LOC (<1%) 2 files
*.rst49 LOC (<1%) 5 files
*.plist47 LOC (<1%) 4 files
*.ini32 LOC (<1%) 2 files
*.sh24 LOC (<1%) 2 files
*.mod15 LOC (<1%) 1 file
Analyzers
Info about analyzers used for source code examinations.


2025-05-06 21:43