Hi, This is the first report on the GSoC project 'Improving Team Activity Metrics' with Sukhbir Singh and Andreas Tille as the mentors.
The goal of this project is to develop a web interface and a data access API to present the various stats collected from different sources in the Debian that can help understand the performance of various teams in Debian. Performance of each team can be analyzed using different metrics like the number discussions on the mailing list, number of commits/line changes and number of bugs closed. These numbers when analyzed over a period of time gives us an insight into the team activity. Over the past month, not much code has been produced but I have had extensive discussions[1] with mentors and other developers who have been very helpful and I have learned a lot of new things. Since this project is all about metrics, just for the record, we have exchanged sixty six emails in past one month discussing various aspect of the project :) This mail is divided into two sections. One section exclusively deals with all the discussions we have had and the various decisions that we have arrived at and the other section deals with the actual progress in terms of code. [Discussions] Andreas created an account for me in the blends.d.n server and gave me access to the relevant data in the database. Sukhbir asked me to create an account in Alioth and gave me push access to the project repository[2]. I created a blog[3] and submitted it to Ana who put my feeds into planet.d.o though I do not write frequently. The first task was to finalize a python web framework for the project. The mentors were pretty flexible and asked me select a framework of my choice, the only condition being the selected web framework must be acceptable on a debian.org host for which Andreas suggested that I ask the DSA. I got some good response from Enrico Zini and Raphaƫl Hertzog on the DSA mailing list and I was told that any framework packaged in stable+backports is acceptable. Enrico gave a detailed reply and a link to his custom django app with the default site layout of the Debian website[4]. After some research, we fixed Django as our web framework. I was playing with the Django web framework for sometime as I am completely new to this. I found it a bit strange and not very easy to use as compared to the other web frameworks that I have used before. I am fairly comfortable with Django now. The data collected by the project needs to be presented graphically on the web interface. There are two ways to do this, one could be either render an interactive visualization on the client side browser using javascript or render it as an image on the server side and send it to the client. I pushed for the client side rendering for various reasons but we are yet to arrive on a decision regarding this as we first need to analyze all pro's and con's of the available options and the pick the best one. For over a week, I played around with different javascript charting libraries like D3, jqPlot, g.rapheal. jqPlot is easy to use but customization is difficult. D3 is extremely powerful library with an equally steep learning curve but gives pixel level precision of the visual output. g.rapheal comes somewhere in between. After some quick experimentation, I decided to learn more about D3. I have had my own share of difficulties when I started out with D3 but after reading some good tutorials and blogs[5], I was finally able to create some basic visual forms like bar chart and line charts. The library is promising and I hope to use this in the project. Mentors asked me to focus on 'what-to-present' part initially as 'how-to-present' part of the project will be the natural consequence of our initial decision. It made more sense and we had a good discussion on the 'what-to-present' part of the project. I laid out a clearly defined vocabulary for our discussions and presented my point of view[6]. In an earlier discussion I proposed that we link different metrics of a particular team together, i.e., different metrics like mailing list discussions, project commits and other metrics for a team be linked together which can give us 'the big picture' of the working of the team. Sukhbir suggested we use a simple config file to link them together and showed me a sample config file. I was also reading about unit testing and had initially decided to follow TDD methodology but since it is completely new to testing, I believe it'll take me some more time to get used to this hence I have not started with the testing part yet. [CODE] All the code is accessible in our project repository[2] I have started two branches for the project called 'web' and 'web-devel'. All the experimental and in-progress code is pushed to 'web-devel' branch and its refined and documented before it is pushed to the mainline branch 'web'. I cherry picked Enrico's reusable django app that has the base layout of Debian website from code base of nm.d.o to the current project repository. I have written code to parse the config file to get the necessary data out of it. For a given team, we can get the names of the metrics that we need by looking at the config file. I wrote some sql to extract relevant data out of the database. I had fun writing this as I had to think quiet hard to come with a good solution. Some python code has been written that manipulates the result set from the database and produces a JSON output. This output could be an endpoint to the API that will be developed in the near future. I have had good fun while working on the project. Everyone I have interacted with in the Debian community were welcoming and helped me whenever I needed anything. My mentors Sukhbir and Andreas deserve a special mention. They are very responsive to the countless mails I send, give me a enough freedom to work the way I want and guide me wherever required. Thank you guys :) If you have some questions or need any further clarification, Please send a mail to our project mailing list[7]. Thanks. [1] : http://lists.alioth.debian.org/pipermail/teammetrics-discuss/2012-May/thread.html [2] : http://swvist.github.com/ [3] : http://teammetrics.alioth.debian.org/ [4] : http://lists.alioth.debian.org/pipermail/teammetrics-discuss/2012-May/000894.html [5] : https://github.com/mbostock/d3/wiki [6] : http://lists.alioth.debian.org/pipermail/teammetrics-discuss/2012-May/000872.html [7] : [email protected] -- Regards, Vipin Nair National Institute of Technology, Calicut http://swvist.github.com _______________________________________________ Soc-coordination mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/soc-coordination
