How to contribute

Thank you for your interest in contributing to Qubes! Here are some of the many ways in which you can help:

Contributing code

If you’re interested in contributing code, the best starting point is to have a look at our GitHub issues to see which tasks are the most urgent. You can filter issues depending on your interest and experience. For example, here are some common issue labels:

Before you engage in an activity that will take you a significant amount of time, like implementing a new feature, it’s always good to contact us first, preferably via the qubes-devel mailing list. Once we’ve worked out the details, we’ll be grateful to receive your patch.

Using AI in contributions

If you use generative AI in your contributions, you must disclose this at the time you submit your contribution. If you do not disclose use of generative AI, and the reviewer has reason to believe that it has been used, your contribution is likely to be deprioritized and may be denied without further review, at the discretion of the reviewer. If you intentionally and repeatedly fail to disclose your use of generative AI in a way that is disruptive for the project or its reviewers you may be banned from further contributions or, in severe cases, from participating in the project altogether.

All contributions to the Qubes OS Project are carefully reviewed by humans to evaluate whether they meet the project’s standards. Generative AI allows potential contributors to generate large amounts of content quickly and at near-zero cost. If these contributions are of high quality, they will be welcome. Unfortunately, however, they are often of low quality, in which case it is easy for even a single GenAI-assisted contributor to overwhelm the entire project’s human review capacity.

Regardless of how your content was created, you will be considered the fully-accountable author of that content, and you are responsible for reviewing & fixing such output before submitting it.

This policy applies to every way in which you may contribute to, or interact with, the project, including (but not limited to) code, patches, packages, issue tracking, reporting security issues, documentation, artwork, discussion forums, mailing lists, social media, chat, and email.

Bounties

The Qubes OS Project allows members of the community to place unofficial bounties on issues. These bounties are not officially sponsored, endorsed, guaranteed, or paid by the Qubes OS Project. The person or group of people offering a bounty are responsible for paying it, and they decide the value of the bounty, the terms of payment, and the acceptance criteria. Contributors who wish to collect a bounty should coordinate with those offering the bounty to ensure that their work will result in a successful bounty payment.

Since bounties are unofficial, it’s important to understand that a successful bounty doesn’t necessarily mean that a contribution will be accepted by the Qubes OS Project. Since those who offer a bounty are free to set whatever acceptance criteria they like, it’s possible that those acceptance criteria could differ significantly from the Qubes OS Project’s acceptance criteria for contributions, which can lead to situations in which a bounty is paid, yet the work doesn’t get integrated into Qubes afterwards. Whether this is a problem depends on your goals: Some people are satisfied with a work product that they can use, even if it doesn’t get officially integrated into the project, while others are not. If official integration is important to you, you can make the bounty contingent on the contribution being officially integrated into Qubes.

Contributors who complete a bounty issue sometimes choose to have the bounty donated to the Qubes OS Project instead of collecting it themselves. In that case, the bounty issuer should use one of the methods on the donation page to send the bounty to the project.