Phabricator/Bugzilla Equivalents

From MozillaWiki
Jump to: navigation, search

Some common tasks in Bugzilla do not have direct analogues in Phabricator and others may not be obvious to a new user. This page serves to document these common tasks and how to handle similar situations when using Phabricator.

Making requests to other users

Request review? on a patch

Patches may be submitted to Phabricator for review using moz-phab. It is possible to ask for review as part of patch submission (See the moz-phab documentation).

Note that Phabricator has two reviewer designations, normal and "blocking". Setting a user as a "blocking" reviewer is similar to the common use of a review? flag in that it requires review from that user or an explicit removal. Normal reviewers work differently in that acceptance from any reviewer removes the review from that user's queue (i.e. Only a single reviewer must accept). Using blocking reviewers mimics the Bugzilla workflow most closely, and there is a submit.always_blocking configuration option in moz-phab which will default to making all reviewers blocking.

Request feedback? on a patch

Phabricator does not distinguish between asking for final review and requesting other forms of feedback. It is best to use an explicit comment explaining you would like feedback, along with one of:

  • Requesting review from the user you'd like feedback from.

Non-blocking-review.png

  • Using an @ mention. Including @<username> in a comment on Phabricator notifies the provided user of your message. The notification is a one-time action which does not require acknowledgement, so it is best to make it clear with your text that you are expecting feedback.

At-mention.png

  • If the patch is work-in-progress, be sure to mark it as such by publishing a changes planned action.

Make a needinfo? request

Phabricator does not have a feature directly comparable to Bugzilla's needinfo? request. We suggest one of the following alternatives:

  • Use an @ mention. Including @<username> in a comment on Phabricator notifies the provided user of your message. The notification is a one-time action which does not require acknowledgement, so it is best to make it clear with your text that you expect a response.

At-mention.png

  • Add the user as a blocking reviewer and indicate your intent by including a comment. The Phabricator revision cannot be Accepted until the indicated user has either Accepted the revision, Resigned as a reviewer, or removed as a reviewer. Since this is re-purposing the normal request for review it is best to include a comment making your intended use clear.

Blocking-reviewer.png

Request review? of an image file

If you have a stand-alone image you'd like feedback on you may still do so using Bugzilla. Since the review? flag may be disabled for the component, please use a needinfo? or feedback? flag.

Phabricator does have the Pholio application for commenting on mocks. Unfortunately it is not well integrated with the rest of our workflows and you cannot flag specific users for review. You can find Pholio in the main menu as "Design Review", and a new image can be uploaded by clicking "Create Mock" on the main Pholio page.

Carry forward a review+ flag

Unlike Bugzilla there is no need to manually "carry forward" reviews from older revisions of patches to updated revisions. Instead the changes will show as accepted, with an indicator that the acceptance was set on an older revision.

To ask for a re-review select "Request Review" from the actions menu at the bottom of the page.

Request-review.png

Clear a review? flag from your own patch

There are two ways to remove a patch from the queue of your reviewers:

  • Explicitly edit the reviewers and remove the reviewer using the "Change Reviewers" action.

Change-Reviewers.png

  • "Plan Changes" to your revision, which removes the revision from their queue until you have posted a new version of the diff.

Plan-Changes.png

Both of these actions are taken using the "Add Action..." dropdown at the bottom of the revision's page. After you have added the action (along with any comments) you must click the "Submit" button.

Request approval-mozilla-<repo>? uplift on a patch

At this time approval-mozilla-<repo>? requests should use the current Release Management/Uplift rules. approval-mozilla-<repo>? can be set on the Bugzilla attachment which corresponds to the revision in Phabricator. There is a plan to move uplift approval to Phabricator fully, look out for an announcement when that is further along.

Request sec-approval? on a patch

At this time sec-approval? requests should use the current Security/Bug Approval Process. sec-approval? can be set on the Bugzilla attachment which corresponds to the revision in Phabricator. There is a plan to move sec-approval to Phabricator fully, look out for an announcement when that is further along.

Request checkin-needed to land your changes

https://groups.google.com/g/firefox-dev/c/3JGrgQMM6lM

We intend to phase out the “Check-in Needed” flag. Instead, reviewers should queue patches in Lando once they are satisfied with the submitted patch.

In order to help ensure that nothing slips through the cracks, the existing autonag bot will be updated to needinfo not only the patch author but also the reviewer if it has gotten r+ but not landed within 2 weeks. The patch contribution documentation will also be updated to take into account these changes.

Responding to requests

Clear a review? flag asked of you

If you'd like to remove yourself as a reviewer you can do so in one of two ways:

  • Explicitly edit the reviewers and remove yourself using the "Change Reviewers" action.

Change-Reviewers-reviewer.png

  • Add the "Resign as Reviewer" action, which marks you as resigned. Resigning has mostly the same effect as removing yourself from the reviewer list except for the case when a project you're a member of has been asked for review. Resigning in the project case explicitly marks you as not a reviewer and is easier than removing the project and re-adding all other members.

Resign-As-Reviewer.png

Both of these actions are taken using the "Add Action..." dropdown at the bottom of the revision's page. After you have added the action (along with any comments), you must click the "Submit" button.

Querying for Information

Query a user's review queue

You may query a user's review queue by crafting an advanced differential search query. Take the following steps:

  1. Visit this example query page: https://phabricator.services.mozilla.com/differential/query/IeE2zgiqj9EX/
  2. Change "Responsible Users" to the user you're interested in.
    • You probably do not want "Exact User: <username>" as it excludes revisions for the user's projects.
  3. Click "Search".
  4. The user's review queue are items under the "Must Review" and "Ready to Review" headings.

Query a user's activity

You may query a user's activity by visiting their profile page: https://phabricator.services.mozilla.com/p/<username>/. An example user's profile page is here: https://phabricator.services.mozilla.com/p/bzbarsky/. The "Recent Activity" box lists only recent activity, but you may click the "View All" button to be taken to an advanced query of the user's activity.

Save a frequently used query

Most query advanced query pages have a "Save Query" button on the results page. Clicking this allows you to give the query a name and add it to your personal query list. After saving a query you can share it with others by copying the URL of the results page (Note, this URL does not include the saved query name and is quite opaque).

Other Tasks

Upload a WIP patch

Work in progress patches can be uploaded to Phabricator in the same way as a normal patch, although generally you would not add reviewers. If you'd like someone to look at your WIP patch you may add reviewers but it is best to explicitly mention what you expect from the reviewer.

Watch a component

Phabricator has a notification system, Herald, which allows you to create custom notification rules. This can be used to subscribe yourself to revisions that touch certain parts of the code base, or even add yourself as a reviewer. You can view example rules other user's have created here.

How do I deal with non-mozilla branch patches after bugzilla review flags are disable on components on Feb 28?

In the announcement, it states

Initially, only code landing in mozilla-central will be required to be reviewed in Phabricator. Once we have implemented more processes in Phabricator, we will move reviews of all of the mozilla-central “branches” to Phabricator.

What does this mean for cases where a separate branch patch needs to be written after Feb 28 before it's possible to review the other branches in Phabricator?

You can review anything Phabricator, however Lando can't land to the other "branches" at this time. Uplift approval will also be moved at a later date.