1# How to Contribute 2 3We'd love to accept your patches and contributions to this project. There are 4just a few small guidelines you need to follow. 5 6## New Features/Libraries 7 8Before contributing large new features and/or libraries please start a discussion 9with us first via GitHub Issues and check that we can support it. 10We are unable to support all new features, even though we wish we could! If we 11are unable to support adding your feature, we always encourage you to open source it 12in your own repository to help the Compose community grow. 13 14## Contributor License Agreement 15 16Contributions to this project must be accompanied by a Contributor License 17Agreement. You (or your employer) retain the copyright to your contribution, 18this simply gives us permission to use and redistribute your contributions as 19part of the project. Head over to <https://cla.developers.google.com/> to see 20your current agreements on file or to sign a new one. 21 22You generally only need to submit a CLA once, so if you've already submitted one 23(even if it was for a different project), you probably don't need to do it 24again. 25 26## Code Reviews 27 28All submissions, including submissions by project members, require review. We 29use GitHub pull requests for this purpose. Consult 30[GitHub Help](https://help.github.com/articles/about-pull-requests/) for more 31information on using pull requests. 32 33## API Changes 34 35If you are changing any public APIs, you need to run `./gradlew metalavaGenerateSignatureRelease` which will 36update the API signatures. 37 38## Formatting 39 40To apply formatting, we use spotless. Run `./gradlew :pager:spotlessApply` to format the code according 41to the spec. 42