thunderbird / thunderbird-android

K-9 Mail – Open Source Email App for Android
https://k9mail.app/
Apache License 2.0
9.47k stars 2.42k forks source link

Discussing Minimal Standards for Code Contributions 🚀 #7785

Open wmontwe opened 2 weeks ago

wmontwe commented 2 weeks ago

Description

To maintain a high quality of code and to streamline the review process, it is necessary to establish minimal contribution standards for this project. This will ensure that all contributions are consistent and align with the project's goals and coding practices.

Suggested Standards

  1. Code Quality: All contributions must adhere to the specified coding guidelines of the project, which include but are not limited to naming conventions, code structure, design patterns and commenting.
  2. Testing: Contributions should include unit tests that cover new features or bug fixes. All tests must pass before contributions are considered for merging.
  3. UI Tests: For UI-related changes, appropriate UI tests must be included where applicable. This ensures that the visual and interactive aspects of the application function as expected across different devices and configurations.
  4. Documentation: Significant changes or additions must be accompanied by updated documentation. This includes both inline comments and external documentation, as appropriate.
  5. Commit Messages: Commit messages should be clear and follow the conventional commit format, providing a brief description of changes and referencing issues when relevant.
  6. Pull Requests: Pull requests should provide a clear description of the problem and solution, including any relevant issue numbers. PRs should be limited to a single concern to simplify review and integration.
  7. Automatable Standards: All defined standards should be easily automatable where possible. This includes code formatting, linting, and basic tests, which can be enforced through continuous integration tools to ensure compliance before review.
  8. Review Process: All submissions must be reviewed by at least one team member before merging. This ensures oversight and quality control. Reviews of pull requests should be completed in a timely (max 2 days) manner to maintain development momentum.
  9. Escalation Strategy for Code Review Disputes: In instances where consensus cannot be reached in code reviews, the following escalation strategy will apply:
    • Secondary Review: Request a secondary review from an additional team member who has not been involved in the original discussion.
    • Technical Lead Involvement: If disagreement persists, the issue should be escalated to the technical lead or project manager for final arbitration.
    • Documentation of Dispute: All dispute discussions and resolutions should be documented for future reference and to aid in refining future guidelines.

Action Items:

Discussion Points: