happy bmo push day!

the following changes have been pushed to bugzilla.mozilla.org:

  • [779434] refreshing a page does not update fields
  • [779862] shift patchreader to a bugzilla namespace module and fix long standing issues
  • [778971] A watched component doesn’t show up in my Component Watching preferences pane
  • [778631] use a persistent Template::Provider to avoid recompiling templates between page loads on mod_perl
  • [780849] incorrect auto-linkification of full CVE urls in comments
  • [765842] creation of a Finance product and custom bug entry form

two of these changes address long standing issues with bugzilla.mozilla.org:

diff/interdiff issues

bugzilla uses the cpan module PatchReader to parse diffs, which is used when viewing diffs and interdiffs. the current release of patchreader chokes on hg diffs due to the inline comments.

we’ve taken the step of bringing the code from patchreader into bmo’s codebase in order to patch this and a few other issues, as well as providing any/all patches to the upstream patchreader.

accidentally reverting someone else’s changes

a long standing problem is how bugzilla and firefox interact when a page has been refreshed between edits, has been addressed.

the problematic scenario is:

  1. you load a bug, and the priority is set to P3.  you change something else but don’t alter the priority field
  2. someone else edits the bug, and changes the priority to P1
  3. you refresh the page in firefox

before this week’s changes, after the page is refreshed firefox will remember that P3 was the selected priority, and that will stay selected. when you submit your changes you won’t encounter a mid-air collision warning because bugzilla can’t determine if the priority field was changed before or after your refresh, resulting in the priority “silently” being changed from P1 to P3.  this issue applies to all <select> fields, not just priority.

bugzilla now works around this issue by keeping a track of fields which you explicitly change, and after you refresh the page, any field which you didn’t explicitly change will be updated to the new value from the server.