Taskotron contribution guide
The repositories for the tasks developed alongside Taskotron itself are in the Fedora QA project on Bitbucket:
Issue and code change tracking
Tracking of issues and code changes for all Taskotron projects happens in the Fedora QA instance of Phabricator. Please see this section of the page for general instructions on submitting issues and 'diffs' in Phabricator.
Remember, if you want to help out but are having trouble following these instructions, 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.
There are some specific considerations for contributing to Taskotron components.
For most Taskotron components, we recommend you submit diffs from within a virtualenv. This will ensure the tests and linter (see below) run correctly. If run directly from the host system, they may not do so. The general process for creating and entering a virtualenv is as follows:
dnf install python2-virtualenv python-pip virtualenv --system-site-packages env_somename/ source env_somename/bin/activate
is an arbitrary name for the virtualenv; it's customary to name it for the project, but you can call it anything. To exit the virtualenv, run . Usually, after entering the environment, this will install the requirements for testing (and, if appropriate, running a development instance of) the project, and install the project within the virtualenv in 'editable' mode so that changes you make to the source will be immediately reflected when running the code in the virtualenv:
pip install --ignore-installed -r requirements.txt pip install -e .
Each project's own README file should usually contain more detailed instructions on this step for the specific project, so check that out too.
Gitflow is a git branching strategy that has been used successfully in the blocker tracking app and several Fedora infra apps. Most Taskotron component projects use the gitflow strategy.
git checkout develop git pull git checkout -b feature/fixurl # do your work git commit arc diff develop
Always remember to do ato get all the latest changes.
Tests and linting
Taskotron components usually have test suites built on Pytest, and run lint checks using flake8. To ensure you have these packages installed, run . When testing and submitting changes, remember to run inside your virtualenv to ensure the tests and lint run correctly.
General Thoughts and conventions
- Be smart
- All code going into develop branches MUST be reviewed
- All code should have good unit tests where appropriate
- When in doubt, ask
- Be sure to add a EDITOR config before doing a run export EDITOR="/usr/bin/vi"