Project bug statistics at any given time
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Launchpad itself |
Triaged
|
Low
|
Unassigned |
Bug Description
Note: This isn't a bug report, but a feature request.
When trying to get bug statistics for a project, it's easy to get them at the time the request is created. However, it's pretty hard to get the bug statistics for a project at a given time. The data is there, but it's just not in the format needed for this task.
A workaround for this problem is get all bug tasks for a project, get the activity for each tasks and re-create the status of the bug tasks at any given time by traversing the history changes back to the time when the task was created.
Despite with this approach it's possible to get the desired results, it has some drawbacks that make it inconvenient:
* It requires a lot of API requests which entails that it takes quite a long time to get the data. This is a big problem because launchpadlib doesn't work well with multiple processes/threads (bugs #459418, #513116), so it's better to use direct http requests against the API to get the bug tasks activity instead of launchpadlib
* Even if data is saved after being downloaded, there's no way to get updates since the last time data was retrieved, that is, the way to get the updates is to traverse the activity of all bug tasks again.
To make all this easier, what I'd like have is:
* A way to get bug statistics for a given project and date with a single API request.
* A way to get updates on bug activity for the whole project since a given date with a single API request.
I believe the two of them could be fixed by implementing some sort of bug activity rss feed for a project with pagination (getting the latest updates in the first page).
Changed in launchpad: | |
status: | New → Triaged |
importance: | Undecided → Low |
tags: | added: lp-bugs projects |
tags: | added: oem-services |
Per lifeless, something like this should let you find activity since a certain date: products[ 'foo']. searchTasks( modified_ since=' ...')
print list(lp.