(apologies: this was sent out to firefox-dev and dev.platform yesterday but for some reason appears not to have made it to the latter)
To reduce confusion and a growing maintenance burden, the Engineering Workflow team plans to remove two pieces of Phabricator-Bugzilla integration: 1. The setting of r+ flags on the stub attachments in that link to Phabricator revisions (https://bugzilla.mozilla.org/ show_bug.cgi?id=1490687). 2. The Phabricator table in Bugzilla’s “My Requests” page ( https://bugzilla.mozilla.org/show_bug.cgi?id=1487422 <https://bugzilla.mozilla.org/show_bug.cgi?id=1487422>). We plan on adding one more piece of integration: a panel on bug views (show_bug.cgi) that shows the status of Phabricator revisions in Phabricator’s terms, similar to the old MozReview table ( https://bugzilla.mozilla.org/show_bug.cgi?id=1489706). The “stub attachments” will remain for the time being in order to facilitate tracking non-review attachment flags (checkin-needed, etc). # Rationale and background There have been a lot of questions about our decisions surrounding Bugzilla–Phabricator integration. We’ve expounded on those in various threads over the last year and a half, but I will try to go into more specifics. At the start of the Phabricator project, having learned a lot from MozReview, we consciously decided to limit the amount of integration to Bugzilla. This not only reduces upfront costs and maintenance burden but also avoids the complexity and ambiguity inherent in mixing two different systems together. Aside from necessary linkages like authentication, accounts, and security groups, the only other integration we implemented was the setting of r+ statuses on stub attachments and, later, adding Phabricator requests to BMO’s “My Dashboard”. Unfortunately both of these have had bugs and caused confusion. Since comments aren’t mirrored, the plain r+s were sometimes misleading if the revisions (or Phabricator’s email notifications) weren’t also consulted before landing. The requests view on “My Dashboard” suffered from bugs that resulted in missing requests and was further impacted by our experiments with reviewer groups that have no real analog in Bugzilla. # Differing models The central problem is that the models behind the two systems—Bugzilla’s attachments and flags, Phabricator’s revisions and reviews—are very different. Phabricator’s revisions have a much richer and more complex set of metadata than Bugzilla attachments. It is essentially impossible to represent Phabricator states as Bugzilla flags while preserving anything close to the expected semantics of the latter; consulting Phabricator would often be needed to make sense of any translated representation in Bugzilla. Further, Phabricator’s model is also subject to changes and additions (for example, the draft revision state, which is still being modified), which creates additional fragility and maintenance burden. Finally, not all the details we need are even exposed through APIs, in part because they are in flux. # Adding revision statuses to bugs That said, we realize that seeing at a glance the state of revisions associated with a given bug is very useful. We are building support into Bugzilla to view revision data without translation into Bugzilla’s terms to avoid any confusion as to the true state of revisions. While we could also dump data from Phabricator’s dashboard into Bugzilla’s “My Dashboard”, it would be much more work and more difficult to maintain, since Phabricator’s dashboard itself is being updated. Furthermore, as all code reviews are transitioned to Phabricator, the importance of this dashboard will grow, and the number of requests in Bugzilla will shrink. Thus relying on Phabricator to do what it does best is the better solution for the future. # Acknowledging difficulties We are aware that splitting code review out into a separate system is a huge change. We realize that, with our new tools and the decisions we have made around integration, we are asking you to change your workflows by setting up different email rules, looking in different places for the data you need, communicating with other Mozillians in different ways, and perhaps even establishing new practices and norms around code review. It will take time to adapt. However we are already seeing benefits in terms of automation that we haven’t previously been able to do (just one example: a user set up Herald rules to notify of changes that impact localization), and we will continue to build on this framework to accomplish goals that have been talked about for many years. Allowing the tools to do what they are best at lets us focus on new functionality, including suggested reviewers, Try support for Lando, Lando notifications, fully automated landings, and other items on our road map (https://wiki.mozilla.org/ Engineering_Workflow/Road_Map). We appreciate your feedback and support as we work to improve the tools you use every day. Mark _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform