Contributing to tdlib-android
September 12, 2026 · View on GitHub
Contributions are welcome from anyone! Whether you want to improve the :ktx coroutines wrapper, optimize build scripts, fix typos, or suggest features, feel free to open an issue or submit a pull request.
CI/CD Pipeline Architecture
upstream version change → check-upstream.yml detects → build.yml runs matrix →
PR opened with diff + checksums → Akash reviews → merge → publish.yml publishes →
smoke-test-publish.yml verifies on Maven Central
- Upstream Watchdog (
check-upstream.yml): Chronologically polls tdlib/td repo version parameters and scheme changes via GitHub API every 6 hours. - Multitarget Compiler (
build.yml): Spawns a parallel build matrix for all 4 required ABIs inside official Docker environments on Ubuntu Actions runners. Pinned NDK27.2.12479018is enforced. - Binary Head checks (
verify-abi-count.sh): Direct ELF verification viareadelf -hto secure binary headers instead of fragile file size comparisons. - Verification Compile (
smoke-test.sh): Creates temporary Android apps compiling directly against core and ktx modules locally before publishing.
Local Development & Builds
Although all heavy compilations (C++ Docker builds) run strictly on GitHub runners to prevent local system freezes, you can build and run tests for Java and Kotlin modules locally:
# Verify configurations and modular task lists
./gradlew help
# Assemble Kotlin Coroutine and sample wrappers
./gradlew assemble
Absolute Constraints (Never Bypass)
- 4 ABIs always:
arm64-v8a,armeabi-v7a,x86_64,x86. Never exclude or reduce. - Never commit
.soorTdApi.java: Keep these binary/giant generated artifacts strictly gitignored. - Fail-fast matrix: A compilation drop in any ABI blocks the entire release immediately.
- Security scans: Stage checks (
gitleaks) must pass before commits.
Community & Security
- Read our Code of Conduct for community standards and reporting guidelines.
- Review our Security Policy to report vulnerabilities privately.