Phabricator/Help

From MediaWiki.org
Jump to navigation Jump to search
Translate this page; This page contains changes which are not marked for translation.

Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎italiano • ‎kurdî • ‎polski • ‎português • ‎português do Brasil • ‎русский • ‎українська • ‎العربية • ‎سنڌي • ‎پښتو • ‎हिन्दी • ‎বাংলা • ‎ไทย • ‎中文 • ‎日本語 • ‎한국어

Dear Phabricator user, if you have questions, just ask in the Discussion page. We improve our documentation based on the feedback received. If you want to test Phabricator, You should use the Cloud Services instance.

For a basic overview what Phabricator is and can do, see these slides. Or keep reading this page to dive right in and get started.

Creating your account

You can connect your new Phabricator account either with your global Wikimedia wiki account, or with your Wikimedia developer account. In both cases, no separate password is needed.

With your global wiki account

How to create your Phabricator account with Wikimedia SUL...
How to fill your Phabricator profile.
  • First, make sure you are logged in to Wikimedia.
    • If you don't have a Wikimedia account yet, sign up for one.
  • Go to the Phabricator login page (the link shows as an arrow to a door in the top right when you're logged out).
  • Click the sunflower button that says "Login or Register - MediaWiki".
  • You will be asked by MediaWiki.org to approve connecting.
  • Phabricator will ask you for a username. In case of doubt, just use your Wikimedia username, but note that Phabricator username cannot include non-ASCII characters such as العَرَبِيةُ or 中华民族 or Xï, nor include spaces (please just use an underscore "_" instead). A valid email address will also be required for verification, but not shown to other users.
  • Click on Manage in the navigation bar on the left.
  • Click Edit Profile and set your Also Known As (for example, to your full name) to make it easier to search for you.

With your Wikimedia Developer account

... or with your Wikimedia Developer account.
If you have a Wikimedia Developer account — also known as an LDAP account or Gerrit account or wikitech account — you can also use that to log in. The same Phabricator username can have both MediaWiki.org and LDAP connected. This can be a backup, in the unlikely event Wikimedia SUL is not working. Connect your Wikimedia SUL and LDAP accounts to a single Phabricator username! Otherwise you will create two separate Phabricator accounts.

Multi-factor authentication

We do not encourage using multi-factor authentication on Wikimedia Phabricator except for when you have access to Security tasks. If you still plan to use it, read the multi-factor authentication guidelines and requirements first.

Troubleshooting

  • If you cannot verify your Phabricator account because you entered an incorrect email address, please add a note on Talk:Phabricator/Help.
  • If you find your Phabricator account disabled, please add a note on Talk:Phabricator/Help.
  • If you get an "Email address already taken" error when you try to create a Phabricator account via "Login or Register - MediaWiki" you probably already registered a Phabricator account connected to your Wikimedia Developer account. You will have to log into Phabricator via your Developer account. Use wikitech:Special:PasswordReset if you have forgotten your Developer account password.
  • If you need to change your Phabricator user name for some reason, please add a note on Talk:Phabricator/Help.

Claiming your previous Bugzilla and RT accounts

Follow the link here.

Receiving updates and notifications

Subscribing to a single task
Watching a project to receive its notifications

Phabricator notifies you about relevant activity, including your own actions.

Phabricator offers several tools to receive the notifications you wish to receive.

  • If you are interested in a single object (a task, a mockup...) just click Subscribe in its page. Adding a comment will subscribe you automatically.
  • If you are interested in all the activity within a project, you can click Watch Project on the project summary page. There is more information in the Projects user guide under "Watching Projects".

See Phabricator/Help/Managing mail for reducing the amount of mail notifications and about filtering mail notifications.

Troubleshooting

If you receive unexpected mail notifications for a task:

Creating more complex rules for notifications (Herald)

You can create custom (personal) notification rules in Wikimedia Phabricator's Herald. This is a more advanced option and can be difficult to use and should be used carefully due to performance reasons.

Creating a task

Ways to create a task.
How to edit a task already created.

There are several ways to create a task, depending on the information you want to carry:

  • A new task: click the Star button toward the right side of the top navigation bar. From the dropdown menu, choose Create Task. You will get a blank form.
  • A security problem: click the Star button toward the right side of the top navigation bar. From the dropdown menu, choose Report Security Issue. You will get a form pre-tagged with Security, and with a link to special instructions for filing security bugs.
  • A subtask of an existing task: click Edit Related Tasks… > Create Subtask located in the right column of the current task. The dependency between both tasks will be set, and some values of the parent task will be carried by default (Assigned To, Subscribers, Priority, Projects). Subtasks will be listed in the parent task under "Task Graph", sorted by most recently updated.

Fill the form, leaving the fields you are not sure about unchanged.

Formatting

Phabricator supports some formatting in text areas. See this help about formatting in Phabricator.

Selecting projects

In order to relate a task with a project (tag) that uses Phabricator, you just need to start typing its name in the Tags field and select the project from the list of matching projects (the list will only show five matching projects). You can search for projects and read short project descriptions by clicking the magnifier icon in the Tags field. You can add one or more projects to the Tags field. If you are unsure, you can also leave it empty — triagers will take care of tasks that have no project set. There is a (long) list of projects available. Press Edit Query to search for projects. (This list is also available at Phabricator/Projects.)

Setting task priority

Priority should normally be set by product managers, maintainers, or developers who plan to work on the task, or by the bugwrangler or experienced community members, not by the reporter filing the bug report or by outside observers. See Phabricator project management for details.

Using email

You can also create tasks by sending email to task@phabricator.wikimedia.org. The subject will be used as task title, the body will be used directly as is, and attachments will be included on the task. To set a project, add the corresponding command "!projects" and its hashtag at the beginning of the body, e.g., !projects #mediawiki-core. Further commands to set the task assignee, priority or status via email are available.

Note: if your email signature is not formatted following de facto standards (including "-- " to be separated from the body text) it will be posted as well. You are encouraged to remove private information from your signature in your first attempt, just to be sure.

Passing certain values in the task creation URL

"Report a bug in Phabricator" link can pass numerous values via URL parameters appended to the generic task creation link.

This is a very advanced feature. Learn more here.

Reply to comments and markup

To reply, you need an account as well.

Writing comments and descriptions

How to format the text that you write in a comment and how to use lists and headers.
There are several actions that you can perform at the same time that you comment.

Phabricator allows you to post and edit comments and descriptions using text formatting and inserting images or other files; see [file attachments]. You can use toolbar at the top of the input text area and you can use Phabricator's own formatting.

At the end of the page you have a live preview to check whether your text looks as you expect. Popular use of markup includes:

  • Mentioning users as in @username will create a link to their profile and will subscribe them to the task.
  • Adding a task number as in T123 will create a link to the task including a hover card. {T123} inserts the title of the task in your text.
  • Adding a project name as in #Project will create a link to the project main page.
  • If you want to quote text, you can simply add ">" at the beginning. If you want to reply a comment including it as a quote, click the drop down arrow at the right end of the comment you want to reply.
  • If you want to display an uploaded mockup image file, e.g., like M123, embedded in your comment, write {M123}.
  • If you want to create an external link, e.g. [https://www.mediawiki.org example] in wiki markup, use [[ https://www.mediawiki.org | example ]] including the whitespaces in Phabricator.
  • If you want to add a web address (URL link) in a comment for example to provide a testcase, it is highly recommended to copy and paste the full web address from your web browser's address bar, e.g., https://www.mediawiki.org/wiki/Project:Support_desk instead of mw:Project:Support desk. Interwiki prefixes like mw: are not supported in Phabricator and most customizations that Bugzilla had neither, e.g., Gerrit changes should be pasted as full web addresses too.
  • If you want to paste lines of code, add a line with three backticks before and after the code: ```. Or create a Paste and link to the Paste from the task.

Note that Phabricator's own markup language is different from MediaWiki's markup.

Uploading file attachments

How to upload files.

There are several ways to upload files: You can add a file (for example a screen photo) to a comment or a task description via drag and drop with your mouse. Users can also copy and paste images via the clipboard functionality of their system.

If this is not available on your system you can use phabricator:file/upload and refer to the file number (like "123") that is shown after a successful upload by writing F123 in a comment. This will create a link to the file. To include the file in the comment, enclose the ID in braces: {F123}. Per default it's included as thumbnail. For more formatting options, visit Remarkup reference. If you have to upload files frequently and consider the currently available options uncomfortable, you could also add a text panel to your homepage with a direct link.

Note that you cannot upload a file and then decrease the access level to the file (e.g linking it to a restricted security ticket). You would have to delete the file and re-upload it with stricter access permissions. It is recommended to upload files which should have restricted access together with the creation of a restricted (security) ticket. Further, note that anyone with the full URL to a file can download the file or share the link with others. There is no authentication protecting files from being accessed. Phabricator files rely entirely on security through obscurity; guessing the (pseudo-random) URL for any given file would be very difficult. If you need more protection for particularly sensitive files then you should consider a more secure alternative.

If you ever need to delete a file that you uploaded, open the list of files you authored, select the file and click "Delete File" in the sidebar.

Project management in Phabricator

If you maintain or manage a project, please follow this link for more details.

Parent tasks and subtasks

Tasks can be a parent task or a subtask of any number of other tasks. If Task A is not solved until Task B is solved, then Task A is the parent task, and Task B is the subtask. Such relations can be set via "Edit Related Tasks...". Parent tasks and subtasks are displayed under "Task Graph" in the task. This feature can be used to accomplish a few different things:

  • Blockers and Subtasks. A (parent) task might simply be blocked by another (sub)task, representing a dependency (see Phabricator/Project management#Tasks that cannot be worked on yet on how to add a subtask).
  • Tracking. A "workless" (parent) task blocked by several (sub)tasks might be tracking a collection of (sub)tasks within a release or other time period. Note that "Tracking" here has a different meaning from the deprecated #Tracking tag in Phabricator.
  • Approval. Several (parent) tasks (such as draft team goals) might be blocked by a single (sub)task which represents the draft tasks getting approved, after which those draft goals are now real goals.

NOTE: There is a "Edit Related Tasks... > Create Subtask" feature. In addition to setting up the correct parent/subtask relationship, it also caries the CC (subscription) list into the new subtask.

Prioritization

See Phabricator/Project management#Setting task priorities

Assignment

See Phabricator/Project management#Assigning tasks

"Tracking" tasks

The term "tracking task" was brought over from Bugzilla, where it had a specific meaning: A task which was blocked on other tasks, but which itself did not represent any work, and which was not tied to a specific release/date. An example might be a Task named "Clean up the documentation", which might then have a variety of subtasks, each of which would describe specific work to be done. These "Tracking" Tasks tended to stick around for a long time (or forever), as their subtasks would get resolved but new ones would get created. In Phabricator, projects are favored over 'tracking tasks' with dependencies.

Note, however, that there are other types of work-less umbrella tasks which do still make sense in Phabricator. Notably, "Release" tasks. An upcoming release could be represented by a Task, which lists as subtasks all the actual work tasks which are targeted for that release. Once the release goes out, it can be resolved. A similar use would be to have a task which represents a teams overall goals for the quarter, and then each goal might (or might not) be a blocking subtask.

Searching for items

Search context (global vs advanced)

Using Phabricator's basic search field in the upper corner

Phabricator consists of several applications (task management in "Maniphest" being one of them, or Diffusion for code browsing).

Using Maniphest's advanced search

There are 2 different search forms:

  • The global search at https://phabricator.wikimedia.org/search/query/advanced/. This one is fairly simple. It is in the upper right corner. By default, it searches across all applications and hence all types of documents (open tasks, closed tasks, code commits, etc…). You can change the default context using the the arrow menu to the left of the search bar. For example, select "Open Tasks" to only show results in open tasks from the Maniphest issue tracker. Or select "Current Application" to search Maniphest in Maniphest, Diffusion in Diffusion etc.
  • Advanced, application specific search, for example at https://phabricator.wikimedia.org/maniphest/query/advanced/ for Maniphest. This one has more fields, and auto-completion that includes "Not in:..." (equivalent to NOT) and "In any:..." (equivalent to OR) (for example, type "echo" in the "Tags" field). There is also an advanced search for most other applications (e.g. phab:file/query/advanced for Files). To only search for tasks / bug reports, use the Maniphest advanced search.

Inside Maniphest, custom, saved searches and advanced search options are listed in the navigation bar on the left.

Search terms

Special care needs to be put in choosing correct search terms.

Some locally-valid properties for the "Query" field:

  • Case insensitive: Edit is the same as eDIt
  • phrase search works: "fatal error"
  • basic tokenization is performed, e.g. to strip punctuation
  • Stemming is performed: "edited" is also found when searching for edit. However, "edited" does not match edit as quoted text does not stem.
  • Substring search is supported: ~amp matches example, but amp does not.
  • ~"an examp" matches an example as quoted and substring-operator text uses substring search.
  • Boolean queries to exclude certain terms are possible by using the - symbol before the unwanted term. E.g. use -non fatal error to exclude "non-fatal" errors from results.
  • To only search in a task title but not in the task description or comments, use title:quick ferret which is the same as title:quick title:ferret. To search for one term in the task title and other terms anywhere in a task, use ferret title:quick or title:quick all:ferret. See https://secure.phabricator.com/book/phabricator/article/search/ for more information.

The advanced search forms are not explicit about the logic but in general use AND between different fields. You can exclude specific projects from the results by entering not(projectname) (equivalent to NOT) and combine several projects via any(projectname) (equivalent to OR) via the auto-completion suggestions. There's a limit of 5 items in the maniphest autocomplete. To increase this limit, see these userscripts for Chrome and for Firefox.

Alternatives ways to find something

If you don't remember the exact words used in an item you are looking for you can follow one of these paths:

  • use the activity feed and edit the query to be restricted to certain projects or timeframes
  • use the activity feed to list all actions that you performed in a certain timeframe at phab:feed/query/EW2FwdAi.Kfz/
  • use an external search engine;
  • remove all search terms, refine the search only by project etc. and then scan all the possible results manually or use Ctrl+F to search specific strings (this might require setting "Page Size" to a high value to display more than only 100 results);
  • file a new task, mentioning that a past report exists as well, and wait for someone to merge the new report to the old.

Selecting Dates and Date Ranges

This is only available in the Advanced Search.

Using the Date fields like "Created After" and "Created Before" allow entering absolute and relative dates. Note that Maniphest uses UTC.

To get a list of tasks which were created in the last 24 hours, set the "Created After" field to "-24 hours" or "-1 day". Note that "Updated Before" actually means "Last updated before" and that absolute date values like "2014-11-26" refer to UTC time while your time zone setting might be different. The "Updated After" and "Updated Before" fields return any and all changes to a task. For example, when a task is moved to another column in a board it registers as "updated". This may add noise to your search results.

Examples of how Maniphest interprets searches:

  • "02/25/2015" is interpreted as "00:01 on February 25th, 2015" (UTC)
  • "5 days ago" is interpreted as "00:01 on the fourth calendar day before today" (UTC)
  • "2:45 AM 5 days ago" is interpreted as "02:45 on the fourth calendar day before today" (UTC)

The "X days ago" range can be confusing. Phabricator interprets today as part of any data set. Even if it is 12:30 UTC, Phabricator will interpret that as a potential day in the range.

Saving and Managing Searches/Queries

Queries can be saved and managed inside Maniphest.

Maniphest offers links to some predefined search queries in the navigation bar on the left. For example, click authored to get a list of tasks that you have created.

Search query addresses (URL) are stable so you can save and reuse them. You can share the address in your web browser's address bar with other people, e.g. via posting the link on a wikipage.

If you want to save a search, select the "Save Query" button at the bottom of the Advanced Search UI.

When looking at the navigation bar on the left in Maniphest, click on the "Edit Queries…" link. You will see a list of your saved queries. All users have a default set which can be deleted in this UI.

Some options in this UI:

  • Use the line elements on the left to drag queries up and down in the list.
  • The "x" will permanently delete a Query.
  • The Pencil icon allows a user to edit the name of a query
  • Clicking on the name of a Query will bring up the search options and results of that query

Once you save a query, you cannot change its parameters, but you can change its name. To edit a query, click on it's name, change parameters and save it as a new query. Also, Phabricator allows users to save multiple queries with the same name.

To make the user name dynamic (e.g. for "Tasks assigned to the person running this query") in searches that you'd like to share with others, set "Current viewer".

Note that some common queries are also available in the "Activity" tabs on the Phabricator frontpage.

Finding the Maniphest task corresponding to a Bugzilla bug number

This is only available in the Advanced Search.

All Phabricator tasks migrated in 2014 from Bugzilla have a Reference field that contains a value "bz" followed by the number of the equivalent report in Bugzilla. If you want to search the task corresponding to a specific Bugzilla report, use the Reference field in the advanced search or just add 2000.

Advanced features

Using Dashboards

Dashboards are specially designed home pages which can display a wide range of custom information. They can be created, managed and shared between users.

Click here for a detailed Dashboard walkthrough.

Batch edits

Phabricator offers the possibility to perform mass/bulk edits for tasks. At the end of any Maniphest search query you will find a "Batch Edit Selected" to edit all the tasks you have selected using Shift-click. Users willing to use this feature need to join the Triagers group.

Batch editing can be reversed by noting the "Bulk Job" ID that is generated at the start of a Batch Edit. This can be accessed by clicking "Details" before or after executing. On the following page, there will be a "Continue" menu item to the right, which will generate a Maniphest query of all the affected tasks.

Favorites

The Star menu in the top navigation bar can be customized with links to your preferred forms and actions. See the Profile Menu instructions for more information.

Personal lists of items

The "Flag For Later" functionality offers marking objects (like tasks or revisions) which "you want to remember to look at later". Eight flag colors are available. Flags are personal and private so your lists cannot be shared with others. Your flagged objects are listed on flag. They can be searched by color or object type, in contrast to tokens.

Creating a project

Screencast showing how to request a project

In Phabricator projects are tags, tags are projects. Hierarchy via sub-projects is available since February 2016.[1] Tasks can be assigned to more than one project, and they can also be submitted without assigning them to any project.

When do you need a project?

In general, you need a project...

  • when you have an established team running one or several projects (start here, ask more only when you need more)
  • when you need a workboard (i.e. a sprint)
  • when you need a tag or keyword to organize a type of task that can be part of any project (for example "Accessibility")

Requesting a new project

See Phabricator/Requesting a new project.

Restricting access to tasks

Access to a specific task can be changed via "Edit Task" and then changing the "Visible To" field to something else than "Public".

Note that tasks filed as Security issues are not publicly visible. See Reporting security bugs for more information. See Phabricator/Creating and renaming projects#Project policies for default project settings (and using Spaces).

Displaying and using a Space

Spaces (upstream documentation) allow restricting access to groups of objects (like tasks) to members of a specific group only. See Restricting access via Space policies for setting up.

If you can access at least two spaces, you see an additional Spaces dropdown under "Visible To" when creating and editing an object. Users with access to only one space will not see this control.

In Maniphest's task view, the Space will also be displayed in front of the task summary. You can batch-edit tasks to move them to a different Space.

Note that you will still have to associate the corresponding "public" project (if existing) to a task to make a task in a restricted Space (which you have access to) to show up in search queries and the workboard of the project. The "public" project could be automatically added via requesting a global Herald rule.

When creating tasks in Spaces, use the "Create Advanced Task" option in the "Create Task" dropdown. This option will display an additional Spaces dropdown under "Visible To" in the task creation UI that will allow you to set visibility to the Space for which this task should be visible.

If you instead create a task via the "Create Simple Task" option in the "Create Task" dropdown, then after you create it, you will have to edit the task to restrict visibility to members of the Space. Before this edit, the task will be visible to anyone and notifications about your task might have been sent to public logged IRC channels and other subscribed individuals.

MediaWiki templates and links

  • You can link to Phabricator tasks from wiki pages using phabricator: and its shorter version phab:, for instance [[phab:T454|example]] generates example.
  • Template:Tracked has been updated to include links to Phabricator objects — see at the right how {{Tracked|T177|resolved}} is rendered.
  • Template:Phabricator is also available; {{Phabricator|T176}} generates task T176.

Existing Bugzilla links and templates will still work, because those links will continue to point to bugzilla.wikimedia.org which will redirect them to the converted Phabricator task.

Chat rooms (Conpherence)

Conpherence is a Phabricator application that enables private conversations between two or more users, similar to instant messaging and private chat rooms. No team is known to use this. It may conflict with other established communication channels such as IRC. To learn more click here.

Conpherence has an optional persistent window/column that can be shown and hidden with the keyboard key "\". Users may accidentally activate this feature, and it can only be hidden again by using the "\" key (there is no graphical UI feature to close it).

Statistics

Phabricator offers tables showing the open tasks by priority and by either user or project (not available due to phab:T125357). Apart from that, Phabricator doesn't support further statistics, metrics, charts, reports (e.g. over time) or however you may call them, whether built-in or via an API.[2] Phragile and Phlogiston are further reporting tool options for Phabricator.

Code browsing (Diffusion)

Diffusion is the Phabricator repository browser[3]. Another option is using gitiles at https://gerrit.wikimedia.org/r/plugins/gitiles/?format=HTML for repository read-only mirroring. Right now, we're mirroring some of our Git repositories to Phabricator for demonstration purposes.

To request and set up a new code repository, see Gerrit/New repositories/Requests.

Default fields (Forms)

Phabricator allows some customization of the fields shown for a given task. These are handled via the Forms feature.

API (Conduit)

Conduit is the name of the web API. https://phabricator.wikimedia.org/conduit/ offers some explanation and examples. See the Conduit upstream documentation. Also see Phabricator/Bots.

Other links

  1. T3670 (subprojects), on the upstream Phabricator instance
  2. T1562 (statistics), on the upstream Phabricator instance
  3. Diffusion repository browser user guide, on the upstream Phabricator instance