Week 4 summary

The last week, we mainly focussed on adding new implementations. Another important thing we started work on was tests.

Tasks for the week

  • Update latest changes to CodeChanges metric
  • Implement next few metrics related to Commits
  • Create issue addressing last comments for CodeChanges pull request
  • Create pull request for open issue age metric
  • Start writing tests

Summary for the week

  • Update latest changes to CodeChanges metric(#162)

    Update the pull request with the latest proposed changes and ideas.

  • Implement next few metrics related to Commits(#162)

  • Create issue addressing last comments for CodeChanges pull request (#175 #179)
    Since the project is still in its early stages, a few parts of the code can be improved. To serve as a reminder, Jesus suggested opening issues for each point. I opened the following:

    • Being forced to use relative imports The current structure of the project was making it difficult to use anything else but relative imports for the package and notebooks to work.

    • compute_time_series method This method, present in each metric implementation class was causing a few problems. Jesus suggested using a slightly different approach using DataFrame.resample(), which I am working on as of now.

  • Create pull request for Open Issue Age metric(#180)
    I added the latest issue.py along with the first issue-related metric — open issue age. Early on in the project, we had decided that the data the metrics analyze would be separate by category. That is, issues, commits and pull requests would have their own data files. Along with this pull request, I added the data for computing issue-related metrics.

  • Start writing tests(#12)
    I had started writing unittests tests at the end of last week. Nothing much to add here!

$ \ $

Meeting details

The weekly IRC meeting with my mentors held yesterday (the 24th) is summarized below.

Agenda

  • compute_timeseries implementation
  • Location and structure of tests folder

Summary

  • compute_timeseries implementation
    As mentioned above, we decided to go with a different approach, which Jesus suggested. It involves working with DataFrame.resample(). Also, we decided to move the definition up in the heirarchy to the Metric (root) class.

  • Location and structure of tests folder
    We decided on having both unittests as well as metric tests. The metric tests will evaluate the value of the metric calculated by the metric class. The structure we are going for is this:
      tests (pure python)
          - unittests for each file
          - one file per Category class (commit, issue and pull request)
              for metric tests of all classes in the heirarchy
            
      tests_df (using pandas)
          - unittests for each file
          - one file per Category class (commit, issue and pull request)
              for metric tests of all classes in the heirarchy  
            
    
  • Tasks for the next week
    • Update all metrics created till now with recent ideas

    • Continue with tests

    • Start with the pure python implementations

The log for this meeting can be found here.

The next meeting will be on June 28th.
For older GSoC posts, please click here.

PS: Sorry for the really short post! Will explain things in a bit more detail next week!