Add an optional regressed-by field in bugs
Categories
(bugzilla.mozilla.org :: General, enhancement)
Tracking
()
People
(Reporter: marco, Assigned: kohei.yoshino)
References
(Blocks 3 open bugs)
Details
Attachments
(2 files)
There are ways to find, given a regression bug, which bug caused the regression, but they are hardly 100% accurate. It would be nice if developers had a way to mark which bug caused another. Currently, sometimes the "Blocking" or "Depends on" fields are used to do that, which obviously has several shortcomings.
This has been discussed before, and I'm supportive of it, but it will require documentation and a commitment by all parties to abide by the policy. I'd be happy to draft a policy on this and we can explore what that field would look like in use on the development BMO instance. -- Emma
I'm ni'ing a group of eng. managers who are in the weekly regression triage meeting for feedback on this.
Also, this implies bugs that introduced regressions should have a 'regresses' field.
Comment 5•3 years ago
|
||
For more context: * Stuart and myself have projects to use more and more machine learning on bugs. As part of an analysis that Calixte did last year, not having clear regression information was a big pain for this work. * We have some toolings (as part of https://github.com/mozilla/relman-auto-nag) which helps us identify missing metadata in the bug. This will help us to update this field.
:dylan is it possible to set up a regressed-by and regresses relationship without having to write code? If not, I can at least set up 'regressed-by' so that we can unblock people.
Comment 7•3 years ago
|
||
I can see where this would be clearer, and ease various bits of automation, at the addition of yet more complexity/fields, which is a minus. There will be edge cases (regressed by a combination of bug X and bug Y - for example if bug Y flips a pref to enable code in bug X). However, you can just link it to one of them. Right now, as said, people (normally, if they remember) mark a regression as blocking the original bug that landed the code. Which, as is said, is confusing at times (but Blocks vs Depends On is confusing in general for this case; it works better for "Bug X can't land until bug Y lands"). If we add Regressed-By, we need to add Regresses, or we need to add any bug poked by Regressed-By as a blocker to the bug. That would mean if Bug Y was a regression caused by Bug X, you set Regressed-By: X in bug Y, and bugzilla would also add Bug Y to the Depends On field of bug X, and add bug X to the Blocks field of Bug Y. Note: No one will go back and set Regressed-By on older bugs, barring a few random exceptions. IMO, of course
Comment 9•3 years ago
|
||
Seems like a good idea if the process is simpler than hooking up blocking deps. I'd suggest making this a comma separated list type input.
Comment 10•3 years ago
|
||
(In reply to Jim Mathies [:jimm] from comment #9) > Seems like a good idea if the process is simpler than hooking up blocking > deps. I'd suggest making this a comma separated list type input. I discussed this with Dylan and it should be able to implemented in the same manner as the blocks/blocked-by fields, both of which support lists of bugs. Working with Dylan to schedule the work.
Comment 11•3 years ago
|
||
We discussed with the release management. We think that we should limit the number of bug to 1 that in field To be more explicit, regressed-by should accept only one bug. In the vast majority of the cases, it will be case.
Comment 12•3 years ago
|
||
this looks a lot like bug 490926. it's been a while, but iirc bugzilla already supports custom fields that hold a single relationship bug id. the blockers on bug 490926 were to support multiple bugs.
Comment 14•3 years ago
|
||
Okay, if we're all clear on this supporting one bug, then I will to add this to my list of plans to draft so we can enable it. Thank you.
Comment 15•3 years ago
|
||
Will update this bug after I conduct an experiment.
Comment 17•3 years ago
|
||
Ah yes! So we can add a custom bug field for this. There is one constraint and one small bug: - the relationship is asymmetric, a bug can only have one 'is regressed by' bug. - a code change is required because in the default view, the new custom field won't show up.
| Reporter | ||
Comment 18•3 years ago
|
||
(In reply to Dylan Hardison [:dylan] (he/him) from comment #17) > - the relationship is asymmetric, a bug can only have one 'is regressed by' > bug. I think this is OK, at least for now, given comment 11.
Comment 19•3 years ago
|
||
Great news Dylan, thanks!
Comment 20•3 years ago
|
||
Please prioritize the code change. There was a recent meeting to review the definition of the regression keyword used in Bugzilla. Is this something that :kohei could do?
| Assignee | ||
Comment 21•3 years ago
|
||
Sure, it’s something like Mentors and Crash Signature fields, I guess.
| Assignee | ||
Comment 22•3 years ago
|
||
But, is that has to be a custom field? Regression tracking is not specific to BMO. It should be useful for other Bugzilla instances as well.
| Assignee | ||
Comment 23•3 years ago
|
||
(In reply to Kohei Yoshino [:kohei] from comment #22) > But, is that has to be a custom field? Regression tracking is not specific > to BMO. It should be useful for other Bugzilla instances as well. What do you think, :dylan?
Comment 24•3 years ago
|
||
(In reply to Kohei Yoshino [:kohei] from comment #23) > (In reply to Kohei Yoshino [:kohei] from comment #22) > > But, is that has to be a custom field? Regression tracking is not specific > > to BMO. It should be useful for other Bugzilla instances as well. > > What do you think, :dylan? This would be much simpler for now as a custom field and if other installs want to have something like this they could also just use a custom field. THis way it is not enforced on all installs. (In reply to Kohei Yoshino [:kohei] from comment #21) > Sure, it’s something like Mentors and Crash Signature fields, I guess. Yes. I think this is something trivial and you could go ahead and work on it. I can help out if needed. dkl
| Assignee | ||
Comment 25•3 years ago
|
||
Putting in my queue this week.
Comment 26•3 years ago
|
||
We need to document this field's behavior, how we expect it to be used, and what we plan to do with existing bugs. Can we tell from a bug with the regression keyword and a non-empty blocks field what the relationship is?
| Assignee | ||
Comment 27•3 years ago
|
||
WIP: https://github.com/kyoshino/bmo/compare/bug-1461492-regressed-by
Comment 28•3 years ago
|
||
What do you need from me to drive this to being done?
| Assignee | ||
Comment 29•3 years ago
|
||
I think I just need a validation to complete the work. It’s basically a copy of the existing dependency stuff. Should be done soon.
| Assignee | ||
Comment 30•2 years ago
|
||
I have restarted to work on this. PR should be ready in a few days 🤞
| Assignee | ||
Comment 31•2 years ago
|
||
progress, progress... https://github.com/kyoshino/bmo/compare/bug-1461492-regressed-by
I still think these regression fields could be a built-in feature that can be enabled or disabled by admins, like aliases and see also, rather than having them as custom fields, given the user base of upstream Bugzilla. This kind of thing may not be suitable for an extension.
Comment 32•2 years ago
|
||
(In reply to Kohei Yoshino [:kohei] (Bugzilla UX) (FxSiteCompat) from comment #31)
progress, progress... https://github.com/kyoshino/bmo/compare/bug-1461492-regressed-by
I still think these regression fields could be a built-in feature that can be enabled or disabled by admins, like aliases and see also, rather than having them as custom fields, given the user base of upstream Bugzilla. This kind of thing may not be suitable for an extension.
That sounds fine to me. Would you want guidance on how to do that?
| Assignee | ||
Comment 33•2 years ago
|
||
I think I’m almost done 😀 Will finish tomorrow.
| Assignee | ||
Comment 34•2 years ago
|
||
Here we go.
| Assignee | ||
Comment 35•2 years ago
|
||
So my PR is finally ready, but I’d like to rethink about the field name that will be paired with regressed_by. I used regresses as Emma suggested earlier, but it may sound unnatural for some people. Field names should be nouns whenever possible, so how about regressions? Other possibilities include caused and introduced, both are verbs though.
| Assignee | ||
Comment 37•2 years ago
|
||
regressed_by is probably okay.
regressed_by✅caused_byintroduced_by
I’m talking about the opposite field:
regressions- noun; maybe the best?regresses- Emma’s initial proposalregressed- confusing ❌causes- verb but may look like plural noun =regressed_by❌causedintroducesintroduced
Comment 38•2 years ago
|
||
(In reply to Kohei Yoshino [:kohei] (Bugzilla UX) (FxSiteCompat) from comment #37)
regressed_byis probably okay.
regressed_by✅caused_byintroduced_byI’m talking about the opposite field:
regressions- noun; maybe the best?regresses- Emma’s initial proposalregressed- confusing ❌causes- verb but may look like plural noun =regressed_by❌causedintroducesintroduced
According to the dictionary regresses is a plural noun so I feel like it would be ok.
Maybe caused_by and causes would be less confusing?
Comment 39•2 years ago
|
||
I wonder if we should not use something similar to regressed_by to make it clear that it is the opposite field
- caused_regressions ?
| Assignee | ||
Comment 40•2 years ago
|
||
Sylvestre agreed to use regressions so I’ll make that change. Given that the SQL table name is also regressions, I’ll keep the table column name as regresses which no one will see. The UI label Regressions can be changed later if needed.
| Reporter | ||
Comment 41•2 years ago
|
||
So regressed_by and regressions? It sounds fine to me.
For blocks and depends_on we used verbs though.
| Assignee | ||
Comment 42•2 years ago
|
||
(In reply to Marco Castelluccio [:marco] from comment #41)
For
blocksanddepends_onwe used verbs though.
Yeah, those are very old fields, so ;) duplicates and most fields are nouns.
| Assignee | ||
Comment 43•2 years ago
|
||
The regression keyword will be redundant once this is landed, so I think it can be disabled. If the regressed_by field is not empty, the bug is a regression.
Comment 44•2 years ago
|
||
(In reply to Kohei Yoshino [:kohei] (Bugzilla UX) (FxSiteCompat) from comment #43)
The
regressionkeyword will be redundant once this is landed, so I think it can be disabled. If theregressed_byfield is not empty, the bug is a regression.
What about bugs for which we have established they are a regression (by testing an earlier Firefox version where it does not reproduce), but we don't know which specific bug(s) regressed it?
| Assignee | ||
Comment 45•2 years ago
|
||
(In reply to Botond Ballo [:botond] from comment #44)
(In reply to Kohei Yoshino [:kohei] (Bugzilla UX) (FxSiteCompat) from comment #43)
The
regressionkeyword will be redundant once this is landed, so I think it can be disabled. If theregressed_byfield is not empty, the bug is a regression.What about bugs for which we have established they are a regression (by testing an earlier Firefox version where it does not reproduce), but we don't know which specific bug(s) regressed it?
Umm, forgot that case, which is valid for sure. But we actually have the Has Regression Range field as well... If the value is yes or no (not --- nor irrelevant), it's also a sign of a regression. We have too many underused and partially duplicated fields 😑
| Reporter | ||
Comment 46•2 years ago
|
||
I'd keep all of them for now to reduce risk, and maybe phase Has Regression Range out over time.
Comment 47•2 years ago
|
||
+1 to this.
Keeping the keywords for now and using Autonag to identify bugs which have the regression keyword but not a regressed-by with help nudge people to fill in the field (and move bugs out of blocks/blocked-by.)
| Assignee | ||
Comment 48•2 years ago
|
||
| Assignee | ||
Comment 49•2 years ago
|
||
Merged to master.
| Assignee | ||
Comment 51•2 years ago
•
|
||
People start using the fields: https://bugzilla.mozilla.org/buglist.cgi?f1=regressed_by&o1=isnotempty
| Assignee | ||
Updated•2 years ago
|
| Assignee | ||
Updated•2 years ago
|
Description
•