π€ Contributing to Thunderbird for Android
Welcome to the Thunderbird for Android project! Weβre excited to have you here and welcome your contributions.
π± New Contributor Essentials
Before you start contributing, please take a moment to familiarize yourself with the following:
- About Thunderbird for Android.
- Thunderbird Developer Portal
- Mozilla Community Participation Guidelines
- Matrix (developer chat)
- Frequently Asked Questions (historical K-9 forum)
- Support Forum (historical K-9 forum)
Note: Some support resources currently point to the K-9 Mail forum due to the projectβs history and ongoing migration. Where appropriate, weβll update links to Thunderbird-specific channels.
π Recommended knowledge
Helpful background (not strictly required):
- Kotlin - Primary programming language for the project
- Jetpack Compose - UI toolkit used for Android
- Kotlin Multiplatform - Shared code across modules where applicable
- Android Development - Basic understanding of Android app development
- GitHub - For managing contributions and pull requests
π Bug Reports and Feature Ideas
When you encounter a bug or have a feature request or idea, please do the following:
Bugs:
- Search for existing issues before filing a new one.
- If you canβt find an existing issue, please open a new GitHub issue using the appropriate template.
Feature Requests / Ideas:
We donβt track new ideas or feature requests in GitHub Issues.
- Start a discussion in Mozilla Connect β Ideas
- Once a feature is accepted and work is planned, maintainers will create the corresponding GitHub issue(s).
π Translations
If youβd like to help to translate Thunderbird for Android, please visit:
- Translations β How to help localize Thunderbird for Android via Weblate.
- Weblate - Thunderbird for Android project - Translation platform where all localization happens.
π€ Contributing Code
This should give you a detailed overview on how to contribute code to the project. Use it as a reference for setup, development, testing, and review.
π Getting Started
- Contribution Workflow β Step-by-step process: find an issue, fork, branch, commit, PR.
- Development Environment β How to set up Android Studio, build, run, and debug the project.
ποΈ Development Practices
- Architecture β System design: module types, UI/Domain/Data layers, offline-first.
- Development Guidelines β Project-specific conventions and quick βdoβs & donβts.β
- Code Quality Guide β Style rules, static analysis tools, and security practices.
- Testing Guide β Test layers, frameworks, and best practices.
π Reviews & Collaboration
- Git Commit Guide β How to write clear, Conventional Commit-style messages.
- Code Review Guide β Expectations for PR authors and reviewers, review etiquette.
π Translations
- Translations β How to help localize Thunderbird for Android via Weblate.
- Managing Strings β Developer guide for adding/changing/removing strings, languages, and handling Weblate sync.
Thank You!
Thank you for taking the time to contribute to Thunderbird for Android! We appreciate your help in making the project better and more useful for everyone.