Septimana quinque
Week 5
This week marked the beginning of the second coding phase. In the first phase, a solid structure for the implementations was almost completely done. In this phase, we will try and finish most of the non-pandas implementations, along with tests and a script to run all metric implementations on given data.
Tasks for the week
- Create a script and a metric implementation for issues
- Do the above for pull request related metrics
- Continue writing tests
- Different implementation for commit related metrics.
- Start writing a script to calculate all metrics on given data
Summary for the week
-
Create a script for issue related metrics(#180)
I updated the Open issue age metric with latest changes, also adding issue.py and Perceval issue data as a JSON file.
-
Create a script for pull request related metrics (#193 #194)
I added the pullrequest.py script, pull request Perceval data as a JSON file and implemented the following metrics:
- Reviews
- Reviews Accepted
$ \ $
-
Continue writing tests (#200)
Created a draft pull request for the tests I am writing. This is a work in progress but can be reviewed. I had a few queries which I added as comments in the pull request discussion. -
Different implementation for commit related metrics (#190 #172)
Jesus suggested a few changes to the commit related metrics. Instead of using nested aggregations functions or adding rows to columns he suggested creating a different dataframe or redefining the_flatten
method -
Start writing a script to calculate all metrics on given data
Unfortunately, I was unable to make much progress on this front. I am trying out a few different solutions now and will submit a patch in the next couple of days.
$ \ $
Meeting details
The weekly IRC meeting with my mentors held on Friday (the 5th) is summarized below.
Agenda
- A new naming scheme
Summary
-
A new naming scheme
Though we discussed several minor things, like opening a couple of issues to improve certain parts of the code, a new naming scheme for the modules and classes was the main thing we discussed.- For the individual metric classes, we will try following a
<metric_name>_<system>.py
naming. The system for commit-related metrics would begit
, while that for issues and pull requests would begithub
. - For higher level classes, a
<category>_<system>.py
scheme would be followed. - Class names would be the same, but of course, in camel-case and without the underscores.
- For example,
commit.py
would becomecommit_git.py
, while the classCommit
would becomeCommitGit
. Along the same lines, the module for theCode_Changes
metric would becode_changes_git.py
, while the class itself would be namedCodeChangesGit
.
- For the individual metric classes, we will try following a
$ \ $
- Tasks for the next week
-
Carry on with non-pandas implementations
-
Open the draft pull request for tests for review
-
Finish pending issues
-
Design script to compute all metrics on different data like issues, commits and pull requests when provided to the script
-
The log for this meeting can be found here.
The next meeting will be on the 16th of July.
For older GSoC posts, please click here.