We use a tool called Phabricator to manage our tickets and review commits. Our instance is available at:
Authentication uses the Fedora Account System, so you do not need a separate account.
If you have any trouble using Phabricator, especially with filing issues or code changes (diffs), you can always get in touch with us for help! Please mail qa-devel or ask in and someone will likely be able to help you out.
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 calledto submit diffs.
Fedora packages for COPR repository. To enable it and install , run:are currently provided in a
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:
Then from a checkout of any repository for which changes are tracked in Phabricator, run:
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 theprompt.
The command to submit diffs is. 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 from that branch. To update the diff, just modify the branch and run again; should detect the existing diff and update it, rather than creating a new one.
Many of the projects tracked in Phabricator use the gitflow model, which means their main development branch is called , not . You can easily identify these as when you first check out the repo, you will be on the branch. When you first run , it will ask you which 'Default Commit Range' you want to use. For the gitflow projects, you should enter . For projects which just use a branch, you should enter . When running , you can always explicitly specify the starting point for the range, e.g. to start from the state of your local branch.
If the project you are contributing to has tests and/or linting enabled, you may need to ensure you have the appropriate packages installed, and/or run virtualenv, to ensure the tests and lint run correctly. Check the project's documentation and/or contribution guide (e.g. Taskotron contribution guide) for details.from a
For detailed instructions on the arcanist user guide.usage, see
- Do I need to create yet another account?
- No. If you need to log in (to e.g. create a ticket), use your FAS email address (that is
firstname.lastname@example.org). You'll be redirected to FAS where you supply your password and then back to Phabricator. No new account is necessary.
- The main page is confusing.
- Use the navigation toolbar on the left:
- Differential will let you see all patch reviews or create a new one manually (see #issues-diffs for a better way to do this).
- 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.
- Feed (available from Applications) will show you the latest changes in Phabricator.
- I receive too much email for the tickets I'm subscribed to. Every single ticket change is announced.
- Go to your Email preferences and set which types of action you want to get email notifications for.
- I want to be notified for all tickets in a certain project, even if I'm not directly subscribed to them.
- Visit the desired project from the 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.
- I want to watch for ticket changes with more complicated rules, not just per-project.
- Use 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:
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
- I want to be notified for all patch reviews for a certain project/repository, even if I'm not listed among reviewers.
- 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 the list of all repositories and the relevant projects displayed next to each of them, looking like "tags". Example:
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
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
- I want to be notified of tickets without any project set (usually bug reports from people not familiar with Phabricator).
- Use Herald tool (see above). Example:
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
- 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.
- If you start watching a certain project, you'll receive all changes of all tickets.
- You'll also receive all changes of tickets/patches, if you use a Herald rule containing:
Add emails to CC <name>
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.
- 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 <name> 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.
- I want to be notified of new or edited wiki documents in Phabricator.
- 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:
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
- Why haven't I received a notification?
- Look at Herald Transcript for that particular item. It lists all the existing rules and shows whether they were acted on or not and why.
Tip: If you prefix your rule name with your nick, it will be much easier for you to distinguish which rules are yours.
You can also use the Herald Test Console to test your rules against particular objects.