You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 8417c5d
Browse filesBrowse the repository at this point in the historyBrowse files
- Including the [Architecture Design Records](https://github.com/thunderbird/thunderbird-android/tree/main/docs/architecture/adr)
7
8
- Read [Mozilla’s Community Participation Guidelines](https://www.mozilla.org/en-US/about/governance/policies/participation/)
8
9
- Check out our [contribution code quality guides](https://github.com/thunderbird/thunderbird-android/tree/main/docs/contributing), especially our [git commit guide](https://github.com/thunderbird/thunderbird-android/blob/main/docs/contributing/git-commit-guide.md), which can also help you write your pull request title
9
10
@@ -20,6 +21,7 @@ As always, thank you for the contribution!
20
21
## Contribution Summary
21
22
22
23
Linked Issue/Ticket:
24
+
RFC / Technical Design (if applicable):
23
25
24
26
#### Description
25
27
@@ -45,4 +47,5 @@ Select **one** of the following (mandatory)
45
47
-[ ] This contribution adheres to the existing codestyle (run `gradlew spotlessCheck` to check and `gradlew spotlessApply` to format your source code; will be checked by CI).
46
48
-[ ] This contribution does not break existing unit tests (run `gradlew testDebugUnitTest`; will be checked by CI).
47
49
-[ ] This contribution includes tests for any new functionality, and maintains tests for any updated functionality.
50
+
-[ ] This contribution adheres to our [Engineering process](https://github.com/thunderbird/thunderbird-android/tree/main/docs/engineering) (RFC/Technical Design/ADR)
48
51
-[ ] This PR has a descriptive title and body that accurately outlines all changes made, and contains a reference to any issues that it fixes (e.g. _Closes #XXX_ or _Fixes #XXX_).
Copy file name to clipboardExpand all lines: README.md
+8-6Lines changed: 8 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -64,15 +64,17 @@ We welcome contributions from everyone.
64
64
- Thunderbird is supported solely by financial contributions from users like you. [Make a financial contribution today](https://www.thunderbird.net/donate/mobile/?form=tfa)!
65
65
- Make sure to check out the [Mozilla Community Participation Guidelines](https://www.mozilla.org/about/governance/policies/participation/).
66
66
67
-
### Architecture Decision Records (ADR)
67
+
### Engineering Process
68
68
69
-
We use [Architecture Decision Records](https://adr.github.io/) to document the architectural decisions made in the
70
-
development of Thunderbird for Android. You can find them in the [`docs/architecture/adr`](docs/architecture/adr) directory.
69
+
We use a structured engineering process to propose, decide, and deliver technical changes. This includes:
70
+
-[Requests for Comments (RFCs)](docs/engineering/rfcs/README.md) for technical direction.
71
+
-[Technical Designs](docs/engineering/technical-designs/README.md) for implementation details.
72
+
-[Architecture Decision Records (ADRs)](docs/engineering/adr/README.md) for durable architectural decisions.
71
73
72
-
For more information about our ADRs, please see the [ADRs README](docs/architecture/adr/README.md).
74
+
You can find more information in the [`docs/engineering`](docs/engineering) directory.
73
75
74
-
We encourage team members and contributors to read through our ADRs to understand the architectural decisions that
75
-
have shaped this project so far. Feel free to propose new ADRs or suggest modifications to existing ones as needed.
76
+
We encourage team members and contributors to read through our engineering documentation to understand the
77
+
processes and decisions that have shaped this project so far.
Copy file name to clipboardExpand all lines: docs/CONTRIBUTING.md
+13Lines changed: 13 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -41,6 +41,18 @@ We don’t track new ideas or feature requests in GitHub Issues.
41
41
- Start a discussion in [Mozilla Connect – Ideas](https://connect.mozilla.org/t5/ideas/idb-p/ideas/label-name/thunderbird%20android)
42
42
- Once a feature is accepted and work is planned, maintainers will create the corresponding GitHub issue(s).
43
43
44
+
**GitHub Work:**
45
+
46
+
GitHub Bug Issues track confirmed defects. GitHub Feature Issues and GitHub Task Issues track work that maintainers have
47
+
accepted and planned. New feature proposals still start in Mozilla Connect; maintainers create GitHub issues after a
48
+
proposal is accepted and scheduled.
49
+
50
+
- External contributors should start from an existing GitHub Bug Issue, GitHub Feature Issue, or GitHub Task Issue.
51
+
- Bug issues labeled `unconfirmed` are not ready for contributions.
52
+
- Issues labeled `tb-team` are reserved for maintainers.
53
+
- If you are unsure whether an existing issue is ready for your contribution, follow
54
+
[Working From GitHub Issues](contributing/contribution-workflow.md#working-from-github-issues).
55
+
44
56
## 🌐 Translations
45
57
46
58
If you'd like to help to translate Thunderbird for Android, please visit:
@@ -60,6 +72,7 @@ development, testing, and review.
60
72
61
73
### 🏗️ Development Practices
62
74
75
+
***[Engineering](engineering/README.md)** – Process and artifacts for proposing, deciding, and delivering technical changes (RFCs, Technical Designs, ADRs).
63
76
***[Architecture](architecture/README.md)** – System design: module types, UI/Domain/Data layers, offline-first.
64
77
***[Development Guidelines](contributing/development-guide.md)** – Project-specific conventions and quick “do’s & don’ts.”
-[0001 - Switch From Java to Kotlin](architecture/adr/0001-switch-from-java-to-kotlin.md)
35
-
-[0002 - UI - Wrap Material Components in Atomic Design System](architecture/adr/0002-ui-wrap-material-components-in-atomic-design-system.md)
36
-
-[0003 - Test - Switch Test Assertions From Truth to Assertk](architecture/adr/0003-switch-test-assertions-from-truth-to-assertk.md)
37
-
-[0004 - Naming Conventions for Interfaces and Their Implementations](architecture/adr/0004-naming-conventions-for-interfaces-and-their-implementations.md)
38
-
-[0005 - Central Project Configuration](architecture/adr/0005-central-project-configuration.md)
39
-
-[0006 - White Label Architecture](architecture/adr/0006-white-label-architecture.md)
-[0008 - Change Shared Module package to `net.thunderbird`](architecture/adr/0008-change-shared-modules-package-name.md)
48
+
-[0001 - Switch From Java to Kotlin](engineering/adr/0001-switch-from-java-to-kotlin.md)
49
+
-[0002 - UI - Wrap Material Components in Atomic Design System](engineering/adr/0002-ui-wrap-material-components-in-atomic-design-system.md)
50
+
-[0003 - Test - Switch Test Assertions From Truth to Assertk](engineering/adr/0003-switch-test-assertions-from-truth-to-assertk.md)
51
+
-[0004 - Naming Conventions for Interfaces and Their Implementations](engineering/adr/0004-naming-conventions-for-interfaces-and-their-implementations.md)
52
+
-[0005 - Central Project Configuration](engineering/adr/0005-central-project-configuration.md)
53
+
-[0006 - White Label Architecture](engineering/adr/0006-white-label-architecture.md)
@@ -35,7 +35,7 @@ Paste this into your PR to self-check:
35
35
3.**Architecture & module boundaries**
36
36
- Follow modular rules: API vs internal separation; use `internal` visibility for all code in `:internal` modules (except for DI).
37
37
- Only depend on `:feature:foo:api` externally; `:feature:foo:internal` (and legacy `:feature:foo:impl`) are internal.
38
-
See [ADR-0009](../architecture/adr/0009-api-internal-split.md) for full module structure and dependency rules.
38
+
See [ADR-0009](../engineering/adr/0009-api-internal-split.md) for full module structure and dependency rules.
39
39
- Respect MVI/Compose patterns in the UI layer; keep business logic out of UI implementation.
40
40
- Prefer constructor injection with Koin; keep constructors simple and dependencies explicit.
41
41
4.**Code quality & style**
@@ -63,6 +63,7 @@ Paste this into your PR to self-check:
63
63
10.**Documentation & metadata**
64
64
- Update relevant docs, CHANGELOG entries and add context as needed.
65
65
- Link relevant issues using GitHub keywords so they auto-close on merge (`Fixes #123`, `Resolves #456`).
66
+
- Adhere to the [Engineering process](../engineering/README.md) (RFC/Technical Design/ADR) if applicable.
66
67
- For commit format, see the [Git Commit Guide](git-commit-guide.md)
67
68
11.**CI status**
68
69
- Ensure CI is green
@@ -72,8 +73,9 @@ Paste this into your PR to self-check:
72
73
73
74
1.**Correctness & requirements**
74
75
- Does the change solve the stated problem? Any edge cases missed? Are invariants upheld?
76
+
- If non-trivial, does it align with the agreed [RFC or Technical Design](../engineering/README.md)?
75
77
2.**Architecture & boundaries**
76
-
- Adheres to module API/internal separation per [ADR-0009](../architecture/adr/0009-api-internal-split.md) and project architecture (UI: Compose/MVI, Domain, Data).
78
+
- Adheres to module API/internal separation per [ADR-0009](../engineering/adr/0009-api-internal-split.md) and project architecture (UI: Compose/MVI, Domain, Data).
77
79
- No cross‑module leaks (check for proper `internal` visibility in `:internal` modules); dependencies flow in the right direction.
78
80
- Note: The codebase still contains `:impl` modules during ADR-0009 migration; treat them with the same separation rules as `:internal`.
0 commit comments