Skip to content

Latest commit

 

History

History
80 lines (54 loc) · 2.45 KB

File metadata and controls

80 lines (54 loc) · 2.45 KB

Contributing to Amber

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.

Development Setup

Prerequisites

  • JDK 21Adoptium 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

Building

git clone https://github.com/edengilbertus/amber.git
cd amber
./gradlew :amber-cli:installDist

Running Tests

# 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

Making Changes

Branching

  • Create a feature branch from main: git checkout -b feat/your-feature
  • Keep branches focused — one logical change per branch

Code Style

  • Follow standard Kotlin coding conventions
  • No wildcard imports
  • Prefer explicit types on public API boundaries
  • Write meaningful commit messages — describe why, not just what

Testing

  • 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

Pull Requests

  1. Push your branch and open a PR against main
  2. Fill out the PR description — explain the change, motivation, and any trade-offs
  3. Ensure CI passes (both gradle and android-synthesis-smoke jobs)
  4. Allow time for review — we'll aim to respond within a few days

What We Look For

  • 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?

Reporting Issues

  • 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

Code of Conduct

This project follows the Contributor Covenant. By participating, you agree to uphold a welcoming, respectful community.

Questions?

Open a Discussion on GitHub or reach out at edengilbertus@proton.me.