The Material Components contributing policies and procedures can be found in the main Material Components documentation repository’s contributing page.
For larger feature requests we might ask you to write a Design Doc.
To make a contribution, you'll need to be able to build the library from source and run our tests.
Because the material-components-android code is stored in two locations (i.e., GitHub and Google), PRs are not directly merged into the repository. Instead, once a PR is complete (i.e., cla signed, CI passing, design reviewed, code reviewed), the PR will be converted to a commit sourced to the original author that is synced into the repository. Even though the PR list shows no merged PRs, we do accept contributions.
Take a look at our instructions on how to build the library from source.
Material Components for Android has JVM tests as well as Emulator tests.
To run the JVM tests, do:
./gradlew testTo run the emulator tests, ensure you have a virtual device set up and do:
./gradlew connectedAndroidTestSince we all want to spend more time coding and less time fiddling with whitespace, Material Components for Android uses code conventions and styles to encourage consistency. Code with a consistent style is easier (and less error-prone!) to review, maintain, and understand.
If the style guide is not explicit about a particular situation, the cardinal rule is to be consistent. For example, take a look at the surrounding code and follow its lead, or look for similar cases elsewhere in the codebase.
We follow the Google Java Style Guide.
- 2 space indentation
- Resource naming (including IDs) is
lowercase_with_underscores - Attribute ordering:
xmlns:android- other
xmlns: android:idstyleandroid:layout_attributesandroid:paddingattributes- other
android:attributes app:attributestool:attributes