Insert coin to begin

May 16, 2018

This week was interesting! I read the manuscripts base code and played with a lot of functions to learn how they work. It was fun because after being stuck on a few functions and classes, I finally understood that I should burn my laptop, giveup and go home. Good bye!





























Just kidding :P!

I studied the classes and functions present in metrics.py and esquery.py files. These are the main files through which all the metrics (git, github_issues, github_prs, gerrit, mls, its) have been implemented. I had to change some classes and add to classes so that I could realise some of the required metrics: such as open issues, issue open age, number of lines changed, etc. You can look at the realised metrics in this Notebook.

Note: whenever reading code, always start with the file which only imports builtin libraries or libraries which were downloaded using a package manager. This file will mostly be a root file which gets imported in other files in the project.

I was actually able to add some functionality that I think will be cool. Currently Manuscripts code only performs aggregations(sum, average, count and such) for the required Metrics. I thought why not get specific data for the metrics from the indices and create bargraphs and maybe pycharts(see what I did there?) to show how the data is changing. To do that, I added functions in esquery.py and metrics.py files so that I can get data for specific fields and in specific numbers. That code is currently in my fork of manuscripts.

I feel that by using only aggregation we will miss out on the extreme values that are present in the data: for example, the metric - Open issues age may have extreme values. Some of the issues might have been open since more than 200 or 250 days and that information will get blurred when we only look at the average of Open issue age. Thus to remedy that, we can and should query data from the index about the issue_id and the time_open_days. That way, we can plot that data to see how many and how much time has been passed since these issues were open.

This is just an example, ofcourse. Currently, the Growth-Maturity-Decline Work Group is working on expanding the Metric’s definitions as alot of them still require solid definitions. Therefore these functions will not be a part of the master branch of manuscripts yet. I have created a branch for the GMD-metrics and the Notebook will reflect the functions in them.

Apart from that, I made a PR fixing the help menu for Manuscripts. The older command, when run without parameters, just gave an error if necessary parameters were missing. Now, a help menu is displayed along with the usage instructions on how to use manuscripts.

I also created these 2 issues:

  • GMD-WD: This is regarding the metrics which need clarifiaction. The WG will be working on this issue, soon.
  • Mis-Matched classes: ITS class is inhereted in github_pr and github_issues classes. These classes should instead inherit from github_issues and github_pr master classes so that the code is consistent.

That was all that I could do this week. I had an exam today so I am free till sunday to work on the Notebook and make PRs for other issues in Manuscripts.

See you next wednesday!

Adios.