mozilla / releases-comm-central
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
mjs
txt
eml
properties
xul
snap
s
asc
in
m4
wat
ini
po
jsm
sjs
sig
metal
nsi
texi
plist
cfg
mk
glsl
tpl
tex
sed
lisp
vert
editorconfig
eps
nsh
spec
frag
nix
natvis
diff
eslintignore
stylelintignore
arcconfig
l
asd
y
mkd
project
pri
el
pro
jinja2
gitattributes
yy
cmakein
ll
com
sage
wxs
proto
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.

main931066 LOC (69%) 4,097 files
test340589 LOC (25%) 2,257 files
generated46 LOC (<1%) 1 file
build and deployment687 LOC (<1%) 23 files
other71777 LOC (5%) 1,183 files
Main Code
All manually created or maintained source code that defines logic of the product that is run in a production environment.
mjs
xul
jsm
nsi
in
nsh
wxs
jinja2
pri
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*".
  • 4097 files match defined criteria (931,066 LOC, 100.0% vs. main code):
    • 988 *.js files (308,067 LOC)
    • 562 *.mjs files (215,634 LOC)
    • 337 *.cpp files (154,301 LOC)
    • 337 *.xhtml files (68,420 LOC)
    • 717 *.css files (61,985 LOC)
    • 394 *.h files (39,563 LOC)
    • 129 *.xml files (18,836 LOC)
    • 153 *.xul files (18,170 LOC)
    • 133 *.ftl files (9,625 LOC)
    • 157 *.py files (7,553 LOC)
    • 15 *.jsm files (4,167 LOC)
    • 28 *.rs files (3,644 LOC)
    • 9 *.rdf files (3,573 LOC)
    • 9 *.nsi files (3,242 LOC)
    • 45 *.in files (3,168 LOC)
    • 7 *.c files (3,157 LOC)
    • 2 *.nsh files (2,404 LOC)
    • 43 *.html files (1,879 LOC)
    • 9 *.yaml files (1,476 LOC)
    • 6 *.mm files (1,328 LOC)
    • 13 *.toml files (763 LOC)
    • 1 *.wxs files (71 LOC)
    • 1 *.jinja2 files (31 LOC)
    • 1 *.pri files (8 LOC)
    • 1 *.inc files (1 LOC)
  • " *.js" is biggest, containing 33.09% of LOC.
  • " *.inc" is smallest, containing 0% of LOC.


*.js308067 LOC (33%) 988 files
*.mjs215634 LOC (23%) 562 files
*.cpp154301 LOC (16%) 337 files
*.xhtml68420 LOC (7%) 337 files
*.css61985 LOC (6%) 717 files
*.h39563 LOC (4%) 394 files
*.xml18836 LOC (2%) 129 files
*.xul18170 LOC (1%) 153 files
*.ftl9625 LOC (1%) 133 files
*.py7553 LOC (<1%) 157 files
*.jsm4167 LOC (<1%) 15 files
*.rs3644 LOC (<1%) 28 files
*.rdf3573 LOC (<1%) 9 files
*.nsi3242 LOC (<1%) 9 files
*.in3168 LOC (<1%) 45 files
*.c3157 LOC (<1%) 7 files
*.nsh2404 LOC (<1%) 2 files
*.html1879 LOC (<1%) 43 files
*.yaml1476 LOC (<1%) 9 files
*.mm1328 LOC (<1%) 6 files
*.toml763 LOC (<1%) 13 files
*.wxs71 LOC (<1%) 1 file
*.jinja231 LOC (<1%) 1 file
*.pri8 LOC (<1%) 1 file
*.inc1 LOC (<1%) 1 file
Test Code
Used only for testing of the product. Normally not deployed in a production environment.
mjs
eml
asc
sjs
xul
com
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*/[Tt]ests/.*".
    • files with paths like ".*_tests[.].*".
    • files with paths like ".*/test_.*".
    • files with paths like ".*/test[.].*".
    • files with paths like ".*[.]snap".
    • files with paths like ".*_test[.].*".
    • files with paths like ".*/[Ss]pecs/.*".
    • files with paths like ".*/testing[.].*".
    • files with paths like ".*/[Tt]est/.*".
    • files with paths like ".*[-]test[-].*".
    • files with paths like ".*__tests__.*".
    • files with paths like ".*[.][Tt]est[.].*".
    • files with paths like ".*[.]test[.].*".
    • files with paths like ".*_mock[.][a-zA-Z0-9_\-]+".
    • files with paths like ".*/tests_.*".
  • 2257 files match defined criteria (340,589 LOC, 36.6% vs. main code):
    • 1,515 *.js files (278,009 LOC)
    • 72 *.mjs files (24,766 LOC)
    • 309 *.eml files (24,732 LOC)
    • 125 *.toml files (3,138 LOC)
    • 69 *.html files (2,213 LOC)
    • 33 *.asc files (1,602 LOC)
    • 27 *.xhtml files (1,502 LOC)
    • 10 *.cpp files (1,381 LOC)
    • 12 *.sql files (648 LOC)
    • 8 *.py files (632 LOC)
    • 21 *.xml files (536 LOC)
    • 12 *.sjs files (494 LOC)
    • 10 *.rdf files (326 LOC)
    • 27 *.xul files (324 LOC)
    • 4 *.sh files (224 LOC)
    • 2 *.h files (39 LOC)
    • 1 *.com files (23 LOC)
  • " *.js" is biggest, containing 81.63% of LOC.
  • " *.com" is smallest, containing 0.01% of LOC.


