= Bugs to Fixed Binaries = Linking bug numbers to the binaries that purport to fix them. '''Contact:''' Evan Dandrea<
> '''On Launchpad:''' [[http://wiki.ubuntu.com/ErrorTracker|Ubuntu Error Tracker specification]] == Rationale == At present we have no mechanism to notify Ubuntu users that the crash they just experienced is actually fixed in a later update of the software that they do not have installed yet. We have all the information to be able to implement this, but it is not sufficiently connected: * The Ubuntu Error Tracker (http://errors.ubuntu.com) provides us with a mapping of crash signatures to bug numbers. * Bug numbers are referenced in Debian changes files for the source package which fixes the bug. * Source packages map to a set of binary packages for each architecture that source is built on. == Stakeholders == * Ubuntu Engineering * IS * Launchpad == User stories == '''As an ''' Ubuntu user<
> '''I want ''' to know if a software update fixes the crash I just experienced now or some time in the past<
> '''so that ''' I am incentivised to install the update and avoid this problem in the future<
> '''As a ''' developer<
> '''I want ''' to get updates to users quickly, and get feedback on them quickly<
> '''so that ''' I have a good understanding of the current quality of my application<
> == Constraints and Requirements == === Must === * Given input of a bug number, an Ubuntu series, and an architecture, a new API must provide a list of tuples containing a binary package name and its version. This will be requested by the Daisy service as it evaluates as crash signature it has just received from a client. * Given input of a binary package name, it's version, an Ubuntu series, and an architecture, a new API must provide a Librarian URL for that binary, if it exists. This will be requested by clients who cannot find the package and version in their local package cache. * Communicate over a secure channel. * Pick the later of two source uploads that purport to fix a bug number shared by both (regressions, mistakes). === Nice to have === * Respond quickly. Any delay in servicing the initial request will delay the "this problem is fixed" dialogĀ or the apport dialog from appearing after the application has visually disappeared (crashed). * Service all requests without timing out. === Out of scope === * Determining whether a fixed version does not actually fix the given bug will be handled outside this API, likely in the Ubuntu Error Tracker's Daisy service. == Success == === How will we know when we are done? === The Ubuntu Error Tracker web service, Daisy (lp:daisy), can service requests using this API. === How will we measure how well we have done? === * We will measure the time it takes to call the Launchpad API and feed that data into Graphite. * We will watch the (as yet to be implemented) "if all updates were installed" line against the "actual" line in the average number of crashes graph on the front page of http://errors.ubuntu.com. If those lines move closer together, we'll know we've had an impact on users updating their software to the latest version. If they move down, we'll know we've had an impact on the number of crashes they experience.