| # Contributing |
| Want to contribute? Great! First, read this page. |
| |
| |
| ## Before you contribute |
| Before we can use your code, you must sign the |
| [Google Individual Contributor License Agreement] |
| (https://cla.developers.google.com/about/google-individual) |
| (CLA), which you can do online. The CLA is necessary mainly because you own the |
| copyright to your changes, even after your contribution becomes part of our |
| codebase, so we need your permission to use and distribute your code. We also |
| need to be sure of various other things—for instance that you'll tell us if you |
| know that your code infringes on other people's patents. You don't have to sign |
| the CLA until after you've submitted your code for review and a member has |
| approved it, but you must do it before we can put your code into our codebase. |
| Before you start working on a larger contribution, you should get in touch with |
| us first through the issue tracker with your idea so that we can help out and |
| possibly guide you. Coordinating up front makes it much easier to avoid |
| frustration later on. |
| |
| ### The small print |
| Contributions made by corporations are covered by a different agreement than |
| the one above, the |
| [Software Grant and Corporate Contributor License Agreement](https://cla.developers.google.com/about/google-corporate). |
| |
| ## Pre-submit Steps |
| |
| ### Code reviews |
| All submissions, including submissions by project members, require review. We |
| use GitHub pull requests for this purpose. |
| |
| ### Testing |
| To run the unit tests for Mobly to verify your local changes: |
| |
| Make sure you have `tox` installed: |
| ```sh |
| pip3 install tox |
| ``` |
| |
| Then in the Mobly directory, run: |
| ```sh |
| mobly $ tox |
| ``` |
| |
| ### Code style |
| Before pushing your changes, you need to lint the code style via `pyink` |
| |
| To install `pyink`: |
| |
| ```sh |
| $ pip3 install pyink==24.3.0 |
| ``` |
| |
| To lint the code: |
| |
| ```sh |
| mobly $ pyink . |
| ``` |