bazelbuild / rules_go
Duplication

Places in code with 6 or more lines that are exactly the same.

Intro
  • For duplication, we look at places in code where there are 6 or more lines of code that are exactly the same.
  • Before duplication is calculated, the code is cleaned to remove empty lines, comments, and frequently duplicated constructs such as imports.
  • You should aim at having as little as possible (<5%) of duplicated code as high-level of duplication can lead to maintenance difficulties, poor factoring, and logical contradictions.
Learn more...
Duplication Overall
  • 9% duplication:
    • 13,856 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 1,352 duplicated lines
  • 1,078 duplicates
system9% (1,352 lines)
Duplication per Extension
bzl17% (1,234 lines)
go1% (118 lines)
Duplication per Component (primary)
go/private/rules29% (649 lines)
go/private/actions18% (177 lines)
go/private6% (156 lines)
go/tools/builders2% (94 lines)
proto14% (59 lines)
extras23% (54 lines)
go/platform25% (41 lines)
go13% (26 lines)
go/tools/releaser2% (24 lines)
go/private/tools6% (16 lines)
go/toolchain21% (15 lines)
go/tools/gopackagesdriver2% (15 lines)
go/tools/bazel_testing3% (13 lines)
go/private/skylib12% (13 lines)
proto/wkt0% (0 lines)
go/tools/coverdata0% (0 lines)
go/tools/bzltestutil0% (0 lines)
go/tools/bazel_benchmark0% (0 lines)
go/tools/fetch_repo0% (0 lines)
go/tools/internal0% (0 lines)
go/tools/bazel0% (0 lines)
go/tools/windows-testrunner0% (0 lines)

Duplication Between Components (50+ lines)

G go/private go/private go/private/rules go/private/rules go/private--go/private/rules 293 proto proto go/private--proto 172 go/private/tools go/private/tools go/private--go/private/tools 141 go/tools/gopackagesdriver go/tools/gopackagesdriver go/private--go/tools/gopackagesdriver 136 go/toolchain go/toolchain go/private--go/toolchain 138 go/private/skylib go/private/skylib go/private--go/private/skylib 134 go/tools/bazel_testing go/tools/bazel_testing go/private--go/tools/bazel_testing 134 go/private/rules--proto 214 go/private/rules--go/private/tools 166 go/private/rules--go/tools/gopackagesdriver 158 go/private/rules--go/toolchain 156 go/private/rules--go/private/skylib 146 go/private/rules--go/tools/bazel_testing 144 go/private/actions go/private/actions go/private/actions--go/private 255 go/private/actions--go/private/rules 289 go/private/actions--proto 154 go/private/actions--go/private/tools 140 go/private/actions--go/tools/gopackagesdriver 132 go/private/actions--go/toolchain 131 go/private/actions--go/private/skylib 120 go/private/actions--go/tools/bazel_testing 122 extras extras extras--go/private 167 extras--go/private/rules 205 extras--go/private/actions 155 extras--proto 107 go/platform go/platform extras--go/platform 78 extras--go/private/tools 50 go go extras--go 62 extras--go/tools/gopackagesdriver 50 extras--go/toolchain 52 extras--go/private/skylib 50 extras--go/tools/bazel_testing 50 go/platform--go/private 165 go/platform--go/private/rules 186 go/platform--go/private/actions 153 go/platform--proto 79 go/platform--go/private/tools 50 go/platform--go/tools/gopackagesdriver 50 go/platform--go/toolchain 52 go/platform--go/private/skylib 50 go/private/tools--proto 51 go--go/private 151 go--go/private/rules 164 go--go/private/actions 142 go--proto 60 go--go/platform 60 go/tools/gopackagesdriver--proto 51 go/toolchain--proto 51

Download: SVG DOT (open online Graphviz editor)

Open 3D force graph...

Show more details on duplication between components...
Longest Duplicates
The list of 20 longest duplicates.
See data for all 1,078 duplicates...
Size#FoldersFilesLinesCode
98 x 2 go/private/rules
go/private/rules
binary.bzl
test.bzl
244:345 (22%)
293:394 (15%)
view
19 x 2 go/private/rules
go/private/rules
binary.bzl
test.bzl
1:20 (4%)
1:20 (3%)
view
18 x 2 go/private/rules
go/private/rules
nogo.bzl
stdlib.bzl
2:20 (14%)
2:20 (46%)
view
18 x 2 go/private/rules
go/private/rules
nogo.bzl
source.bzl
2:20 (14%)
2:20 (20%)
view
18 x 2 go/private/rules
go/private/rules
source.bzl
stdlib.bzl
2:20 (20%)
2:20 (46%)
view
17 x 2 go/private/rules
go/private/rules
binary.bzl
source.bzl
2:19 (3%)
2:19 (19%)
view
17 x 2 go/private/actions
go/private/rules
binary.bzl
wrappers.bzl
1:18 (26%)
1:18 (28%)
view
17 x 2 go/private/rules
go/private/rules
binary.bzl
stdlib.bzl
2:19 (3%)
2:19 (43%)
view
17 x 2 go/private/rules
go/private/rules
nogo.bzl
test.bzl
2:19 (13%)
2:19 (2%)
view
17 x 2 go/private/rules
proto
transition.bzl
compiler.bzl
2:19 (5%)
2:19 (7%)
view
17 x 2 go/private/rules
go/private/rules
stdlib.bzl
test.bzl
2:19 (43%)
2:19 (2%)
view
17 x 2 go/private/rules
go/private/rules
info.bzl
test.bzl
1:18 (32%)
1:18 (2%)
view
17 x 2 go/private/rules
go/private/rules
binary.bzl
info.bzl
1:18 (3%)
1:18 (32%)
view
17 x 2 go/private/actions
go/private/actions
asm.bzl
compile.bzl
1:18 (37%)
1:18 (20%)
view
17 x 2 go/private/rules
go/private/rules
source.bzl
test.bzl
2:19 (19%)
2:19 (2%)
view
17 x 2 go/private/rules
go/private/rules
binary.bzl
nogo.bzl
2:19 (3%)
2:19 (13%)
view
16 x 2 go/private/actions
go/private/actions
asm.bzl
compilepkg.bzl
2:18 (35%)
2:18 (12%)
view
16 x 2 go/private/rules
go/private/rules
binary.bzl
test.bzl
344:359 (3%)
274:289 (2%)
view
16 x 2 go/private
go/private/rules
rpath.bzl
transition.bzl
2:18 (33%)
2:18 (5%)
view
16 x 2 go/private/actions
go/private/actions
compile.bzl
compilepkg.bzl
2:18 (19%)
2:18 (12%)
view
Duplicated Units
The list of top 3 duplicated units.
See data for all 3 unit duplicates...
Size#FoldersFilesLinesCode
6 x 2 go/tools/gopackagesdriver
go/tools/builders
flatpackage.go
stdliblist.go
45:51 
43:49 
view
6 x 2 go/tools/gopackagesdriver
go/tools/gopackagesdriver
bazel.go
bazel.go
136:142 
144:150 
view
6 x 2 go/tools/builders
go/tools/builders
md5sum.go
nogo_main.go
83:89 
54:60 
view