Phabricator/versus Bugzilla
This page is obsolete. It is being retained for archival purposes. It may document extensions or features that are obsolete and/or no longer supported. Do not rely on the information here being up-to-date. |
Wikimedia has deprecated Bugzilla for bug reporting and replaced it by Phabricator. You can read a review of the migration in this blog post: Good bye Bugzilla, welcome Phabricator.
All the Bugzilla reports have been migrated, and the process for reporting and managing bugs is basically the same. However, some things have changed. Instead of trying to use Phabricator exactly how you used Bugzilla, we recommend you to get used to how Phabricator works. Get your account at https://phabricator.wikimedia.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.
Changes
[edit]Phabricator comes with many improvements over Bugzilla.
Interface
[edit]- The desktop UI looks contemporary.
- Unlike Bugzilla, the Phabricator UI is primarily designed for software development and not for average non-technical users (according to upstream). On this basis, Phabricator refused to implement some bugzilla features intended to make life easier for inexperienced users. The Phabricator UI sometimes hides more complexity than Bugzilla (e.g. by having separate modes for displaying and editing certain report information; while bugzilla only collapses advanced fields in bug filing and bug searching windows).
- Most features are mobile friendly as well.
- Interacting via email is possible. In some special cases (Operations procurement) non-registered users can also interact via email (T52).
User account
[edit]- Log in with your Wikimedia unified login (aka single user login or SUL) or wikitech.wikimedia.org (LDAP) credentials (T346) - see Phabricator/Help#Signing in
- Your email address is private, at last.
- Private communication is no longer as easy as sending an email; we have to figure it out still. . However, a "Send Message" button in Phabricator profiles is available via Conpherence since April 2015, see phab:T91392.
Task-centric environment
[edit]- 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
[edit]- Projects have no tree structure.
- Tasks can be assigned to multiple projects or to none.
Creating tasks
[edit]- Simple form for newcomers with title, project, CCed users (subscribers), description, assignee and priority.
- Type-ahead to select projects, instead of browsing 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 allows to add Phabricator's specific markup.
- Documentation: Phabricator/Help#Creating a task
Commenting
[edit]- Enjoy auto-saved comments while you type.
- 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).
- If you add a comment or edit a task while someone else is doing the same, your Subscribers/CC list changes might overwrite or might get overwritten.
- More general information: Phabricator/Help#Writing comments and descriptions
Notifications
[edit]- Web notifications show activity relevant to the tasks you are subscribed to (once enabled, see T1047).
- You can become a member of a project and subscribe to a project in Phabricator. Hence you do not need to ask Bugzilla admins anymore if they can add you to the default CC list of a Bugzilla component to receive mail notifications for all changes.
- Herald allows you to create custom notifications based on queries, e.g. "email me when someone mentions (your regexp here)". (T630, T493).
- Also see Phabricator/Help#Receiving updates and notifications for more information.
- Note that the wikibugs-l mailing list does not yet receive update notification emails from Phabricator (T763).
Calls to action
[edit]- Tasks needing triaging appear at the top of lists (including search results) and in personal dashboards of the members of the affected projects.
Permissions
[edit]- We can decide who can create projects, rather than only let a few administrators do so. (phab:T705)
- We can have specific teams with specific permissions whose members could add new members, rather than relying on admins only.
Known issues
[edit]Below you can find a selection of known issues. You can help by providing feedback and code.
Missing features
[edit]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 blocking tasks.
Some missing features or convenience functionality that has been brought up includes:
- T763: The wikibugs-l mailing list does not yet receive update notification emails from Phabricator. This is being worked on in T763.
- T45: Suggestions of possible duplicates when creating a new bug/task (upstream)
- T54: Adding dependencies directly while creating a (sub-)task (upstream)
- T96: Dependency tree view of tasks (upstream)
- T28: Metrics for key Wikimedia projects software in Maniphest. Phabricator reports are very limited, and it will take a while until this is fixed upstream.
- T109: Phabricator is assistive technology–unfriendly (upstream, some improvements have taken place in upstream)
- T67: RSS/Atom feeds (upstream, not in Phabricator's plans)
- Phabricator doesn't have an equivalent to Bugzilla's "Users Watching". However, the possibility of subscribing to projects and tasks directly makes this feature almost unnecessary.
- T53: Phabricator does not offer the same wiki markup syntax. Note that any wiki markup syntax support in Bugzilla was custom code.
- Bugzilla had support for turning certain expressions automatically into links (see the list in bug 72485). Most of this functionality is not implemented (yet) in Phabricator; the migration leaves most of these as plain text. For related tasks (also about converting Bugzilla and RT ticket numbers into the corresponding Phabricator task numbers), see T687, T850, T873, T874, T875.
We are maintaining a list of Phabricator tasks to be upstreamed. You can also follow directly the tasks we have upstreamed.
Accessibility or usability regressions
[edit]See #Interface or context.
Accessibility:
- T109: Phabricator is unfriendly to assistive technology
- T628: Footer (font color vs background color) is hard to read
Usability:
- T61: Descriptive labels instead of Phabricator app names
- T165: Provide a way to upload a file if drag'n'drop is not available or not wanted
- T1372: Maniphest's advanced search is not linked by maniphest
- T1376: Maniphest advanced search contains obscure fields by default
- T1377: Maniphest advanced search contains undefined "In Users' Projects" term
For some relevant subset of our users, but not about newbies or accessibility:
- T53: Phabricator uses Yet Another Markup System and we'd really like to switch it to something else if possible (wikitext users)
- T75745: Allow to mark multiple notifications as read (not-email users)
Missing data
[edit]Bugzilla and Phabricator have different elements in tasks, and the migration of data is done through the Bugzilla and Phabricator APIs, which don't support the export/import of all possible types of data.
For all these reasons, the data available in Phabricator will not be exactly the same than in Bugzilla, although we have put a lot of effort keeping everything that matters. The main changes are:
- Bug numbers. We cannot assign to Phabricator tasks the same number as their Bugzilla equivalents. Instead, automatic redirects will link old Bugzilla URLs with their corresponding new Phabricator tasks. Phabricator already has >1200 tasks with numbers taken. If you know the number of a Bugzilla ticket (e.g. bug 58000), add 2000 to find the corresponding task in Phabricator (e.g. T60000).
- History of changes. We are migrating the current metadata including the last modification date, but we cannot migrate the whole history of changes (e.g. previous statuses or product/components assigned, whether it was marked as duplicate and then reverted, changes to the priority value, previous summaries, attachments marked as obsolete and superseded by newer attachments...)
- Saved searches. Search parameters are fundamentally different in Bugzilla and Phabricator. Phabricator also allows users to save search queries; the old queries could be recreated manually and saved.
- Default CC list. If you are on the "default CC" list of some Bugzilla components you will need to become a member of the corresponding project in Phabricator to receive notifications automatically. See this list to find out which projects you were subscribed to in Bugzilla.
Also note that Severity, Version, URL, Whiteboard, and other fields will not be available in Phabricator, because we have decided to discontinue them. The related data available in Bugzilla reports will be added to the description of the task.
For an exhaustive list of changes, check the Bugzilla_data_migrated table below.
Votes
[edit]Votes. Phabricator doesn't have votes, although it has tokens and flags that you can add to tasks (flags could be seen as bookmarks; you can see all items that you have flagged). The Bugzilla API doesn't help extracting votes data, and this is why we cannot automatically subscribe (CC) voters on tickets when migrating. Users were able to access their votes in the archived old Bugzilla for seven months after the migration to Phabricator.
At some point we might enhance Phabricator's Tokens application (see token/leaders and token/) to provide better search (e.g. exclude closed tasks), but that's low priority. Phabricator's Flags application allows you to bookmark items "for later" and offers a central list of all items that you have flagged. Related discussions: T264, T88.
Considerations
[edit]Aspects that are not missing, but have a different approach or alternative solutions.
- Selecting projects for tasks is done like tagging, using type-ahead. This is a very different paradigm than Bugzilla's tree selection. We need to monitor whether users find their way. Then again, in case of doubt tasks can be submitted without specifying any project. See Add projects list when creating new task in Maniphest. There is also a page listing all projects in Phabricator, but it is not linked from the task creation form.
- Search can be improved. Phabricator's search is 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 T679. In general, the search user interface is simpler and does not offer all the advanced options (regex etc.) that Bugzilla's search offers.
- Born in a corporate intranet context, Phabricator puts a lot of trust on users. We need to think how to prevent vandalism and how to react when it happens. In Bugzilla we also had to find social and technical solutions that would not be provided out of the box. More in T84.
- Offering a simpler UI, some advanced actions require an extra click, e.g. Phabricator should let you add dependencies both ways (depending and blocking) and No link to advanced search for tasks.
- Files are added to tasks via drag&drop, while users requiring a classical upload form (mobile, certain desktop browsers/configurations) have to use a separate upload form (T1026).
Migration
[edit]We have migrated all the public Bugzilla reports, including their public, non-obsolete attachments. We announced the date of the Bugzilla migration several weeks in advance (via a banner on top of Bugzilla, on wikitech-l, English Wikipedia Village Pump, and sending two emails to all Bugzilla users who had logged in since October 2013).
Test instance
[edit]A test instance was available for review for two weeks, showing a sample of 10% of all the Bugzilla reports, automatically migrated. Known issues could be found as tasks of the Bugzilla-Preview project. The feedback of the community helped to find and fix further issues.
Bugzilla in read-only mode
[edit]Bugzilla was switched to read-only mode when the actual migration started. It was kept available for seven months at https://old-bugzilla.wikimedia.org and then replaced by a static HTML dump of bug reports and bug report history at https://static-bugzilla.wikimedia.org - see phab:T95184 and phab:T1198. From July 2015 to March 2019 there was also a read-only copy at bugs.wmflabs.org - see phab:T95267 and phab:T204503.
Bugzilla data migrated
[edit]All public Bugzilla reports have been migrated, but it was not possible (neither desirable) to make a 1:1 mapping between Bugzilla reports and Phabricator tasks. All the details about the migration script can be found at T259. Below you have an exhaustive list of Bugzilla fields and what happened to them in Phabricator:
Field | Migrated | Added to description | Not migrated | Notes |
---|---|---|---|---|
Bug number | Preserving Bugzilla report numbers in Phabricator tasks would have been very complicated T857. If you know the number of a Bugzilla ticket (e.g. bug 58000), add 2000 to find the corresponding task in Phabricator (e.g. T60000). | |||
Summary | ||||
Alias | Not setting up 130 redirects for using a bug alias instead of the ID as a URL parameter T240. | |||
Status and Resolution | Some options change: T212. Phabricator only offers Status which is more simplified. Note that imported Bugzilla tickets with "Resolved Duplicate" will have the status "Resolved" in Phabricator. | |||
Product and Component | Merged in project names i.e. "MediaWiki" product + "Change tagging" component = "MediaWiki-Change-tagging" project T43. Note that projects and components might be not "open for bug entry" so new tickets can be created. Wikimedia Bugzilla components contain interesting characters such as ()_./'! and _ will be converted to -. A wiki page with a high-level list of Bugzilla products/components linking to corresponding Phabricator projects is available. | |||
Version | ||||
Hardware / OS / Platform | Added to initial description in Maniphest task if value is neither "All" nor "---" | |||
Priority | The options have been revised — see below | |||
Severity | We decided not to have a Severity field in Phabricator (T102). The value is added to the initial description in the Maniphest task (T695). | |||
Votes | We cannot easily convert Bugzilla votes to Phabricator tokens as Bugzilla is missing API support for this, see T88. Hence we cannot automatically subscribe (CC) voters on tickets when migrating. See #Votes. | |||
Target Milestone | To become release projects (orange buttons with a truck icon) in Phabricator. T100 (and to some extent T101). | |||
Assigned To | Default mailing list accounts (Pywikibot, Wikidata) have been ported T496 and set as subscribers (CC). Wikibugs-l still needs to be set up (see T763) as it was considered too noisy. | |||
URL | Added to initial description in Maniphest task if not empty | |||
Whiteboard | 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 | |||
Keywords | Converted to tag projects T266 | |||
(Personal) Tags | The 66 users of tags (identified via RT #7824) were contacted in advance, informed about the deprecation of Tags, and how to find the reports which they tagged. | |||
Depends on / Blocks | Called "Parent tasks" / "Subtasks" in the edit menu and listed under "Task Graph" in the user interface | |||
Reported (author) | ||||
Reported (date) | T699 | |||
Modified (date) | Only the last version of the summary will be migrated | |||
Reporter | called "Author" in Phabricator | |||
CC List | called "Subscribers" in Phabricator | |||
See Also | ||||
Web Browser | The available entries are converted into tag projects with the prefix "Browser_Support_" | |||
Mobile Platform | See phab:T43197#457389 - basically unused (750 Bugzilla tickets out of 73000) and not actively used by teams. | |||
Flags | The two Bugzilla flags (Backport_WMF and Backport_to_Stable) will not be migrated. In Phabricator, projects will be created to mark tasks that are proposed for backporting. T101 | |||
Attachments | Attachments marked as "private" or as "obsolete" in Bugzilla will not be migrated. Potential access restrictions (e.g. attachments on bug reports under the "Security" product) will be kept. | |||
Comments | Including author and date just like normal comments. Specific comments marked as "private" in Bugzilla (and hence only visible to admins and members of the security group) are excluded. | |||
Saved searches | We cannot easily convert saved searches in Bugzilla to Phabricator. | |||
Default CC list | If you are on the "default CC" list of some Bugzilla components you will need to become a member and watch the corresponding project in Phabricator again in order to automatically receive notifications (for newly reported tasks only). See this list to find out which projects you were subscribed to in Bugzilla; See Receiving updates and notifications for general information. |
Status (and related Resolution) options have been revised (T212):
Bugzilla | Phabricator |
---|---|
UNCONFIRMED | Open |
NEW | Open |
ASSIGNED | Open |
PATCH_TO_REVIEW | Open + Patch-For-Review tag |
RESOLVED | - (split into the corresponding resolutions, see below) |
FIXED | Resolved |
INVALID | Invalid |
WONTFIX | Declined |
LATER | Declined |
DUPLICATE | Resolved (for tasks imported from Bugzilla); else: Merged |
WORKSFORME | Declined |
REOPENED | Open |
VERIFIED | - (turned into a tag instead) |
Stalled |
Priority options have been revised (T268):
Bugzilla | Phabricator |
---|---|
Unprioritized | Needs Triage |
Immediate | Unbreak Now! |
Highest | Unbreak Now! |
High | High |
Normal | Normal |
Low | Low |
Lowest | Lowest |
In November 2019, "Normal" was renamed to "Medium" in phab:T228757. In May 2023, "Lowest" was disabled in phab:T228759.
Bugzilla URLs and their redirects
[edit]- URLs of Bugzilla reports will redirect to their equivalent Phabricator tasks (T40).
- Links to a specific comment of a Bugzilla report will redirect to the corresponding task, but not to the specific comment in that task (T1358).
- The (frozen, outdated and static) Wikimedia Bugzilla bug reports are still available under https://static-bugzilla.wikimedia.org (T1198).
- We do not redirect (saved) Bugzilla searches to Phabricator as Phabricator does not offer passing URL parameters in a similar way to Bugzilla (also see T40).
Redirected URLs after Bugzilla migration
[edit]- Direct links to single bug reports:
- http://bugzilla.wikimedia.org/show_bug.cgi?id=50120 → https://phabricator.wikimedia.org/T52120
- https://bugzilla.wikimedia.org/show_bug.cgi?id=50120 → https://phabricator.wikimedia.org/T52120
- http://bugzilla.wikimedia.org/50120 → https://phabricator.wikimedia.org/T52120
- https://bugzilla.wikimedia.org/50120 → https://phabricator.wikimedia.org/T52120
- http://bugs.wikimedia.org/show_bug.cgi?id=50120 → https://phabricator.wikimedia.org/T52120
- https://bugs.wikimedia.org/show_bug.cgi?id=50120 → https://phabricator.wikimedia.org/T52120
- http://bugs.wikimedia.org/50120 → https://phabricator.wikimedia.org/T52120
- https://bugs.wikimedia.org/50120 → https://phabricator.wikimedia.org/T52120
- To Phabricator frontpage:
- https://bugzilla.wikimedia.org/ → https://phabricator.wikimedia.org/
- https://bugzilla.wikimedia.org/chart.cgi → https://phabricator.wikimedia.org/
- https://bugzilla.wikimedia.org/describecomponents.cgi → https://phabricator.wikimedia.org/
- https://bugzilla.wikimedia.org/enter_bug.cgi → https://phabricator.wikimedia.org/
- https://bugzilla.wikimedia.org/index.cgi → https://phabricator.wikimedia.org/
- https://bugzilla.wikimedia.org/page.cgi → https://phabricator.wikimedia.org/
- https://bugzilla.wikimedia.org/query.cgi → https://phabricator.wikimedia.org/
- https://bugzilla.wikimedia.org/report.cgi → https://phabricator.wikimedia.org/
- https://bugzilla.wikimedia.org/reports.cgi → https://phabricator.wikimedia.org/
- https://bugzilla.wikimedia.org/showdependencygraph.cgi → https://phabricator.wikimedia.org/
- https://bugzilla.wikimedia.org/showdependencytree.cgi → https://phabricator.wikimedia.org/
- Search results and attachments:
- https://bug-attachment.wikimedia.org/attachment.cgi?id=16500 → (not redirected)
- https://bugzilla.wikimedia.org/attachment.cgi?id=12345 → (not redirected)
- https://bugzilla.wikimedia.org/buglist.cgi?bug_id=1,2,3,4 → (not redirected)
- https://bugzilla.wikimedia.org/buglist.cgi?bug_status=REOPENED&keywords=easy&product=Pywikibot → (not redirected)
Interwiki links and templates
[edit]Existing Bugzilla interwiki links and templates on wiki pages will still work, because those links will redirect to the equivalent Phabricator tasks.
Phabricator/Help#MediaWiki templates and interwiki links
Automatic linking
[edit]Wikimedia Bugzilla had many automatic linking behaviors (see the list in bug 72485), supporting magic words, wiki markup to some extent, and turning bug 99999 (and variations, see bug 72256) into a link to bug report number 99999. Most of this functionality is not implemented (yet); the migration leaves most of these as plain text. For related tasks (also about converting Bugzilla and RT ticket numbers into the corresponding Phabricator task numbers), see phab:T687, phab:T850, phab:T873, phab:T874, phab:T875).
Phabricator has its own great TNNNN short syntax for linking to Tasks, with other letter prefixes to link to Mockups, Pastebins, etc. (also see phab:T53).
Bots
[edit]- 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)
Timeline
[edit]This sequence of steps refers specifically to the Bugzilla migration which happened in November 2014. For a wider scope, see Phabricator/migration_timeline.
During the Bugzilla migration, emergencies could be reported at Project:Support desk and #wikimedia-bug2phab connect.
- Done phabricator.wikimedia.org open to all Wikimedia users
- Bugzilla users can register adding their Bugzilla email address(es) to claim their activity automatically.
- Done Test instance containing Bugzilla reports automatically migrated
- Done, 2014-11-12: Go-NoGo meeting. (minutes coming soon)
- Done, 2014-11-13: Andre to send second and last announcement email to latest active Bugzilla users, see phab:T618
- Done, 2014-11-18: two IRC office hours hosted
- Done, 2014-11-19: Reminder sent to wikitech-l and forwarded to mediawiki-l, wikitech-ambassadors, and wmfall.
- Done Andre to set up Security project permissions in Phabricator.
- Done, started 2014-11-21 00:30 UTC: Bugzilla migration starts
- Done Andre to restrict Bugzilla access to read-only.
- Done Chase to pull phabricator.wikimedia.org and disable incoming email
- Done Chase to disable email Phabricator interaction
- Done Chris to Switch off Gerrit Notification bot
- Done Arthur to Switch off Bingle/Bugello
- Done Andre to set Bugzilla's mail_delivery_method from "Sendmail" to "None"
- Done Data migration
- Done Chase to apply the Bugzilla patch ref XML-RPC API issue
- Done Chase to set ext_ref field as editable
- Done Chase to ensure mysql file size is set at an appropriate level for migration
- Done Chase to run the migration fetch script (tasks and comments)
- Done Chase to revert the Bugzilla patch ref XML-RPC API issue
- Done Chase to run the migration create script (attachments)
- Done Daniel and Mukunda to move Bugzilla to old-bugzilla.wikimedia.org & Andre to update sslbase and urlbase values in Bugzilla
- Done Chase to configure cron jobs to start assigning Bugzilla activity to Phabricator users.
- Done Service sanity testing (security issues are hidden, app is responsive, issue lookup works, etc)
- Done Mukunda to set up redirects from bugzilla.wikimedia.org URLs to phab.wm.o
- Done Daniel to Switch off / update Watchmouse
- Done Testing (T1244)
- Done Put phabricator.wikimedia.org back in service
- Done Updating documentation
- Done Andre to update Bug Management related documentation on wiki pages
- Done Quim to update mw:Template:Extension and test it
- Done Quim to update links to bugtracker in sidebar on mediawiki.org
- Done, planned for 2014-11-24: phabricator.wikimedia.org reopens with the Bugzilla content migrated.