Phabricator/versus Bugzilla

Phabricator is deprecating Bugzilla for bug reporting. All the Bugzilla reports will be migrated, and the process for reporting and managing bugs will be basically the same. However, some things will change.

Instead of trying to use Phabricator exactly how you use Bugzilla, we recommend you to get used to how Phabricator works. You can learn and experiment at https://phab-01.wmflabs.org/.

Some of the features described below are planned but not implemented today. In these cases you can follow the link to the task to learn about their current status.

Improvements
Phabricator comes with many improvements over Bugzilla.

Interface

 * The desktop UI looks contemporary and friendly to newcomers, even non-technical.
 * Most features are mobile friendly as well.
 * Interacting via email is possible, also for non-registered users (T52).

User account
Phabricator/Help
 * Log in with your Wikimedia (SUL) or wikitech.wikimedia.org (LDAP) credentials (T346).
 * Your email address is finally private.

Task-centric environment

 * Tasks can be bugs, and they can be tasks. No more "this is not a bug, doesn't belong here" or "this report is being tracked in Mingle/Trello"
 * Reporters, developers, designers, and product managers use the same tool to discuss bugs/features and report progress.
 * We get project boards (example) and mockups with notes (example).
 * Explicit titles of tasks, code reviews, and mockups related to the task, without needing to click or memorize numbers.
 * You can also see in which column/status of the project board the task is currently.

Flexible taxonomy

 * Projects are like tags or keywords; there is no rigid tree structure.
 * Tasks can be assigned to multiple projects or to none. No more fights to decide where should a bug live when there are several candidates.

Creating tasks
Phabricator/Help
 * Simple form for newcomers with only title, project, CCed users, and description. If you want more, join the Triagers.
 * Type-ahead to select projects, instead of having to browse products/components to find the destination.
 * The description ("comment 0") of a task can be edited by multiple users (with history/diffs available) to evolve the task and summarize long discussions.
 * A toolbar and a specific markup allows formatting of descriptions.

Commenting
Phabricator/Help
 * Enjoy auto-saved comments while you type.
 * A toolbar and a specific markup allows formatting of comments.
 * You can add files and inline images to comments with a simple drag & drop.
 * You can edit your own comments (with history).
 * You can hide your own comments (admins can make them visible or delete them for good).
 * No mid-air collision when someone adds a comment while you are writing yours.

Notifications
Phabricator/Help
 * Web notifications show activity relevant to the tasks you are subscribed to.
 * With Herald you can create notifications based on queries, e.g. "email me when someone mentions (your regexp here)".

Calls to action

 * Tasks needing triaging appear at the top of lists (including search results) and in personal dashboards of the members of the affected projects.

Permissions

 * We can decide who can create projects, rather than only let a few administrators do so.
 * We can have specific teams with specific permissions whose members could add new members, rather than relying on admins only.

Missing features
Bugzilla users might miss some features that Phabricator still lacks, or is not pursuing. For more details, check T22: Identify features Bugzilla users would miss in Phabricator and related blocker tasks. We have reported some of these features upstream; check our Phabricator.org project.

Missing features that we are still considering:
 * T28: Metrics for key Wikimedia projects software in Maniphest
 * T45: Suggestions of possible duplicates when creating a new bug/task (upstream)
 * T54: Adding dependencies while creating a (sub-)task
 * T67: RSS/Atom feeds (upstream, not in Phabricator's plans)
 * T96: Dependency tree view of tasks (upstream)


 * T109: Phabricator is assistive technology–unfriendly (upstream, investigating the impact)

Considerations

 * Phabricator has powerful search features powered by Elasticsearch (the same library used by MediaWiki's CirrusSearch, but we are still fine tuning it (i.e.. searching for "delete" should also find "deleting" and "deletion") -- see T95.
 * Offering a simpler UI, some advanced actions require an extra click, e.g. T33, T60.
 * Will users find their way with type-ahead for assigning tasks to projects? See T27. There is also a page listing all projects in Phabricator but it is not linked from the task creation form.

Migration
We will migrate all the public Bugzilla reports, including their attachments. We plan to announce the date of the Bugzilla migration at least two weeks in advance, as soon as the day can be confirmed.

Test instance before the migration
A test instance will be available before the migration, showing a sample of Bugzilla reports automatically migrated, in order to gather community feedback. We will leave at least one week for feedback, or more if there are issues that require fixes and a second test.

Bugzilla in read-only mode
Bugzilla will be switched to read-only mode as soon as the actual migration starts. We will keep it available as is during an indeterminate period of time, just in case.

Bugzilla data migrated
All public Bugzilla reports will be migrated, but it is not possible (neither desirable) to make a 1:1 mapping between Bugzilla reports and Phabricator tasks. This is an exhaustive list of Bugzilla fields and their future in Phabricator:

There is some data that we are not migrating to Phabricator for different reasons. All the details about the migration script can be found at T259.
 * Priority options have been revised (T268):
 * We decided not to have a Severity field in Phabricator. Migrated tasks will keep this information in the description. (T102)
 * Votes are not migrated. We cannot easily convert to tokens as Bugzilla is missing API support for this, see T88 - might convert after Day 1 from the database instead, if needed? We do not automatically CC voters when migrating. At some point we might enhance Phabricator's Tokens application (see https://phabricator.wikimedia.org/token/leaders/ and https://phabricator.wikimedia.org/token/ ) to provide better search (e.g. exclude closed tasks), but that's low priority. Related discussions: T264, T88. Users can find a list of their votes here].
 * Whiteboards will be added to initial description in Maniphest task if not empty. There are more than 1600 tickets with a non-empty Status Whiteboard field. It is also used by Scrumbugz to create burndown charts (T153). All entries have the format "u=Teamname c=BugzillaComponentName p=IntegerNumberOfPoints s=YYYY-MM-DD", see e.g. https://bugzilla.wikimedia.org/show_bug.cgi?id=67128 or https://bugzilla.wikimedia.org/show_bug.cgi?id=63655
 * Some values lack similar concepts in Phabricator: votes, personal tags, and bug report aliases.
 * There is not a Whiteboard concept in Phabricator either, but migrated tasks will keep this information in the description.

Bugzilla URLs

 * URLs of Bugzilla reports will redirect to their equivalent Phabricator tasks.
 * URLs for saved searches in Bugzilla will not work anymore as Phabricator does not offer passing URL parameters in a similar way to Bugzilla (also see T40).

Interwiki links and templates
Existing Bugzilla interwiki links and templates will still work, because those links will redirect to the equivalent Phabricator tasks.

Phabricator/Help

Bots

 * An IRC bot will report Phabricator activity just like Wikibugs does with Bugzilla (T131)
 * Gerrit Notification Bot will notify Phabricator tasks about related patches (T169)