From Fedora Project Wiki

(Update page, merge general arcanist/phab diff workflow instructions into it)
(phabricator is discontinued)
 
(5 intermediate revisions by one other user not shown)
Line 1: Line 1:
We use a tool called [http://phabricator.org/ Phabricator] to manage our tickets and review commits. Our instance is available at:
+
QA instance of Phabricator has been discontinued.
 
 
'''https://phab.qa.fedoraproject.org'''
 
 
 
Authentication uses the Fedora [[Account System]], so you do not need a separate account.
 
 
 
{{anchor|issues}}
 
{{anchor|issues-diffs}}
 
== Filing issues ==
 
 
 
You can [https://phab.qa.fedoraproject.org/maniphest/task/create/ create a ticket] for us there (report a bug, suggest a feature) against [https://phab.qa.fedoraproject.org/project/query/all/ one of our tracked projects] (including the [[Taskotron]] and [[ResultsDB]] components).
 
 
 
== Proposing code changes ('diffs') ==
 
 
 
In the Phabricator system, code changes (often called 'pull requests' in git terms) are referred to as 'diffs'. For the projects which track code changes in Phabricator, you can use a tool called {{code|arcanist}} to submit diffs.
 
 
 
{{admon/warning|Don't follow upstream instructions|Do not follow the upstream guide to install {{code|arcanist}}! This will install whatever code is in git and may not match the server version we are using.}}
 
 
 
Fedora packages for {{code|arcanist}} are currently provided in a [https://copr.fedorainfracloud.org/coprs/kanarip/phabricator/ COPR repository]. To enable it and install {{code|arcanist}}, run:
 
 
 
sudo dnf copr enable kanarip/phabricator
 
sudo dnf install arcanist
 
 
 
You may need to adjust PHP to load the system trusted CA certificate store. Create a file `/etc/php.d/99-curl-systemtrust.ini` with this content:
 
 
 
curl.cainfo=/etc/pki/tls/certs/ca-bundle.crt
 
 
 
Then from a checkout of any repository for which changes are tracked in Phabricator, run:
 
 
 
arc install-certificate
 
 
 
You will be prompted to visit a link for a generated certificate used for API calls. After visiting that link (and logging into Phabricator if necessary), you will see a string of characters in a text box. Copy those characters and paste them into the {{code|arc}} prompt.
 
 
 
The command to submit diffs is {{code|arc diff}}. The general workflow is to create your change on a local branch - it is not necessary to fork the repository or push your change to any remote - and then run {{code|arc diff}} from that branch. To update the diff, just modify the branch and run {{code|arc diff}} again; {{code|arcanist}} should detect the existing diff and update it, rather than creating a new one.
 
 
 
For detailed instructions, see [[https://secure.phabricator.com/book/phabricator/article/arcanist/|the arcanist user guide]].
 
 
 
== FAQs ==
 
 
 
=== User FAQ ===
 
 
 
<dl>
 
<dt> Do I need to create yet another account?
 
<dd> No. If you need to log in (to e.g. create a ticket), use your '''FAS email address''' (that is <code>nick@fedoraproject.org</code>). You'll be redirected to FAS where you supply your password and then back to Phabricator. No new account is necessary.
 
 
 
<dt> The main page is confusing.
 
<dd> Use the navigation toolbar on the left:
 
* ''Differential'' will let you see all patch reviews or create a new one manually (for a better way, see [[User:Tflink/taskotron_contribution_guide]]).
 
* ''Maniphest'' will let you see current tickets (bugs, requests) or create a new one (look into the upper right screen corner).
 
* ''Projects'' will show you a list of our projects. You will need this when creating a new ticket to provide a correct project name.
 
* ''[https://phab.qa.fedoraproject.org/feed/ Feed]'' (available from ''Applications'') will show you the latest changes in Phabricator.
 
 
 
<dt> I receive too much email for the tickets I'm subscribed to. Every single ticket change is announced.
 
<dd> Go to your [https://phab.qa.fedoraproject.org/settings/panel/emailpreferences/ Email preferences] and set which types of action you want to get email notifications for.
 
</dl>
 
 
 
=== Developer FAQ ===
 
 
 
<dl>
 
<dt> I want to be notified for all tickets in a certain project, even if I'm not directly subscribed to them.
 
<dd> Visit the desired project from the [https://phab.qa.fedoraproject.org/project/ list of projects]. Make sure you're looking at the project details page (the top icon in the left bar) - for certain projects, the workboard is displayed by default. Now click on ''Join Project'' and then on ''Watch Project''. From now on, you'll receive notifications about every ticket change related to this project. You can cancel your subscription from here as well.
 
 
 
<dt> I want to watch for ticket changes with more complicated rules, not just per-project.
 
<dd> Use [https://phab.qa.fedoraproject.org/herald/ Herald tool]. You'll be mostly interested in ''Maniphest Tasks'' (tickets) rules or ''Differential Revisions'' (patch reviews) rules. These rules are evaluated for every ticket/review change. For example you can specify that if a ticket has a certain keyword in its description, you'll get automatically subscribed to it. Example:
 
<pre>Name: kparal: track interesting keywords
 
Applies To: Maniphest Tasks
 
 
 
When any of these conditions are met:
 
  Title matches regexp /(upgradepath|depcheck|autoqa|rpmguard)/i
 
  Body matches regexp /(upgradepath|depcheck|autoqa|rpmguard)/i
 
Take these actions the first time this rule matches:
 
  Add emails to CC kparal</pre>
 
 
 
<dt> I want to be notified for all patch reviews for a certain project/repository, even if I'm not listed among reviewers.
 
<dd> Use Herald tool (see above). You'll either need to list the repositories you're interested in, or you can list the projects these repositories are related to (each repository can be related to one or more projects), see [https://phab.qa.fedoraproject.org/diffusion/query/all/ the list of all repositories] and the relevant projects displayed next to each of them, looking like "tags". Example:
 
<pre>Name: kparal: watch revisions for selected repositories
 
Applies to: Differential Revisions
 
 
 
When all of these conditions are met:
 
  Repository is any of rWTCMS (python-wikitcms), rFAKE (fake_fedorainfra)
 
Take these actions the first time this rule matches:
 
  Send an email to kparal</pre>
 
<pre>Name: kparal: watch revisions for selected projects
 
Applies to: Differential Revisions
 
 
 
When all of these conditions are met:
 
  Repository's projects include any of repos-taskotron, infrastructure, papercuts, testCloud
 
Take these actions the first time this rule matches:
 
  Send an email to kparal</pre>
 
 
 
<dt> I want to be notified of tickets without any project set (usually bug reports from people not familiar with Phabricator).
 
<dd> Use Herald tool (see above). Example:
 
<pre>Name: kparal: notify me of tasks without project set
 
Applies To: Maniphest Tasks
 
 
 
When any of these conditions are met:
 
  Projects does not exist
 
Take these actions the first time this rule matches:
 
  Send an email to kparal</pre>
 
 
 
<dt> I want to be notified just once when a ticket/patch is created, not for every change, or I want to selectively subscribe/unsubscribe from them.
 
<dd><ul>
 
<li>If you start watching a certain project, you'll receive all changes of all tickets.
 
<li>You'll also receive all changes of tickets/patches, if you use a Herald rule containing:
 
<pre>Add emails to CC &lt;name&gt;</pre>
 
But if you've set this to apply ''only the first time this rule matches'', you'll be then able to unsubscribe later from that item using the ''Unsubscribe'' button.
 
<li>If you want to receive the notification just once and not subscribe automatically, use this action in a Herald rule:
 
Take these actions ''the first time'' this rule matches:
 
''Send an email'' to &lt;name&gt;
 
You can then decide whether to subscribe to that ticket/patch using the ''Subscribe'' button and receive further notifications, or ignore it and not receive any further notifications for that item.</ul>
 
 
 
<dt> I want to be notified of new or edited wiki documents in Phabricator.
 
<dd> Use Herald tool (see above). You can watch just a certain document path (and everything below it), new or edited documents or both. You can again get either subscribed or receive just a one-time notification. Example:
 
<pre>kparal: add to CC to new wiki documents
 
Applies To: Phriction Documents
 
 
 
When all of these conditions are met:
 
  Path contains taskotron/
 
  Is newly created is true
 
Take these actions every time this rule matches:
 
  Add Subscribers kparal</pre>
 
 
 
<dt> Why haven't I received a notification?
 
<dd> Look at [https://phab.qa.fedoraproject.org/herald/transcript/ Herald Transcript] for that particular item. It lists all the existing rules and shows whether they were acted on or not and why. <br>
 
Tip: If you prefix your rule name with your nick, it will be much easier for you to distinguish which rules are yours. <br>
 
You can also use the [https://phab.qa.fedoraproject.org/herald/test/ Herald Test Console] to test your rules against particular objects.
 
 
 
[[Category:QA]]
 

Latest revision as of 12:44, 7 August 2017

QA instance of Phabricator has been discontinued.