docs/contributing/code-review-guide.md
This guide outlines best practices for creating and reviewing pull requests (PRs) in the Thunderbird for Android project. It is intended to help both authors and reviewers ensure high-quality contributions.
Paste this into your PR to self-check:
- [ ] Focused scope (< ~800 LOC); clear description and rationale
- [ ] UI changes: screenshots/videos; accessibility (TalkBack, contrast, touch targets)
- [ ] Tests added/updated; CI green (see [Testing Guide](testing-guide.md))
- [ ] Architecture: business logic outside UI; module API/internal separation respected (strict visibility in `:internal`); DI via constructor/Koin
- [ ] Performance: no main-thread blocking; Compose recompositions reasonable; hot paths allocation-lean
- [ ] Security/privacy: inputs validated; no PII in logs; TLS; secure storage; permission changes documented
- [ ] i18n: No new localizable strings unless justified; translations policy followed
- [ ] Release train: feature flags set; uplift label + risk/impact (if applicable)
- [ ] Docs/CHANGELOG updated; issues linked (Fixes #123); PR title/commits clear
internal visibility for all code in :internal modules (except for DI).:feature:foo:api externally; :feature:foo:internal (and legacy :feature:foo:impl) are internal.
See ADR-0009 for full module structure and dependency rules.contentDescription and TalkBack support.Fixes #123, Resolves #456).internal visibility in :internal modules); dependencies flow in the right direction.:impl modules during ADR-0009 migration; treat them with the same separation rules as :internal.