Thursday, June 25, 2009

Issue Sensor Redo

Progress of issue sensor is behind expectation. After investigated SensorBase's mechanism, I started to redo the issue sensor. At first, I just want to modify the original code somehow to make it a singleton. However, I kind of mess it up and finally almost redo it from scratch. It is almost finish and just need some unit tests before commit the code.

The sensor is more difficult than I image, because it now actually do some of the analysis job during sensor data collection. In order to preserve as much information as possible, the sensor take not only RSS feed, but also information from issue tracking system directly. The Google Issue Tracking System provides a RESTful link to the issue summary table in CSV format. This gives information include almost as much everything as extracting from individual issue html page. I only keep the field interesting, they are id, type, status, priority, milestone and owner. Here is how the sensor do its job.

Firstly, it retrieve all issue sensor data from sensorbase (It would not be too much because only on piece of data per issue only.), and also get the issue summary table. Then match each issue from the table to a sensordata. If a issue does not have a sensordata for it, it will create a sensordata for it. Secondly, it check the RSS feed, and add update information to the sensor data. The field names, such as id or type, are used as property key, and the property value consists of the field value as well as the timestamp, collected with "--". Finally, new and modified sensor data will be sent to sensorbase.

1 comment:

Anonymous said...

Hi Shaoxuan :)
excuse me if I'm bothering you but I'd like to receive some additional details about your very useful issue sensor. That's because I searched about it on Google code but I found out only this: which seems not being updated.

You wrote that additional info will be "id, type, status, priority, milestone and owner". Are there other info that will be provided in addition to those ones? I'll list below what I wish that a sensor could retrieve, then could you please mark which of the following data are provided by your sensor? Thanks really a lot ;)

1) with 'owner' do you mean a person to which a issue has been assigned?

2) Will you provide also:
- email of who reported this issue
- emails of users interested in changes to this issue
- uris of comments posted on this issue
- list of ids of issues on which this issue depends
- list of ids of issues whose cause could consists in this issue
- operatingSystem
- environment description
- number of votes for this issue
- patch id that resolved this issue

thanks a lot in advance for your patience
myriam (