bazelbuild / rules_go
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 109 files with 16,428 lines of code.
    • 0 very long files (0 lines of code)
    • 2 long files (1,382 lines of code)
    • 26 medium size files (8,176 lines of codeclsfd_ftr_w_mp_ins)
    • 30 small files (4,201 lines of code)
    • 51 very small files (2,669 lines of code)
0% | 8% | 49% | 25% | 16%
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
bzl0% | 19% | 35% | 28% | 17%
go0% | 0% | 61% | 23% | 15%
in0% | 0% | 0% | 0% | 100%
File Size per Logical Decomposition
primary
1001+
501-1000
201-500
101-200
1-100
go/private0% | 32% | 47% | 12% | 7%
go/private/rules0% | 27% | 33% | 28% | 10%
go/tools/builders0% | 0% | 62% | 28% | 8%
go/tools/releaser0% | 0% | 73% | 0% | 26%
go/tools/bazel_testing0% | 0% | 87% | 0% | 12%
go/tools/bazel_benchmark0% | 0% | 92% | 0% | 7%
go/tools/bazel0% | 0% | 89% | 0% | 10%
go/tools/bzltestutil0% | 0% | 54% | 26% | 18%
go/private/tools0% | 0% | 100% | 0% | 0%
go/private/actions0% | 0% | 24% | 44% | 31%
proto0% | 0% | 52% | 37% | 9%
go/tools/gopackagesdriver0% | 0% | 0% | 75% | 24%
go0% | 0% | 0% | 81% | 18%
extras0% | 0% | 0% | 53% | 46%
go/private/skylib0% | 0% | 0% | 100% | 0%
go/platform0% | 0% | 0% | 0% | 100%
go/tools/windows-testrunner0% | 0% | 0% | 0% | 100%
proto/wkt0% | 0% | 0% | 0% | 100%
go/tools/internal0% | 0% | 0% | 0% | 100%
go/toolchain0% | 0% | 0% | 0% | 100%
go/tools/fetch_repo0% | 0% | 0% | 0% | 100%
go/tools/coverdata0% | 0% | 0% | 0% | 100%
Longest Files (Top 50)
File# lines# units
context.bzl
in go/private
765 -
test.bzl
in go/private/rules
617 -
upgradedep.go
in go/tools/releaser
460 6
binary.bzl
in go/private/rules
445 -
compilepkg.go
in go/tools/builders
445 6
read.go
in go/tools/builders
439 15
sdk.bzl
in go/private
424 -
nogo_main.go
in go/tools/builders
421 17
bazel_testing.go
in go/tools/bazel_testing
380 11
bazel_benchmark.go
in go/tools/bazel_benchmark
355 13
runfiles.go
in go/tools/bazel
351 15
pack.go
in go/tools/builders
333 14
env.go
in go/tools/builders
327 19
generate_test_main.go
in go/tools/builders
309 4
test2json.go
in go/tools/bzltestutil
308 13
transition.bzl
in go/private/rules
295 -
embed.go
in go/tools/builders
282 12
cgo2.go
in go/tools/builders
279 9
embedcfg.go
in go/tools/builders
274 10
repositories.bzl
in go/private
269 -
file.go
in go/tools/releaser
253 9
path.bzl
in go/private/tools
247 -
link.bzl
in go/private/actions
230 -
compiler.bzl
in proto
219 -
common.bzl
in go/private
212 -
importcfg.go
in go/tools/builders
208 7
prepare.go
in go/tools/releaser
207 3
mode.bzl
in go/private
204 -
library.bzl
in go/private/rules
198 -
cgo.bzl
in go/private/rules
190 -
archive.bzl
in go/private/actions
183 -
compile.go
in go/tools/builders
177 1
go_path.go
in go/tools/builders
173 7
platforms.bzl
in go/private
168 -
protoc.go
in go/tools/builders
163 2
def.bzl
in go
161 -
stdliblist.go
in go/tools/builders
161 6
def.bzl
in proto
157 -
generate_nogo_main.go
in go/tools/builders
154 2
xml.go
in go/tools/bzltestutil
153 2
aspect.bzl
in go/tools/gopackagesdriver
145 -
go_toolchain.bzl
in go/private
133 -
replicate.go
in go/tools/builders
133 6
filter.go
in go/tools/builders
131 2
bazel.go
in go/tools/gopackagesdriver
128 9
compilepkg.bzl
in go/private/actions
127 -
nogo.bzl
in go/private/rules
127 -
embed_data.bzl
in extras
125 -
sdk.bzl
in go/private/rules
122 -
bazel_json_builder.go
in go/tools/gopackagesdriver
120 8
Files With Most Units (Top 20)
File# lines# units
env.go
in go/tools/builders
327 19
nogo_main.go
in go/tools/builders
421 17
read.go
in go/tools/builders
439 15
runfiles.go
in go/tools/bazel
351 15
pack.go
in go/tools/builders
333 14
test2json.go
in go/tools/bzltestutil
308 13
bazel_benchmark.go
in go/tools/bazel_benchmark
355 13
embed.go
in go/tools/builders
282 12
bazel_testing.go
in go/tools/bazel_testing
380 11
embedcfg.go
in go/tools/builders
274 10
bazel.go
in go/tools/gopackagesdriver
128 9
edit.go
in go/tools/builders
63 9
cgo2.go
in go/tools/builders
279 9
file.go
in go/tools/releaser
253 9
packageregistry.go
in go/tools/gopackagesdriver
109 8
flatpackage.go
in go/tools/gopackagesdriver
117 8
bazel_json_builder.go
in go/tools/gopackagesdriver
120 8
go_path.go
in go/tools/builders
173 7
flags.go
in go/tools/builders
87 7
importcfg.go
in go/tools/builders
208 7
Files With Long Lines (Top 20)

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

File# lines# units# long lines
repositories.bzl
in go/private
269 - 7
compilepkg.go
in go/tools/builders
445 6 7
library.bzl
in go/private/rules
198 - 5
prepare.go
in go/tools/releaser
207 3 5
embed_data.bzl
in extras
125 - 4
nogo_main.go
in go/tools/builders
421 17 4
cgo2.go
in go/tools/builders
279 9 3
sdk.bzl
in go/private
424 - 2
context.bzl
in go/private
765 - 2
mode.bzl
in go/private
204 - 2
wrappers.bzl
in go/private/rules
60 - 2
test.bzl
in go/private/rules
617 - 2
main.go
in go/tools/fetch_repo
52 3 2
embedcfg.go
in go/tools/builders
274 10 2
upgradedep.go
in go/tools/releaser
460 6 2
def.bzl
in go
161 - 1
archive.bzl
in go/private/actions
183 - 1
path.bzl
in go/private/tools
247 - 1
binary.bzl
in go/private/rules
445 - 1
transition.bzl
in go/private/rules
295 - 1