src-d / hercules

Gaining advanced insights from Git repository history.
Other
2.63k stars 334 forks source link

Index out of range on single user "labours -m devs" analysis #320

Closed KevinSchiener closed 5 years ago

KevinSchiener commented 5 years ago

Labours throws an error when running on a output that has been generated with a user dictionary with only one user.

I wanted to get the devs timeline for the whole team so I added all team-members to a single line in the dev dictionary.

YAML: hercules.txt

(pve368) λ labours -i hercules.yml -m devs
Reading the input... done
Running: devs
Calculating the distance matrix
0it [00:00, ?it/s]
Ordering the series
Traceback (most recent call last):
  File "C:\Users\shanji\AppData\Local\Programs\Python\Python36\Lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "C:\Users\shanji\AppData\Local\Programs\Python\Python36\Lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\Users\shanji\python\pve368\Scripts\labours.exe\__main__.py", line 7, in <module>
  File "c:\users\shanji\python\pve368\lib\site-packages\labours\cli.py", line 449, in main
    modes[mode]()
  File "c:\users\shanji\python\pve368\lib\site-packages\labours\cli.py", line 349, in devs
    max_people=args.max_people,
  File "c:\users\shanji\python\pve368\lib\site-packages\labours\modes\devs.py", line 40, in show_devs
    clusters = hdbscan_cluster_routed_series(dists, route)
  File "c:\users\shanji\python\pve368\lib\site-packages\labours\modes\devs.py", line 227, in hdbscan_cluster_routed_series
    [0] + [dists[route[i], route[i + 1]] for i in range(len(route) - 1)]
  File "c:\users\shanji\python\pve368\lib\site-packages\labours\modes\devs.py", line 227, in <listcomp>
    [0] + [dists[route[i], route[i + 1]] for i in range(len(route) - 1)]
IndexError: index 1 is out of bounds for axis 0 with size 1
vmarkovtsev commented 5 years ago

Good catch! Thanks for reporting.

vmarkovtsev commented 5 years ago

This should be fixed in 10.5.2. Please ping here if there was something missed.