bazelbuild / buildtools
File Size

The distribution of size of files (measured in lines of code).

Intro
  • File size measurements show the distribution of size of files.
  • Files are classified in four categories based on their size (lines of code): 1-100 (very small files), 101-200 (small files), 201-500 (medium size files), 501-1000 (long files), 1001+(very long files).
  • It is a good practice to keep files small. Long files may become "bloaters", code that have increased to such gargantuan proportions that they are hard to work with.
Learn more...
File Size Overall
  • There are 74 files with 23,681 lines of code.
    • 6 very long files (10,894 lines of code)
    • 6 long files (4,359 lines of code)
    • 16 medium size files (5,322 lines of codeclsfd_ftr_w_mp_ins)
    • 11 small files (1,672 lines of code)
    • 35 very small files (1,434 lines of code)
46% | 18% | 22% | 7% | 6%
Legend:
1001+
501-1000
201-500
101-200
1-100


explore: zoomable circles | sunburst | 3D view
File Size per Extension
1001+
501-1000
201-500
101-200
1-100
go38% | 23% | 25% | 6% | 5%
pb100% | 0% | 0% | 0% | 0%
y100% | 0% | 0% | 0% | 0%
proto0% | 0% | 64% | 22% | 13%
bzl0% | 0% | 0% | 78% | 21%
js0% | 0% | 0% | 0% | 100%
ts0% | 0% | 0% | 0% | 100%
py0% | 0% | 0% | 0% | 100%
File Size per Logical Decomposition
primary
1001+
501-1000
201-500
101-200
1-100
build_proto87% | 0% | 12% | 0% | 0%
build46% | 41% | 6% | 5% | <1%
lang84% | 0% | 14% | 0% | <1%
extra_actions_base_proto87% | 0% | 0% | 12% | 0%
edit43% | 34% | 18% | 0% | 3%
warn0% | 25% | 50% | 18% | 6%
api_proto0% | 0% | 91% | 0% | 8%
deps_proto0% | 0% | 86% | 0% | 13%
unused_deps0% | 0% | 83% | 0% | 16%
buildifier0% | 0% | 35% | 30% | 33%
convertast0% | 0% | 100% | 0% | 0%
tables0% | 0% | 86% | 0% | 13%
bzlenv0% | 0% | 0% | 100% | 0%
wspace0% | 0% | 0% | 100% | 0%
buildozer0% | 0% | 0% | 0% | 100%
differ0% | 0% | 0% | 0% | 100%
ROOT0% | 0% | 0% | 0% | 100%
generatetables0% | 0% | 0% | 0% | 100%
labels0% | 0% | 0% | 0% | 100%
testutils0% | 0% | 0% | 0% | 100%
buildifier20% | 0% | 0% | 0% | 100%
file0% | 0% | 0% | 0% | 100%
config0% | 0% | 0% | 0% | 100%
Longest Files (Top 50)
File# lines# units
build.gen.pb.go
in build_proto
3205 331
pb
build-language.pb
in lang
2491 -
parse.y.go
in build
1758 18
y
parse.y
in build
1217 -
extra_actions_base.gen.pb.go
in extra_actions_base_proto
1137 107
buildozer.go
in edit
1086 49
edit.go
in edit
881 60
warn_bazel_api.go
in warn
845 35
rewrite.go
in build
734 39
print.go
in build
682 26
lex.go
in build
655 25
syntax.go
in build
562 72
fix.go
in edit
455 24
proto
build.proto
in build_proto
454 -
warn_control_flow.go
in warn
436 13
tables.gen.go
in lang
429 -
api.gen.pb.go
in api_proto
396 42
warn_cosmetic.go
in warn
376 11
deps.gen.pb.go
in deps_proto
351 35
warn.go
in warn
325 15
unused_deps.go
in unused_deps
312 15
buildifier.go
in buildifier
311 6
warn_docstring.go
in warn
306 11
convert_ast.go
in convertast
250 9
warn_macro.go
in warn
244 10
rule.go
in build
237 19
tables.go
in tables
235 2
walk.go
in build
205 9
quote.go
in build
187 3
warn_bazel.go
in warn
179 7
bzlenv.go
in bzlenv
171 13
warn_bazel_operation.go
in warn
160 3
proto
extra_actions_base.proto
in extra_actions_base_proto
160 -
build_defs.bzl
in build
159 -
types.go
in warn
154 3
factory.bzl
in buildifier/internal
150 -
warn_operation.go
in warn
123 4
workspace.go
in wspace
116 8
diagnostics.go
in buildifier/utils
113 5
flags.go
in buildifier/utils
96 5
main.go
in buildozer
91 4
utils.go
in buildifier/utils
90 6
diff.go
in differ
86 4
warn_naming.go
in warn
83 6
generate_tables.go
in generatetables
78 2
labels.go
in labels
74 6
jar_manifest.go
in unused_deps
62 2
launcher.js
in root
62 3
warn_deprecated.go
in warn
59 2
proto
deps.proto
in deps_proto
53 -
Files With Most Units (Top 20)
File# lines# units
build.gen.pb.go
in build_proto
3205 331
extra_actions_base.gen.pb.go
in extra_actions_base_proto
1137 107
syntax.go
in build
562 72
edit.go
in edit
881 60
buildozer.go
in edit
1086 49
api.gen.pb.go
in api_proto
396 42
rewrite.go
in build
734 39
deps.gen.pb.go
in deps_proto
351 35
warn_bazel_api.go
in warn
845 35
print.go
in build
682 26
lex.go
in build
655 25
fix.go
in edit
455 24
rule.go
in build
237 19
parse.y.go
in build
1758 18
unused_deps.go
in unused_deps
312 15
warn.go
in warn
325 15
bzlenv.go
in bzlenv
171 13
warn_control_flow.go
in warn
436 13
warn_cosmetic.go
in warn
376 11
warn_docstring.go
in warn
306 11
Files With Long Lines (Top 20)

There are 29 files with lines longer than 120 characters. In total, there are 214 long lines.

File# lines# units# long lines
build.gen.pb.go
in build_proto
3205 331 77
extra_actions_base.gen.pb.go
in extra_actions_base_proto
1137 107 32
warn_bazel_api.go
in warn
845 35 12
pb
build-language.pb
in lang
2491 - 12
main.go
in buildozer
91 4 10
buildifier.go
in buildifier
311 6 9
warn.go
in warn
325 15 9
warn_control_flow.go
in warn
436 13 7
buildozer.go
in edit
1086 49 7
factory.bzl
in buildifier/internal
150 - 5
warn_cosmetic.go
in warn
376 11 3
parse.y.go
in build
1758 18 3
flags.go
in buildifier/utils
96 5 2
warn_bazel.go
in warn
179 7 2
warn_bazel_operation.go
in warn
160 3 2
warn_macro.go
in warn
244 10 2
warn_docstring.go
in warn
306 11 2
warn_naming.go
in warn
83 6 2
print.go
in build
682 26 2
api.gen.pb.go
in api_proto
396 42 2