Contributing

April 17, 2026 ยท View on GitHub

The following is a set of guidelines for contributing to the project. Please take a moment to read through them before submitting your first PR.

Code of Conduct

This project and everyone participating in it are governed by the Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to opensource@shopify.com.

Welcomed Contributions

  • Reporting issues with existing features
  • Bug fixes
  • Performance improvements
  • Documentation
  • Usability Improvements

Things we won't merge

  • Additional dependencies that limit sdk use (e.g. android dependencies)
  • Any changes that break existing tests
  • Any changes without sufficient tests

Proposing Features

When in doubt about whether we will be interested in including a new feature in this project, please open an issue to propose the feature so we can confirm the feature should be in scope for the project before it is implemented.

NOTE: Issues that have not been active for 30 days will be marked as stale, and subsequently closed after a further 7 days of inactivity.

How To Contribute

  1. Fork the repo and branch off of main
  2. Create a feature branch in your fork
  3. Make changes and add any relevant tests
  4. Run formatting and lint checks (see below)
  5. Verify the changes locally (e.g. via the sample app)
  6. Commit your changes and push
  7. Ensure all checks (e.g. tests) are passing in GitHub
  8. Create a new pull request with a detailed description of what is changing and why

Formatting

This project uses detekt for Kotlin linting and formatting. Before submitting a PR, please run the following to auto-fix formatting issues:

./gradlew detekt --auto-correct

To check for lint issues without auto-correcting:

./gradlew detekt

Public API surface

The library's public API is tracked via a committed baseline at lib/api/lib.api, managed by the binary-compatibility-validator Gradle plugin. CI runs ./gradlew :lib:apiCheck on every PR and fails if the compiled public API diverges from the baseline.

If your change intentionally modifies public API (adds, removes, or changes any public class, method, or field):

  1. Run dev api dump (or ./gradlew :lib:apiDump) to regenerate the baseline.
  2. Review the diff in lib/api/lib.api alongside your code changes.
  3. Commit the updated .api file in the same PR.

If you did not intend to change public API and apiCheck is failing, the diff shows what your change inadvertently affected โ€” treat it as a signal that something in your PR has consumer-visible impact.

Releasing a new version

Open a pull request with the following changes:

  1. Bump the versionName
  2. Add an entry to the top of the CHANGELOG

Once you have merged a pull request with these changes, you will be ready to publish a new version.

To do so, navigate to https://github.com/Shopify/checkout-sheet-kit-android/releases and click "Draft a new release" then complete the following steps:

  1. Create a tag for the new version
  2. Use the same tag as the name for the version
  3. Document a full list of changes since the previous release, tagging merged pull requests where applicable, in the description box
  4. Check "Set as the latest release"
  5. When ready click "Publish release"

This will trigger a GitHub workflow to start the process of publishing a new version of the library to maven central. Note - A manual approval by a maintainer is required before release to maven central.