NOTE: some links do not work as they point to a private repository on GitHub
This document describes basics of how our cooperation will look like: how you can find work, do it and get paid for it. Also this document covers communication, availability, intellectual property rights and other important topics.
All work in Xpiks project is stored in GitHub Issues.
You can work on issues that:
- are open
- are in the next milestone
- have label
"status: triaged"
- have label
"size: xyz"
(wherexyz
is one ofXXS
,XS
,S
,M
) - do NOT have label
"type: epic"
- do NOT have label
"status: blocked"
- are NOT assigned to anybody
All issues for freelancers must have a clear "Definition of done" section in addition to the conditions above. If the issue description is not clear or does not have a clear "Definition of done" section, please ask a question or do not work on such issue.
After you selected the issue to work on, you must assign it to yourself and move it to the "In Progress" column of the respectful Project (kanban board).
The issue is considered done when the pull request with the respective functionality is approved and merged to master branch of the main repository. Pull request should fulfill the "Definition of done" requirement found in the issue description.
To get your pull request approved:
- your pull request must provide the information requested by the pull request template
- your changes must adhere to the contributing guide
- code must build without errors on all supported platforms (Linux, Windows, macOS)
- your changes must pass all CI tests (style, "core" (unit) tests, integration tests and UI tests)
- all PR comments made by other contributors must be resolved
- code style must be consistent with code style used in the repository
If there is a flaw in your work that gets revealed after pull request is approved and merged, a separate issue will be created to fix it.
Accounting of your work is done in a separate spreadsheet that will be shared with you. After issue you worked on is closed, a record with pay amount will be added to the spreadsheet. Pay amount is based on the issue "size". It is $15
, $30
, $60
and $120
(USD) for issues of size XXS
, XS
, S
, M
respectfully. You get paid in the end of each month for all the work you did in the current month. Spreadsheet will show which work you already got paid for and which not.
Payment can only be processed with destinations supported by Wise (Transferwise) or by PayPal at your choise.
Current project documentation can be found in the docs/
directory in the root of the repository.
The most useful documents are Basic architecture overview, Build instructions and Developer's environment. It will be beneficial for you to get familiarized with them before working on Xpiks.
Documentation is valued a lot. If you find a topic that will be useful to have documentation for, please feel free to create an issue for that.
All communication related to the actual work must be done in the comments of the respective issue. Any communication related to contributing, pay and other topics must be done through the emails (my email is taras@xpiksapp.com
). Xpiks project does not have any other kind of communication (e.g. Slack, Teams, Mattermost etc.). Official communication language is English.
You are expected to do due dilligence when asking questions like "how to install Qt on my computer", "how to send a pull request in GitHub" and other similar questions that can be answered with web search and are not specific to Xpiks.
All communication and work in Xpiks are designed to be executed in asynchronous way in order not to block anybody.
The only blocking part is when you submit a pull request and it must get reviewed by me to get merged. Usually I'm working in a way to not block your work. If you submit a pull request I will do my best to review it at my earliest convenience. However, I'm not available on the weekends which means if you submit your pull request on Friday evening, the earliest time it can get reviewed is next Monday.
In most cases you will be working on Xpiks project where I'd like to retain intellectual property rights. Submitting your code as a pull request and getting paid for it will mean that I'm purchasing the copyright for the code you write for me.