This is an initial guide to getting started with contributing to taskotron, please let us know if you find any errors in this document or if something doesn't make sense
Getting the Code
For now, all taskotron related code is on bitbucket. You can most of the needed repositories under the fedoraqa team.
Other repos which are potentially of interest are:
If you need team membership, send a message out to qa-devel@ or file a ticket in phabricator against the infrastructure project.
Getting the Tools
A general list of the tools we are using (read: should be installed on dev machines) and available in the Fedora repos are:
Gitflow is a git branching strategy that has been used successfully in the blocker tracking app and several Fedora infra apps.
At the time of this writing, the only way to submit code reviews is to use phabricator's cli tool, arcanist.
There are phabricator related packages available for Fedora in a siderepo and you'll need to enable this siderepo before installing arcanist:
sudo curl http://repos.fedorapeople.org/repos/tflink/phabricator/fedora-phabricator.repo -o /etc/yum.repos.d/fedora-phabricator.repo
After that, just run
yum install arcanist to install arcanist.
In order to communicate with the phabricator instance, arcanist needs to have a certificate associated with your phabricator user. The easiest way to configure this is to clone the libtaskotron repo and from the checkout, execute
You will be prompted to visit a link for a generated certificate used for api calls. After visiting that link and logging into phabricator, you will see a string of characters in a text box. Copy those characters and paste them into the arc prompt.
Submitting a Code Review
In short, code reviews are submitted through arcanist to phabricator through the
arc diff command. More detailed instructions are available in the arcanist user guide.
General Thoughts and Conventions
These will be fleshed out more in the near future but in general:
- Be smart
- All code going into develop branches **MUST** be reviewed
- All code should have good unit tests where appropriate
- When in doubt, ask