bazelbuild / rules_apple
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
  • 33% duplication:
    • 30,551 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 10,362 duplicated lines
  • 10,168 duplicates
system33% (10,362 lines)
Duplication per Extension
bzl37% (9,592 lines)
py15% (770 lines)
Duplication per Component (primary)
apple/internal38% (8,781 lines)
tools/plisttool25% (658 lines)
apple20% (478 lines)
apple/testing64% (333 lines)
tools/versiontool25% (55 lines)
tools/bundletool7% (31 lines)
tools/xctoolrunner12% (26 lines)
tools/alticonstool0% (0 lines)
tools/dossier_codesigningtool0% (0 lines)
tools/codesigningtool0% (0 lines)
tools/clangrttool0% (0 lines)
tools/bitcode_strip0% (0 lines)
tools/imported_dynamic_framework_processor0% (0 lines)
tools/provisioning_profile_tool0% (0 lines)
tools/swift_stdlib_tool0% (0 lines)
tools/wrapper_common0% (0 lines)
ROOT0% (0 lines)

Duplication Between Components (50+ lines)

G apple/internal apple/internal apple apple apple/internal--apple 1451 apple/testing apple/testing apple/internal--apple/testing 1215 apple--apple/testing 271

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 10,168 duplicates...
Size#FoldersFilesLinesCode
145 x 2 apple/internal
apple/internal
ios_rules.bzl
watchos_rules.bzl
1147:1297 (7%)
137:287 (16%)
view
130 x 2 apple/internal
apple/internal
macos_rules.bzl
macos_rules.bzl
574:707 (7%)
976:1109 (7%)
view
102 x 2 apple/internal
apple/internal
ios_rules.bzl
ios_rules.bzl
948:1049 (5%)
1680:1781 (5%)
view
101 x 2 apple/internal
apple/internal
macos_rules.bzl
macos_rules.bzl
949:1053 (6%)
1140:1244 (6%)
view
77 x 2 apple/internal
apple/internal
macos_rules.bzl
macos_rules.bzl
574:651 (4%)
1167:1244 (4%)
view
64 x 2 apple/internal
apple/internal
ios_rules.bzl
tvos_rules.bzl
1750:1816 (3%)
894:960 (5%)
view
58 x 2 apple/internal
apple/internal
ios_rules.bzl
tvos_rules.bzl
1338:1399 (2%)
977:1038 (5%)
view
57 x 2 apple/internal
apple/internal
ios_rules.bzl
tvos_rules.bzl
17:73 (2%)
21:77 (5%)
view
57 x 2 apple/internal
apple/internal
macos_rules.bzl
tvos_rules.bzl
17:73 (3%)
21:77 (5%)
view
57 x 2 apple/internal
apple/internal
ios_rules.bzl
ios_rules.bzl
692:751 (2%)
1158:1217 (2%)
view
57 x 2 apple/internal
apple/internal
ios_rules.bzl
watchos_rules.bzl
692:751 (2%)
148:207 (6%)
view
57 x 2 apple/internal
apple/internal
ios_rules.bzl
macos_rules.bzl
17:73 (2%)
17:73 (3%)
view
55 x 2 apple/internal
apple/internal
macos_rules.bzl
macos_rules.bzl
1227:1283 (3%)
1416:1472 (3%)
view
54 x 2 apple/internal
apple/internal
tvos_rules.bzl
watchos_rules.bzl
20:73 (4%)
20:73 (6%)
view
53 x 2 apple/internal
apple/internal
macos_rules.bzl
macos_rules.bzl
634:688 (3%)
844:898 (3%)
view
53 x 2 apple/internal
apple/internal
macos_rules.bzl
macos_rules.bzl
844:898 (3%)
1036:1090 (3%)
view
53 x 2 apple/internal
apple/internal
ios_rules.bzl
watchos_rules.bzl
17:69 (2%)
21:73 (6%)
view
53 x 2 apple/internal
apple/internal
macos_rules.bzl
watchos_rules.bzl
17:69 (3%)
21:73 (6%)
view
52 x 2 apple/internal
apple/internal
macos_rules.bzl
macos_rules.bzl
1055:1109 (3%)
1434:1488 (3%)
view
52 x 2 apple/internal
apple/internal
macos_rules.bzl
macos_rules.bzl
653:707 (3%)
1434:1488 (3%)
view
Duplicated Units
The list of top 3 duplicated units.
See data for all 3 unit duplicates...
Size#FoldersFilesLinesCode
10 x 2 tools/plisttool
tools/plisttool
plisttool_unittest.py
plisttool_unittest.py
0:0 
0:0 
view
10 x 2 tools/plisttool
tools/plisttool
plisttool_unittest.py
plisttool_unittest.py
0:0 
0:0 
view
9 x 2 tools/plisttool
tools/plisttool
plisttool_unittest.py
plisttool_unittest.py
0:0 
0:0 
view