Thanks for your interest in contributing to Amber! This document covers how to get set up, what we expect from contributions, and how the review process works.
- JDK 21 — Adoptium Temurin is recommended
- Android SDK — install via Android Studio or command-line tools:
sdkmanager "platforms;android-34" "build-tools;34.0.0" "platform-tools"
- Git
git clone https://github.com/edengilbertus/amber.git
cd amber
./gradlew :amber-cli:installDist# Core unit tests
./gradlew :amber-core:test :amber-pipeline:test
# Full validation including CLI build
./gradlew :amber-core:test :amber-pipeline:test :amber-cli:installDist- Create a feature branch from
main:git checkout -b feat/your-feature - Keep branches focused — one logical change per branch
- Follow standard Kotlin coding conventions
- No wildcard imports
- Prefer explicit types on public API boundaries
- Write meaningful commit messages — describe why, not just what
- Add tests for new functionality in the corresponding module's
src/test/directory - All existing tests must pass before submitting a PR
- If your change affects the generated Gradle project output, consider how it impacts the CI smoke test
- Push your branch and open a PR against
main - Fill out the PR description — explain the change, motivation, and any trade-offs
- Ensure CI passes (both
gradleandandroid-synthesis-smokejobs) - Allow time for review — we'll aim to respond within a few days
- Does the change align with the master spec?
- Are trust boundaries respected (canonical vs. salvage)?
- Is the change tested?
- Is the code clear and maintainable?
- Use GitHub Issues for bug reports and feature requests
- For bugs, include: what you did, what you expected, what happened, and any relevant logs or APK details (without sharing proprietary APKs)
- Check existing issues before opening a new one
This project follows the Contributor Covenant. By participating, you agree to uphold a welcoming, respectful community.
Open a Discussion on GitHub or reach out at edengilbertus@proton.me.