Vowpal Wabbit thrives on its community. This document contains some guidelines to make contributing easier.
- Reach out if you want feedback
- Implement the change and its tests
- Start a pull request & address comments
- Merge
Open an issue if you want feedback on your idea before you code. If it's something non trivial we suggest reaching out to make sure it aligns with the project goals (performance implications, design requirements, interfaces, etc.). This will let us have a brief discussion about the problem and, hopefully, identify some potential pitfalls before too much time is spent on your part.
If you're just fixing typos or small bugs there's no need to reach out beforehand.
- Fork the repository on GitHub
- Start on a new topic branch off of master
- Instructions for getting Vowpal Wabbit building and running the tests are in the Wiki
- Aim for each pull request to have one goal. If the PR starts to get too large,
consider splitting it into multiple, independent pull requests
- Some changes are more naturally authored in the same pull request. This is fine, though we find this to be a rare occurrence. These sort of changes are harder to review
- Aim to add tests that exercise the new behaviour and make sure that all the tests continue to pass
Start a GitHub pull request to merge your topic branch into the main repository's master branch.
When you submit a pull request, a suite of builds and tests will be run automatically, and the results will show up in the "Checks" section of the PR. Generally, we'll wait for these to all pass before we review your PR. If you need help resolving build or test issues feel free to reach out in the comments of your PR.
We suggest ticking "Allow edits and access to secrets by maintainers" so that we can contribute to your PR if need be.
Once the comments in the pull request have been addressed, we will merge your changes. Thank you for helping improve Vowpal Wabbit!
By default we'll perform a squash merge, so don't worry if the commit history is messy.
Security issues and bugs should be reported privately, via email, to vowpalwabbit-security [a t] hunch.net
Ways to get in contact can be found here.
Although VW is not a Microsoft project, we follow the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