Patch Tracking for Linaro

Registered by James Westby on 2010-10-18

We wish to provide a system for tracking the status of patches, and providing metrics on them.

Blueprint information

Status:
Complete
Approver:
James Westby
Priority:
Medium
Drafter:
Paul Larson
Direction:
Approved
Assignee:
Guilherme Salgado
Definition:
Approved
Series goal:
Accepted for 11.11
Implementation:
Implemented
Milestone target:
milestone icon 11.06
Started by
Guilherme Salgado on 2011-02-14
Completed by
Guilherme Salgado on 2011-08-30

Related branches

Sprints

Whiteboard

(?)

Work Items

Work items for 11.06:
Finish deployment and make sure there are cronjobs for all scripts that must run periodically: DONE
Fix patchwork tests that hard-code URL segments as they broke when we moved all patchwork views under /patchwork: DONE
Investigate alternative charting libraries: DONE
Add a second dataset for accepted patches to the patch-age-distribution chart (dropped because it doesn't make sense to show them together): POSTPONED
Rewrite the charts on the frontpage using a decent charting library because gchart is unmaintained and the docs for it have disappeared: DONE
Show list of patches submitted by team members on a team's page: DONE
Implement a report showing the time-to-patch-acceptance averages: DONE
See if we can use the same scale for the two bar charts on the frontpage (dropped because their definition of "age" is not the same so it might not be a good idea to induce comparisons between them): POSTPONED
Link commit hashes to the gitweb view of them: DONE

Work items for 11.07:
Get feedback on the charts/frontpage: DONE
Trivialities (move team member list below the chart; remove "Incoming patches" heading on per-project patch list; use username instead of Person.name on members list when Person.name is None): DONE
Write tests for the charts/frontpage and refactor the code used there: DONE
Use gmane search by message ID (http://mid.gmane.org/) to link from a patch to the ML thread: DONE
Add patch list to project page, including accepted ones and sorting by date: DONE
Link to the project from the patch page: DONE
Get total number of commits per month (from January onwards) on all projects we contribute to, to compare with the number of patches we submitted: DONE
Add a form field in the header to enter patch number and go straight to it (dropped because having patches served on /NNN is better and already done): POSTPONED
Show (at the bottom of the home page) the 10 oldest patches, to shame people into gardening their patches: DONE
Make it possible to have some user-generated content shown on the frontpage so that we can put monthly highlights there: DONE
Pull Linaro-authored AOSP patches from review.source.android.com: DONE
Mention that we started collecting data in Jan 2011 and that the system went live on Jun 2011, which may help explain the rapid growth between Jan-Jun: DONE
Mention on the frontpage how many engineers were responsible for submitting the patches: DONE
Make the filters in patch lists more visible: DONE

Work items:
Design schema changes to keep track of state changes so that we can generate the charts designed: DONE
Implement the chart showing overall patches submitted/accepted per month: DONE
Implement chart showing patch age distribution: DONE
Implement chart showing patches submitted/accepted per month for projects: DONE
Implement chart showing patches submitted/accepted per month for teams: DONE
Design a new home page with graphs and overall counts for the current month, with links to patch lists and the user's outstanding patches: DONE
Create a FAQ, linked to from the home page, with answers to common questions: DONE
Make it possible to skip some subteams of ~linaro when syncing membership data from LP and start by skipping the PM team: DONE
Do not count patches submitted by people using non-linaro.org addresses: DONE
Change Patchwork to store patch authors (identified by "From:" lines preceding the patch) as well as patch submitters: DONE
Create a new page to list all patches submitted by the logged in user: DONE
Make sure any authenticated user has rights to change patch state on all projects: DONE
Use email addresses (as a fallback to List-ID headers) to look up the project to which a patch applies: DONE
Make sure that patches for which we don't have a registered project end up in the "Other" project: DONE
Write a script which re-parses the patches in the other-unknown project and move them to other projects when appropriate: DONE
Use Launchpad's login service to authenticate: DONE
Figure out how we're going to feed emails to patchwork's parser: DONE
Decide if we're going to abuse patchwork to parse revision/merge-proposal emails from LP or if we'll have a separate collector script for that: DONE
Make sure login.launchpad.net sends the OpenID sreg extension fields to us when a user authenticates: DONE
Provide a UI for mass-moving patches from one project to another: DONE
Design DB schema for storing the information we need for email -> person -> team mapping: DONE
Script which pulls email -> person -> team mapping from Launchpad (probably by traversing subteams of ~linaro): DONE
Design DB schema for linking DVCS branches/repos to a project in Patchwork: DONE
Script which scans commits on the location specified by every project and update state of patches that have been committed: DONE

Dependency tree

* Blueprints in grey have been implemented.