Contributing to the Ping Orchestration SDK for Android
May 5, 2026 · View on GitHub
Thank you for considering contributing to the Ping Orchestration SDK for Android! We appreciate your time and effort.
This document outlines the guidelines for contributing to this project. Please read it before getting started.
1. Setting Up Your Development Environment
Prerequisites
- A GitHub account with Git installed locally.
- The latest stable version of Android Studio.
- Android API level 29 or higher.
- A PingOne and Ping AIC tenants or PingAM instance — see the documentation for setup instructions.
Fork and Clone the Repository
- Fork the repository on GitHub.
- Clone your fork locally:
git clone https://github.com/YOUR_USERNAME/ping-android-sdk.git cd ping-android-sdk - Open the project in Android Studio. Gradle will resolve dependencies automatically.
- Verify the build before making any changes:
./gradlew clean build
2. Project Structure
The SDK is organised into focused modules. For a full description of each module, see the Modules section in the README.
3. Building and Testing
Before submitting any changes, ensure the project builds and all tests pass.
Run all unit tests
./gradlew --rerun-tasks testDebugUnitTestCoverage --stacktrace --no-daemon
Run tests for a specific module
You can target individual modules to speed up your feedback loop. Replace <module> with the Gradle path shown in the project structure above (e.g. :davinci, :foundation:oidc, :mfa:oath).
./gradlew :<module>:testDebugUnitTestCoverage --stacktrace --no-daemon
Some common examples:
# Core orchestration and OIDC
./gradlew :foundation:orchestrate:testDebugUnitTestCoverage --no-daemon
./gradlew :foundation:oidc:testDebugUnitTestCoverage --no-daemon
# DaVinci and Journey
./gradlew :davinci:testDebugUnitTestCoverage --no-daemon
./gradlew :journey:testDebugUnitTestCoverage --no-daemon
# MFA
./gradlew :mfa:oath:testDebugUnitTestCoverage --no-daemon
./gradlew :mfa:push:testDebugUnitTestCoverage --no-daemon
./gradlew :mfa:binding:testDebugUnitTestCoverage --no-daemon
# Protect
./gradlew :protect:testDebugUnitTestCoverage --no-daemon
Ensure that all existing tests pass and that you add new tests for any new functionality you introduce.
4. Build API Reference Documentation
The project uses Dokka to generate API reference documentation. Run the following command from the root of the project:
./gradlew dokkaGenerate
The generated HTML output will be placed in build/dokka/.
5. Standards of Practice
This project follows the internal standards maintained by the Ping Identity SDK team. Please review and adhere to these guidelines before submitting any code:
In general, try to match the style of the existing code in the project.
6. Submitting a Pull Request
1. Create a new branch
Always branch off from develop. Avoid committing directly to develop or main.
git checkout -b feature/my-new-feature
2. Make and commit your changes
Write clean, readable code. Add tests for new functionality and update documentation where relevant.
Commits must be signed. See the GitHub docs for setup instructions.
Use the following commit message format:
[TYPE] Short description of the changes
| Type | When to use |
|---|---|
feat | A new feature |
fix | A bug fix |
docs | Documentation changes only |
refactor | Code restructuring with no behaviour change |
test | Adding or modifying tests |
Example:
git commit -S -m "feat: add TOTP token refresh support"
3. Push and open a Pull Request
git push origin feature/my-new-feature
Open a Pull Request targeting the develop branch of the original repository. Fill out the PR template, which includes:
- A clear description of what was changed and why.
- A link to the related JIRA ticket, if applicable.
- Any relevant context, screenshots, or notes about breaking changes.
Your PR will be reviewed by the project maintainers. Be prepared to address feedback and keep your branch up to date with develop.
License
By contributing to the Ping Identity Android SDK, you agree that your contributions will be licensed under the MIT License that covers the project.
© Copyright 2025-2026 Ping Identity Corporation. All Rights Reserved.