darkred / Firefox for desktop - list fixed bugs in Mercurial

Published:

Version: 4.2.2 updated

Summary: It generates a list of fixed bugs related to Firefox for desktop in Mozilla Mercurial pushlogs

License: MIT License (Expat)

This userscript applies to Mozilla Mercurial pushlog pages.

It generates a list of only the bugs related to Firefox for desktop in Mozilla Mercurial pushlogs.
It's basically for creating lists similar to the "The Official Win32 xxxxxxx builds"
in Firefox Builds • mozillaZine Forums but for any date interval.

Example links where the script applies to: (changelogs for the last 1 day interval in these examples)
Nightly: https://hg.mozilla.org/mozilla-central/pushloghtml?startdate=1+day+ago&enddate=now
Inbound: https://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?startdate=1+day+ago&enddate=now
fx-team: https://hg.mozilla.org/integration/fx-team/pushloghtml?startdate=1+day+ago&enddate=now
Aurora: https://hg.mozilla.org/releases/mozilla-aurora/pushloghtml?startdate=1+day+ago&enddate=now
Beta: https://hg.mozilla.org/releases/mozilla-beta/pushloghtml?startdate=1+day+ago&enddate=now
Release: https://hg.mozilla.org/releases/mozilla-release/pushloghtml?startdate=1+day+ago&enddate=now

Also, (about the "enddate" value when you do such a search):
instead of putting "now" you may put the changeset of your currently installed build (via about:buildconfig|click on that link)
so that you may view only the bugs that have been fixed till your current build - not those that have been fixed til the current time in the relevant branch.

For example: (for inbound) instead of using:
https://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?startdate=1+day+ago&enddate=now
you may enter this: (it's for the changeset of this build)
https://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?startdate=1+day+ago&enddate=c4dd82aa903d



Screenshots of the resulting list:
v5.5.3

v4.2

and screenshot of progress logging in Web Console:

During the procedure, you may open the Web Console (Ctrl+Shift+K) to monitor progress.

Notes:

  1. The requests for each link are done asynchronously, i.e. Firefox UI is not locked and frozen until the request completes. Also, the procedure completes quickly (multiple connections).
    After v4 (thanks to johnp) it now uses the Bugzilla REST API, therefore resulting in huge reduction to the procedure duration (a few seconds for parsing hundreds of bugs), i.e.:

    • requests from Bugzila only those fields that it requires (not entire HTML pages),
    • uses one network connection for all examined bugs (using the format=multiple GET-Parameter) and
    • parses the response as JSON*
  2. Since v4.2 it now stores the list content HTML code to clipboard.
    (You may comment out lines 11 and 157 to disable this new feature)
    This feature is aimed to MozillaZine daily "The Official Win32 xxxxxxx builds" maintainer :
    so, you may do these easy steps in order to produce the Nightly thread:

    • Go to e.g. http://www.garyshood.com/htmltobb/, paste the HTML code, and press "Submit HTML":
      it will be converted to BBCode. Copy that to clipboard (Ctrl+C).
    • Then, open Notepad++, paste the newly copied content. Now, by following this, you may append numbering to each line. i and the increment (1). It will add numbering to each line)[/i]
    • Finally, by pressing Alt+dragging down, you may do a vertical selection (screenshot),
      so that you may append a dot (.) (and a space where necessary) after each line numbering.
  3. In v5 it displays the results as a sortable table (instead of a plain list),
    showing in an extra column the "Last Modified Date" of each bug, the values of which are converted to relative time (e.g, "1 hour ago") taking account the user's timezone. (I've created a custom sorter for this extra column).
    By default it's sorted by "Modified Date" and "Product:Component"(and by "Summary") - as a mozilla-inbound user I find this most practical because this way I can check whether any notable bugs have been just fixed, and therefore if it's worth downloading the latest m-i build.
    But, you may sort the table as you wish: you can sort multiple columns simultaneously by holding down the Shift key and clicking a 2nd, 3rd or even 4th column header.

  4. In v5.5.1 I bind keypresses of ` to toggle the list display to either:

    • sorted by "Modified Date", "Product:Component" and by "Summary") (by default)
      and having separators between groups of the same timestamps (screenshot), or
    • by "Product:Component" and by "Summary" (i.e. without the separators) (screenshot)


The procedure:

  • gets all bug links in the page and de-duplicates them
  • sends 1 request to Bugzilla for all the above bug links, requesting only the few fields that it requires
    (id, summary, status, resolution, product, component, op sys, platform, whiteboard, last change time)
  • filters out the irrelevant bugs based on the response
  • finally it displays the results in a sortable table using a jQuery dialog
    where it's sorted by default by Modified Date, Product: Component and Summary.
    (for the "Modified Date" column, the following libraries are used: tablesorter, moment.js, moment-timezone.js, jsTimezoneDetect, date.js) and Keypress.



What it considered relevant/irrelevant:
(info provided kindly by winapp2 and Josa, both maintainers (the first no longer) of the "Official Win32 build" threads)

Relevant Status values

  • RESOLVED
  • RESOLVED FIXED
  • VERIFIED
  • VERIFIED FIXED

Relevant Product values

  • Add-on SDK
  • Cloud Services
  • Core
  • Firefox
  • Hello (Loop)
  • Toolkit

Relevant Component value (belonging to Product: Core)

  • Embedding:APIs

Irrelevant Component values (all belonging to Product: Core)

  • AutoConfig
  • Build Config
  • DMD
  • Embedding: GRE Core
  • Embedding: Mac
  • Embedding: MFC Embed
  • Embedding: Packaging
  • Hardware Abstraction Layer
  • mach
  • Nanojit
  • QuickLaunch
  • Widget: Gonk

Irrelevant are also considered bugs with restricted access (you may find the bugs which were filtered out for being private, by opening Web Console and enter 'requires authorization' in the 'Filter output' textbox. Then you may click on the relevant links to open them (those that you have access to).



Thanks a lot to:

  • wOxxOm for his help in here,
  • Brock Adams for his help on this i.e. this, and
  • johnp for modifying my code thus offering v4 and v4.1 that is here. Your contribution is most appreciated!



Hosted in GitHub

Rating: 0