microsoft / edx-configuration
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
  • 92% duplication:
    • 72,158 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 66,695 duplicated lines
  • 5,063 duplicates
system92% (66,695 lines)
Duplication per Extension
yml95% (61,546 lines)
py74% (4,425 lines)
groovy100% (428 lines)
yaml96% (128 lines)
c100% (88 lines)
tf34% (52 lines)
cfg43% (28 lines)
Duplication per Component (primary)
playbooks/edx-east92% (17,799 lines)
docker/plays97% (16,137 lines)
playbooks/continuous_delivery96% (15,573 lines)
playbooks/roles98% (15,549 lines)
playbooks60% (592 lines)
playbooks/library100% (463 lines)
playbooks/callback_plugins100% (424 lines)
terraform/sitespeed34% (52 lines)
docker/build18% (33 lines)
util/vpc-tools2% (32 lines)
vagrant/base77% (21 lines)
playbooks/vagrant46% (20 lines)
ROOT0% (0 lines)
playbooks/sample_vars0% (0 lines)
util0% (0 lines)
util/jenkins0% (0 lines)
util/old0% (0 lines)

Duplication Between Components (50+ lines)

G docker/plays docker/plays playbooks/edx-east playbooks/edx-east docker/plays--playbooks/edx-east 32088 playbooks/continuous_delivery playbooks/continuous_delivery docker/plays--playbooks/continuous_delivery 31098 playbooks/roles playbooks/roles docker/plays--playbooks/roles 31098 playbooks/library playbooks/library docker/plays--playbooks/library 926 playbooks/edx-east--playbooks/roles 31162 playbooks/edx-east--playbooks/library 926 playbooks/continuous_delivery--playbooks/edx-east 31162 playbooks/continuous_delivery--playbooks/roles 31098 playbooks playbooks playbooks--playbooks/edx-east 1114 playbooks/callback_plugins playbooks/callback_plugins playbooks/callback_plugins--playbooks/edx-east 848 docker/build docker/build docker/build--docker/plays 150

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 5,063 duplicates...
Size#FoldersFilesLinesCode
905 x 2 docker/plays/roles/edxapp/defaults
playbooks/continuous_del...y/roles/edxapp/defaults
main.yml
main.yml
3:1253 (100%)
3:1253 (100%)
view
905 x 2 playbooks/continuous_del...y/roles/edxapp/defaults
playbooks/edx-east/roles/edxapp/defaults
main.yml
main.yml
3:1253 (100%)
3:1253 (100%)
view
905 x 2 docker/plays/roles/edxapp/defaults
playbooks/roles/edxapp/defaults
main.yml
main.yml
3:1253 (100%)
3:1253 (100%)
view
905 x 2 playbooks/edx-east/roles/edxapp/defaults
playbooks/roles/edxapp/defaults
main.yml
main.yml
3:1253 (100%)
3:1253 (100%)
view
905 x 2 docker/plays/roles/edxapp/defaults
playbooks/edx-east/roles/edxapp/defaults
main.yml
main.yml
3:1253 (100%)
3:1253 (100%)
view
905 x 2 playbooks/continuous_del...y/roles/edxapp/defaults
playbooks/roles/edxapp/defaults
main.yml
main.yml
3:1253 (100%)
3:1253 (100%)
view
470 x 2 playbooks
playbooks/edx-east
ec2.py
ec2.py
3:607 (100%)
3:607 (100%)
view
353 x 2 playbooks/continuous_delivery/roles/edxapp/tasks
playbooks/roles/edxapp/tasks
deploy.yml
deploy.yml
1:435 (100%)
1:435 (100%)
view
353 x 2 docker/plays/roles/edxapp/tasks
playbooks/roles/edxapp/tasks
deploy.yml
deploy.yml
1:435 (100%)
1:435 (100%)
view
353 x 2 playbooks/edx-east/roles/edxapp/tasks
playbooks/roles/edxapp/tasks
deploy.yml
deploy.yml
1:435 (100%)
1:435 (100%)
view
353 x 2 docker/plays/roles/edxapp/tasks
playbooks/continuous_delivery/roles/edxapp/tasks
deploy.yml
deploy.yml
1:435 (100%)
1:435 (100%)
view
353 x 2 docker/plays/roles/edxapp/tasks
playbooks/edx-east/roles/edxapp/tasks
deploy.yml
deploy.yml
1:435 (100%)
1:435 (100%)
view
353 x 2 playbooks/continuous_delivery/roles/edxapp/tasks
playbooks/edx-east/roles/edxapp/tasks
deploy.yml
deploy.yml
1:435 (100%)
1:435 (100%)
view
314 x 2 docker/plays/library
playbooks/edx-east/library
ec2_ami_2_0_0_1.py
ec2_ami_2_0_0_1.py
17:405 (100%)
17:405 (100%)
view
314 x 2 docker/plays/library
playbooks/library
ec2_ami_2_0_0_1.py
ec2_ami_2_0_0_1.py
17:405 (100%)
17:405 (100%)
view
314 x 2 playbooks/edx-east/library
playbooks/library
ec2_ami_2_0_0_1.py
ec2_ami_2_0_0_1.py
17:405 (100%)
17:405 (100%)
view
299 x 2 docker/plays/roles/nginx/tasks
playbooks/edx-east/roles/nginx/tasks
main.yml
main.yml
3:353 (100%)
3:353 (100%)
view
299 x 2 playbooks/edx-east/roles/nginx/tasks
playbooks/roles/nginx/tasks
main.yml
main.yml
3:353 (100%)
3:353 (100%)
view
299 x 2 playbooks/continuous_delivery/roles/nginx/tasks
playbooks/roles/nginx/tasks
main.yml
main.yml
3:353 (100%)
3:353 (100%)
view
299 x 2 playbooks/continuous_delivery/roles/nginx/tasks
playbooks/edx-east/roles/nginx/tasks
main.yml
main.yml
3:353 (100%)
3:353 (100%)
view
Duplicated Units
The list of top 20 duplicated units.
See data for all 50 unit duplicates...
Size#FoldersFilesLinesCode
74 x 3 docker/plays/library
playbooks/edx-east/library
playbooks/library
ec2_ami_2_0_0_1.py
ec2_ami_2_0_0_1.py
ec2_ami_2_0_0_1.py
0:0 
0:0 
0:0 
view
49 x 2 playbooks
playbooks/edx-east
ec2.py
ec2.py
0:0 
0:0 
view
45 x 2 playbooks
playbooks/edx-east
ec2.py
ec2.py
0:0 
0:0 
view
44 x 2 playbooks
playbooks/edx-east
ec2.py
ec2.py
0:0 
0:0 
view
37 x 2 playbooks
playbooks/edx-east
ec2.py
ec2.py
0:0 
0:0 
view
37 x 3 docker/plays/library
playbooks/edx-east/library
playbooks/library
ec2_ami_2_0_0_1.py
ec2_ami_2_0_0_1.py
ec2_ami_2_0_0_1.py
0:0 
0:0 
0:0 
view
37 x 2 playbooks/callback_plugins
playbooks/edx-east/callback_plugins
hipchat_plugin.py
hipchat_plugin.py
0:0 
0:0 
view
36 x 2 playbooks/callback_plugins
playbooks/edx-east/callback_plugins
task_timing.py
task_timing.py
0:0 
0:0 
view
32 x 3 docker/plays/library
playbooks/edx-east/library
playbooks/library
hipchat_2_0_0_1.py
hipchat_2_0_0_1.py
hipchat_2_0_0_1.py
0:0 
0:0 
0:0 
view
33 x 2 playbooks/callback_plugins
playbooks/edx-east/callback_plugins
hipchat_plugin.py
hipchat_plugin.py
0:0 
0:0 
view
32 x 2 playbooks/callback_plugins
playbooks/edx-east/callback_plugins
sqs.py
sqs.py
0:0 
0:0 
view
38 x 2 playbooks/callback_plugins
playbooks/edx-east/callback_plugins
sqs.py
sqs.py
0:0 
0:0 
view
24 x 2 playbooks
playbooks/edx-east
ec2.py
ec2.py
0:0 
0:0 
view
24 x 4 docker/plays/roles/gh_mirror/files
playbooks/continuous_del...y/roles/gh_mirror/files
playbooks/edx-east/roles/gh_mirror/files
playbooks/roles/gh_mirror/files
repos_from_orgs.py
repos_from_orgs.py
repos_from_orgs.py
repos_from_orgs.py
0:0 
0:0 
0:0 
0:0 
view
23 x 2 playbooks/callback_plugins
playbooks/edx-east/callback_plugins
task_timing.py
task_timing.py
0:0 
0:0 
view
22 x 2 playbooks
playbooks/edx-east
ec2.py
ec2.py
0:0 
0:0 
view
26 x 3 docker/plays/library
playbooks/edx-east/library
playbooks/library
ec2_ami_2_0_0_1.py
ec2_ami_2_0_0_1.py
ec2_ami_2_0_0_1.py
0:0 
0:0 
0:0 
view
24 x 3 docker/plays/library
playbooks/edx-east/library
playbooks/library
ec2_ami_2_0_0_1.py
ec2_ami_2_0_0_1.py
ec2_ami_2_0_0_1.py
0:0 
0:0 
0:0 
view
21 x 3 docker/plays/library
playbooks/edx-east/library
playbooks/library
hipchat_2_0_0_1.py
hipchat_2_0_0_1.py
hipchat_2_0_0_1.py
0:0 
0:0 
0:0 
view
20 x 4 docker/plays/roles/security/files/tmp
playbooks/continuous_del...oles/security/files/tmp
playbooks/edx-east/roles/security/files/tmp
playbooks/roles/security/files/tmp
GHOST.c
GHOST.c
GHOST.c
GHOST.c
20:44 
20:44 
20:44 
20:44 
view