Link Search Menu Expand Document

Contributing

First off, thanks for taking the time to contribute!

All contributions that improve Vorta for everyone are welcome. This includes bug fixes, new features, translations, answering questions or improving documentation.

Before actually coding a new feature it’s usually best to discuss it with other users and maintainers on GitHub Discussions.

If your questions are Borg-specific it might be advisable to join the #borgbackup IRC channel on chat.freenode.net instead. Matrix is very suitable to be used as an always-on IRC-client, simply register/identify to NickServ and then join the room #freenode_#borgbackup:matrix.org.

Testing the current development version

If you have an issue with a current release, the issue may already be fixed in our Github repo. To test the latest code without doing much setup, you can install Vorta directly from Github:

$ pip install git+https://github.com/borgbase/vorta#egg=vorta

Local Development Setup

Clone the latest version of this repo:

$ git clone https://github.com/borgbase/vorta/

Install in development/editable mode while in the repo root:

$ pip install -e .

Install additional developer packages (pytest, tox, pyinstaller):

pip install -r requirements.d/dev.txt

Then run as Python script. Any changes from your source folder should be reflected.

$ vorta

Working on the GUI

Qt Creator is used to edit views. Install from their site or using Homebrew and then open the .ui files in vorta/assets/UI with Qt Creator:

$ brew cask install qt-creator
$ brew install qt

Icons

For UI icons, we use Fontawesome. You can browse available icons here and download them as SVG here. New icons are first added to src/vorta/assets/icons, and can be gotten with the get_colored_icon function

Testing

Tests are in the folder /tests. Testing happens at the level of UI components. Calls to borg are mocked and can be replaced with some example json-output. To run tests:

$ pytest

To test for style errors:

$ flake8