*.js278009 LOC (81%) 1,515 files
*.mjs24766 LOC (7%) 72 files
*.eml24732 LOC (7%) 309 files
*.toml3138 LOC (<1%) 125 files
*.html2213 LOC (<1%) 69 files
*.asc1602 LOC (<1%) 33 files
*.xhtml1502 LOC (<1%) 27 files
*.cpp1381 LOC (<1%) 10 files
*.sql648 LOC (<1%) 12 files
*.py632 LOC (<1%) 8 files
*.xml536 LOC (<1%) 21 files
*.sjs494 LOC (<1%) 12 files
*.rdf326 LOC (<1%) 10 files
*.xul324 LOC (<1%) 27 files
*.sh224 LOC (<1%) 4 files
*.h39 LOC (<1%) 2 files
*.com23 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 ".*[.](ps|eps|pfa)".
    • files with any line of content like "//[ ]*Generated by .*".
    • files with paths like ".*_generated[.][a-z]+".
    • files with paths like ".*[.](html|html|xhtml)" AND any line of content like "[ ]*[<]meta name[=]"generator" .*".
    • files with paths like ".*/src/gen/.*".
  • 1 file matches defined criteria (46 LOC, 0.0% vs. main code). All matches are in *.py files.


*.py46 LOC (100%) 1 file
Build and Deployment Code
Source code used to configure or support build and deployment process.
mk
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.]sh".
    • files with paths like ".*/package[.]json".
    • files with paths like ".*[.]git[a-z]+".
    • files with paths like ".*/[.]gitattributes".
    • files with paths like ".*[.]bat".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*[.]gradle".
    • files with paths like ".*/AndroidManifest[.]xml".
    • files with paths like ".*[.]mk".
  • 23 files match defined criteria (687 LOC, 0.1% vs. main code):
    • 19 *.sh files (605 LOC)
    • 4 *.mk files (82 LOC)
  • " *.sh" is biggest, containing 88.06% of LOC.
  • " *.mk" is smallest, containing 11.94% of LOC.


*.sh605 LOC (88%) 19 files
*.mk82 LOC (11%) 4 files
Other Code
properties
txt
ini
plist
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.]po".
    • files with paths like ".*[.]texi".
    • files with paths like ".*[.]txt".
    • files with paths like ".*[.]json".
    • files with paths like ".*[.]md".
    • files with paths like ".*/LICENSE[.][a-z0-9]+".
    • files with paths like ".*[.]adoc".
    • files with paths like ".*/[Ee]xamples/.*".
    • files with paths like ".*/README[.][a-z0-9]+".
    • files with paths like ".*[.](rst|rest|resttxt|rsttxt)".
    • files with paths like ".*[.]properties".
    • files with paths like ".*[.]editorconfig".
    • files with paths like ".*[.]svg".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*/INSTALL[.][a-z0-9]+".
    • files with paths like ".*/vendor/.*".
    • files with paths like ".*[.]mkd".
    • files with paths like ".*/[Dd]ocumentation/.*".
    • files with paths like ".*/COPYRIGHT[.][a-z0-9]+".
    • files with paths like ".*[.]diff".
    • files with paths like ".*/[.]eslintignore".
    • files with paths like ".*[.]plist".
    • files with paths like ".*[.]ini".
    • files with paths like ".*/[.]stylelintignore".
    • files with paths like ".*/[.]prettierignore".
  • 1183 files match defined criteria (71,777 LOC, 7.7% vs. main code):
    • 347 *.json files (37,699 LOC)
    • 182 *.properties files (12,224 LOC)
    • 39 *.txt files (12,107 LOC)
    • 567 *.svg files (8,561 LOC)
    • 32 *.ini files (544 LOC)
    • 9 *.md files (426 LOC)
    • 6 *.plist files (203 LOC)
    • 1 *.rst files (13 LOC)
  • " *.json" is biggest, containing 52.52% of LOC.
  • " *.rst" is smallest, containing 0.02% of LOC.


*.json37699 LOC (52%) 347 files
*.properties12224 LOC (17%) 182 files
*.txt12107 LOC (16%) 39 files
*.svg8561 LOC (11%) 567 files
*.ini544 LOC (<1%) 32 files
*.md426 LOC (<1%) 9 files
*.plist203 LOC (<1%) 6 files
*.rst13 LOC (<1%) 1 file
Analyzers
Info about analyzers used for source code examinations.


2025-05-11 19:43