mozilla / experimenter
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
pyi
ini
txt
properties
prettierignore
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.

main1043080 LOC (77%) 2,669 files
test69102 LOC (5%) 348 files
generated8426 LOC (<1%) 1 file
build and deployment203 LOC (<1%) 7 files
other227506 LOC (16%) 478 files
Main Code
All manually created or maintained source code that defines logic of the product that is run in a production environment.
pyi
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*".
  • 2669 files match defined criteria (1,043,080 LOC, 100.0% vs. main code):
    • 1,581 *.yaml files (955,455 LOC)
    • 464 *.py files (33,148 LOC)
    • 130 *.tsx files (23,949 LOC)
    • 252 *.pyi files (8,519 LOC)
    • 62 *.toml files (7,486 LOC)
    • 88 *.html files (6,094 LOC)
    • 39 *.ts files (4,047 LOC)
    • 44 *.js files (3,128 LOC)
    • 1 *.graphql files (635 LOC)
    • 6 *.scss files (402 LOC)
    • 2 *.css files (217 LOC)
  • " *.yaml" is biggest, containing 91.6% of LOC.
  • " *.css" is smallest, containing 0.02% of LOC.


*.yaml955455 LOC (91%) 1,581 files
*.py33148 LOC (3%) 464 files
*.tsx23949 LOC (2%) 130 files
*.pyi8519 LOC (<1%) 252 files
*.toml7486 LOC (<1%) 62 files
*.html6094 LOC (<1%) 88 files
*.ts4047 LOC (<1%) 39 files
*.js3128 LOC (<1%) 44 files
*.graphql635 LOC (<1%) 1 file
*.scss402 LOC (<1%) 6 files
*.css217 LOC (<1%) 2 files
Test Code
Used only for testing of the product. Normally not deployed in a production environment.
pyi
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 ".*/testing[.].*".
    • files with paths like ".*/test[.].*".
    • files with paths like ".*/[Tt]est/.*".
    • files with paths like ".*[.][Tt]est[.].*".
    • files with paths like ".*[.]test[.].*".
    • files with paths like ".*_tests[.].*".
  • 348 files match defined criteria (69,102 LOC, 6.6% vs. main code):
    • 203 *.py files (48,629 LOC)
    • 77 *.tsx files (15,163 LOC)
    • 17 *.js files (2,101 LOC)
    • 12 *.ts files (1,918 LOC)
    • 16 *.yaml files (767 LOC)
    • 9 *.pyi files (289 LOC)
    • 9 *.toml files (148 LOC)
    • 5 *.sh files (87 LOC)
  • " *.py" is biggest, containing 70.37% of LOC.
  • " *.sh" is smallest, containing 0.13% of LOC.


*.py48629 LOC (70%) 203 files
*.tsx15163 LOC (21%) 77 files
*.js2101 LOC (3%) 17 files
*.ts1918 LOC (2%) 12 files
*.yaml767 LOC (1%) 16 files
*.pyi289 LOC (<1%) 9 files
*.toml148 LOC (<1%) 9 files
*.sh87 LOC (<1%) 5 files
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 (8,426 LOC, 0.8% vs. main code). All matches are in *.json files.


*.json8426 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 ".*[.]sh".
    • files with paths like ".*[.]git[a-z]+".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*/package[-]lock[.]json".
    • files with paths like ".*([.]|/)webpack([.]|/).*".
    • files with paths like ".*/package[.]json".
  • 7 files match defined criteria (203 LOC, 0.0% vs. main code):
    • 6 *.sh files (163 LOC)
    • 1 *.js files (40 LOC)
  • " *.sh" is biggest, containing 80.3% of LOC.
  • " *.js" is smallest, containing 19.7% of LOC.


*.sh163 LOC (80%) 6 files
*.js40 LOC (19%) 1 file
Other Code
ini
properties
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.]md".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*/[.]dockerignore".
    • files with paths like ".*[.]ini".
    • files with paths like ".*[.]json".
    • files with paths like ".*/README[.][a-z0-9]+".
    • files with paths like ".*[.]svg".
    • files with paths like ".*/[.]prettierignore".
    • files with paths like ".*[.]properties".
  • 478 files match defined criteria (227,506 LOC, 21.8% vs. main code):
    • 431 *.json files (225,940 LOC)
    • 13 *.md files (1,215 LOC)
    • 30 *.svg files (197 LOC)
    • 3 *.ini files (152 LOC)
    • 1 *.properties files (2 LOC)
  • " *.json" is biggest, containing 99.31% of LOC.
  • " *.properties" is smallest, containing 0% of LOC.


*.json225940 LOC (99%) 431 files
*.md1215 LOC (<1%) 13 files
*.svg197 LOC (<1%) 30 files
*.ini152 LOC (<1%) 3 files
*.properties2 LOC (<1%) 1 file
Analyzers
Info about analyzers used for source code examinations.


2025-05-11 19:44