Mozilla Mercurial - generate list of recently fixed bugs related to Firefox for desktop

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

As of 2015-11-10 16:42:21 UTC. See the latest version.

Author
darkred
Ratings
0 0 0
Version
4
Created
Updated
License
N/A
Applies to
  • /^https?:\/\/hg\.mozilla\.org.*pushloghtml.*/

Author's Description

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-beta/pushloghtml?startdate=1+day+ago&enddate=now
Beta: https://hg.mozilla.org/releases/mozilla-beta/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



Screenshot of the resulting list:

and screenshot of progress logging in Web Console:

During the procedure, you may open the Web Console (Ctrl+Shift+K) to monitor progress.
Note 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). And, after v2 it now uses the Bugzilla REST API, i.e. the script requests from Bugzila only those fields that it requires(not entire HTML pages), therefore resulting in reduction to the procedure duration to less than half (less than 15 sec for parsing 165 bugs)
Note 2: Because I don't have edit privileges in Bugzilla, therefore I can't check,
so the script works ok only when you either:
haven't login in Bugzilla, or
have login (but without having edit privileges).


The procedure:

  • gets all bug links in the page and de-duplicates them
  • retrieves in the background the page for each bug,
    and extracts the relevant title, status, product. component, platform and whiteboard values.
  • then it filters out the irrelevant bugs from the list
  • then it sorts it based on the Product: Component string
  • finally it displays the results using a jQuery dialog.



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 'restricted access' 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,
  • to Brock Adams for his help on this i.e. this, and
  • to johnp_ for suggesting the REST API and providing pseudo-code and examples for it too in here.