Bug Relationships

Gervase Markham gerv at mozilla.org
Mon Jan 11 17:30:12 UTC 2010

[I've had this idea kicking around in my head for a while, but I don't
think I've ever written it up properly for discussion. So here it is.
It's inspired by a feature on a proprietary bug tracking system I used
to use. It was generally terrible, but this was good.]

I think that we should replace dependencies, See Also, and perhaps
duplicate marking too with a more generic system of Bug Relationships.

It would work like this: an admin would define a number of relationships
there could be between bugs. (Some common ones would ship by default.) E.g.

A depends on B
C caused regression D
E is the upstream of F
G is a duplicate of H

And, of course, the reciprocal language for each relationship would also
be defined, if different:

B blocks A
D is a regression from C
F is the downstream of E
H is a duplicate of G

Then, you would have UI on a bug like this:

This bug [  blocks   |V]  [        ]

where you would select a relationship, and then enter a bug number or a
URL to a bug in another bug system (Bugzilla or otherwise) in the text
box. (Or a comma/space separated list.) If you entered a bug number in
the same Bugzilla (and even maybe, one day, with APIs, in other
systems), the other bug would display the reciprocal relationship.

This has several advantages:

* It allows sites to codify things like "bug A is a regression from bug
B" rather than what e.g. b.m.o does now, which is have a "regression"
keyword, and then perhaps abuse dependencies. This might allow the
gathering of stats showing things like "ooh, look, 50% of our
regressions come from bugs fixed by Fred".

* It simplifies the UI on the bug page. Instead of UI for depends,
blocks and See Also, plus any custom fields a site might add (remember,
Bug ID is a custom field type), we just have the above selector, plus
editable details of existing relationships (which in many cases, will be
none, so the common case is simpler).

* It allows one to be more specific than "See Also", where each user has
to load up the bugs in the list and work out what the relationship is
and whether it's relevant to them. More useful semantic information is

So as I see it, it's a generalization which brings more power and makes
things simpler, without losing any functionality.

What do people think?

dev-apps-bugzilla mailing list
dev-apps-bugzilla at lists.mozilla.org

More information about the developers mailing list