How can I help make Open Voice OS better?

OpenVoiceOS is an open-source voice assistant built by a passionate community of developers, translators, testers, and advocates. Whether you code, translate, write docs, spread the word, or donate, your contribution helps build a customizable, privacy-focused, and inclusive voice assistant for everyone.

Coding

Developers of all backgrounds are welcome, from front-end and backend to machine learning and voice recognition. Help by improving features, fixing bugs, or optimizing performance to keep the platform robust and accessible.

Learn More

Building a Skill and/or Plugin

Create new skills and plugins, or improve existing ones, to expand what OpenVoiceOS can do and offer users more personalized interactions.

Learn More

Helping with Translation

We want no language left behind. Help translate OpenVoiceOS so people around the world can use it in their native language.

Learn More

Documentation

Good documentation guides users through setup and helps developers build skills and plugins. Whether you're a writer or know OpenVoiceOS well, help keep our docs clear and up to date.

Learn More

Sharing is Caring

Help grow the community by spreading the word through social media, blogs, forums, and developer circles to attract new users and contributors.

Learn More

Donating

Donations cover server costs, development tools, and other resources that keep the project running. One-time or ongoing, every contribution helps OpenVoiceOS thrive.

Learn More

Pull Request Review Process

OpenVoiceOS is made up of many smaller projects across multiple GitHub repositories that together power the amazing voice assistant we all know and love.

We're thrilled you're interested in contributing to OpenVoiceOS! This guide will walk you through our Pull Request (PR) process, highlighting how we leverage automation and encourage early collaboration. Our goal is to make contributing as easy and collaborative as possible, so don't worry about perfection!

TL;DR

  • • Use Conventional Commits
  • • Open draft PRs early, mark as "Ready for Review" when you're ready
  • • CodeRabbit bot helps automate feedback
  • • Everyone is welcome to review PRs, not just maintainers!
  • • PRs are squash-merged to keep history clean
  • • Don't worry about perfection, we'll help you get it right!

Who is responsible for reviewing PRs?

OpenVoiceOS is an open source project. Most of everything happening in our project is done by volunteers. We have a core team of developers that are responsible for the overall architecture of OpenVoiceOS, and they are responsible for merging PRs (also volunteers). However, they are not the only ones reviewing PRs.

Everyone is welcome to review PRs, and we encourage you to jump in!

So, when you have opened a PR, please consider checking out if there is an open PR you can help out with. Any review comment, improvement suggestion, or even just a "I tested this using ... and it works" is very much appreciated. Besides, reviewing others' code is a great way to learn more about OpenVoiceOS.

Conventional Commits

We use Conventional Commits to help our bots process and categorize changes. Don't stress if you're not an expert; it's mostly about clear, concise commit messages. For example:

  • • feat: add new voice command for weather
  • • fix: resolve issue with audio playback on startup
  • • docs: update installation instructions

Creating and Managing Your PR

We encourage you to open PRs early and often, even if your code isn't perfect or fully functional. This allows our bots and maintainers to provide feedback and guidance throughout your development process.

Our Code RabbitAI Bot:

Once you open a PR, our Code RabbitAI bot will automatically review your code. This bot helps with initial checks, style suggestions, and identifying potential issues, speeding up the review process.

  • • Draft PRs: If you're actively implementing changes and want to avoid the bot "annoying" you with reviews on every commit, simply mark your PR as a Draft.
  • • Ready for Review: When you're ready for another round of feedback from the bot and maintainers, mark your PR as Ready for Review. The bot will then re-engage and provide its insights.

Commit History:

Don't obsess over a pristine commit history within your PR. All PRs will be squashed on merge to dev, meaning your individual commits will be condensed into a single commit when integrated into the main development branch. This keeps our dev branch history clean and easy to navigate. The commit on the dev branch will also link directly to your original PR, making it easy to reference at any point.

Code Style:

Don't stress about strict code style adherence. Just use common sense and try to stick to the surrounding code's style. While we loosely follow PEP8, we consider code style largely the job of our bots and CI. We're thankful for your collaboration and want to make it as easy as possible for you to get started, without annoying you with nitpicks.

Feedback and Iteration:

The Code RabbitAI bot and our maintainers will provide feedback directly on your PR. Remember, these comments are not personal; they're meant to help you improve your contribution. Don't hesitate to ask questions or seek clarification.

What to Expect After Opening a PR

  • • Initial Bot Review: The Code RabbitAI bot will provide an initial automated review, offering suggestions and pointing out any immediate concerns.
  • • Maintainer Review: Our maintainers will review your PR, providing more in-depth feedback on design, functionality, and adherence to OpenVoiceOS principles.
  • • Iteration: You'll likely go through a few rounds of revisions based on the feedback you receive. Use the Draft PR feature to manage this process effectively.
  • • Merging: Once your PR meets our standards and passes all checks, a maintainer will merge it into the dev branch.
  • • If a PR isn't merged: If for any reason we decide not to merge a PR, please don't take it personally. We'll most likely offer a way to add any missing functionality via a standalone plugin you can maintain independently. Just talk to us!

Don't Worry About Perfection!

If any of the above seems too complex, don't worry! Our Code RabbitAI bot and our maintainers are here to help. If your commits aren't perfectly conventional or your PR needs some refinement, a maintainer or bot will fix it for you or guide you on how to make the necessary adjustments.

We're excited to see your contributions to OpenVoiceOS!