# How to contribute First, read the [`NOTICE.md`] file for the legal status of the project. You can contribute by sending a pull request as follows: 1. Fork the repository. 2. Make your changes and then run the tests with `cargo test`. For changes in our `.proto` files, do the following: * Check if the `.proto` files pass the lint checks of Uber's [`prototool`]. * Compile the `.proto` files with `cargo build --features proto-gen`. * Commit the generated Rust code. 3. If your changes close any issues, specify them in the respective commits (`Closes #...`), and update `CHANGELOG.md` if necessary. 4. Create a pull request that targets the `master` branch. Once you've sent a PR, wait for the CI steps to finish successfully. When the CI and review process complete successfully, please ensure that your branch presents a clear history of changes, i.e., squash fixup commits and update stale commit messages. Finally, the PR will be merged with the "Rebase and merge" strategy. [`NOTICE.md`]: NOTICE.md [`prototool`]: https://github.com/uber/prototool