1.4 KiB
Contributing
Thanks for wanting to contribute!
If you want help or mentorship, please file a Github issue and I'll be sure to provide guidance to the best of my ability.
Otherwise be sure to check out internals.md for an overview on the internals.
Filing a pull request
Check out Servo's Github workflow for an overview on creating a pull request.
Don't worry about requesting code review, as there is nothing formally setup for this repository. I try and review each pull request as soon as I can.
There is continuous integration setup for cbindgen using travis. It automatically runs cargo test which runs cbindgen against a series of rust files from tests/rust/ and checks that the output compiles using gcc or g++.
In addition to a C/C++ compiler cargo test requires Python and Cython
(python -m pip install Cython) for checking Cython bindings generated from tests (.pyx files).
Please run cargo test before filing a pull request to be sure that all tests pass. This will also update the test expectations.
Rustfmt is also enforced by travis. To format your code install rustfmt-preview using rustup component add rustfmt-preview and then cargo fmt. Travis runs with rust nightly, so use rustup run nightly -- cargo fmt to guarantee consistent results.
Writing new tests with your pull requests is also appreciated.