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