Thank you for considering contributing to DebugOverlay! This document outlines how to contribute effectively.
- Be respectful and constructive in discussions
- Focus on the problem, not the person
- Welcome newcomers and help them get started
- Android Studio Panda 2 (2025.3.2) or later
- JDK 21+
- Kotlin 2.2+
- Basic knowledge of Jetpack Compose
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/DebugOverlay-Android.git cd DebugOverlay-Android - Add the upstream remote:
git remote add upstream https://github.com/Manabu-GT/DebugOverlay-Android.git
- Open the project in Android Studio and sync Gradle
If you use Claude Code, you can enable MCP servers for enhanced development:
cp .mcp.json.example .mcp.jsonThe example config includes:
- Codex CLI – Code review assistance
- android-mcp – Automated UI testing on connected Android devices/emulators
This is entirely optional and won't affect your ability to contribute.
Before creating an issue:
- Search existing issues to avoid duplicates
- Check GitHub Discussions for known problems
When ready, file a bug report.
Open a feature request issue.
- Create an issue first for significant changes to discuss the approach
- Branch from
mainusing the naming conventions below - Keep changes focused — one feature or fix per PR
- Write tests for new functionality (see Testing)
- Update documentation if needed
- Run checks before submitting:
./gradlew spotlessApply # Format code (must run before check) ./gradlew check # Run all checks (tests, lint, detekt, spotless)
| Prefix | Use Case |
|---|---|
feature/ |
New features |
fix/ |
Bug fixes |
docs/ |
Documentation only |
refactor/ |
Code restructuring |
test/ |
Test additions |
Example: feature/add-memory-tracking, fix/overlay-crash-on-rotate
Follow Conventional Commits:
type(scope): description
[optional body]
Types: feat, fix, docs, style, refactor, test, chore
Scopes: core, overlay, okhttp, timber, sample, build
Examples:
feat(core): add CPU usage tracking module
fix(overlay): prevent crash when activity is destroyed
docs(readme): update installation instructions
See Coding Conventions for detailed guidelines. Also see Build & Gradle for toolchain and module conventions.
Key points:
- All new code in Kotlin
- 4-space indentation
- Run
./gradlew spotlessApplybefore committing - Use
runCatchingNonCancellationin suspend functions
See Testing for detailed guidelines. For code review standards, see Code Review.
# All checks
./gradlew check
# Specific module
./gradlew :debugoverlay-core:checkTo generate a local code coverage report for non-UI code (merging all library modules):
./gradlew mergedJacocoReportThe report will be available at build/reports/jacoco/mergedJacocoReport/html/index.html.
| Module | Description |
|---|---|
debugoverlay-core |
Compose-based runtime and shared components |
debugoverlay |
Primary public API |
debugoverlay-extension-okhttp |
OkHttp interceptor for network tracking |
debugoverlay-extension-timber |
Timber tree for log capture |
sample |
Demo application |
- Open a GitHub Discussion for questions
- Check existing issues for known problems
Thank you for contributing!