Contributing to Composable Preview Scanner

June 16, 2026 ยท View on GitHub

Thank you for your interest in contributing to Composable Preview Scanner! We welcome contributions from the community to help make this library better for everyone.

This project is developed using Test-Driven Development (TDD) and maintains strict binary compatibility using Metalava.

How to Contribute

Reporting Issues

If you find a bug or have a feature request, please open an issue. When reporting a bug, please include:

  • A clear and descriptive title.
  • Steps to reproduce the issue.
  • Expected vs. actual behavior.
  • Relevant environment details (OS, JDK version, Compose version, etc.).

Submitting Pull Requests

  1. Fork the repository and create your branch from master.
  2. Implement your changes. If you are adding a new feature or fixing a bug, please include corresponding tests. We follow a TDD approach.
  3. Ensure the build passes. Run the relevant Gradle tasks (see Verification below).
  4. Follow the code style. Maintain consistency with the existing codebase.
  5. Update documentation if your changes introduce new APIs or change existing behavior.
  6. Submit a Pull Request with a clear description of your changes and a link to the relevant issue.

Development Setup

  • JDK 17+ is required.
  • Android Studio (latest stable version) is recommended for development.

Verification

To maintain high quality, all PRs must pass the following custom Gradle tasks, which are also automatically executed in our Continuous Integration (CI) pipeline. We recommend running them locally before submitting your changes:

TaskDescription
./gradlew :tests:testApiRuns API logic tests.
./gradlew :tests:testSourceSetsRuns SourceSet logic tests.
./gradlew :tests:paparazziPreviewsRuns Paparazzi integration tests.
./gradlew :tests:roborazziPreviewsRuns Roborazzi integration tests.

Binary Compatibility

We use Metalava to track API changes and prevent breaking binary compatibility for our users. If your changes modify public APIs, ensure you've considered the impact and updated the API tracking files accordingly.

Code of Conduct

Please be respectful and professional in all interactions within this project.

License

By contributing, you agree that your contributions will be licensed under the project's LICENSE.