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 d52aa73
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: .github/pull_request_template.md
+21-11Lines changed: 21 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,23 +13,33 @@
13
13
> You can help us by categorizing your pull request with labels.
14
14
> We appreciate you working with us and will get to reviewing your contribution as soon as we can!
15
15
16
-
As always, thank you for the contribution!
17
-
18
-
### \~\~After reading, delete this line and the above to use the template for your pull request\~\~
16
+
> [!NOTE]
17
+
> **Automated PR Sentinel checks (required):** a linked issue, a Conventional Commit title, Conventional Commit
18
+
> messages on every commit (no `Co-authored-by:` trailers), no merge commits (rebase instead), and a completed
19
+
> **AI Disclosure**. PRs that stay non-compliant are **auto-closed 3 days** after the first Sentinel notice.
20
+
> See the [Contribution Workflow](https://github.com/thunderbird/thunderbird-android/blob/main/docs/contributing/contribution-workflow.md#-automated-pr-checks-pr-sentinel).
19
21
22
+
As always, thank you for the contribution!
20
23
24
+
# \~\~After reading, delete this line and the above to use the template for your pull request\~\~
_<If your pull request makes any UI changes, include screenshots displaying those changes here; Remove section if not applicable>_
39
+
40
+
### Testing
31
41
32
-
_<If your pull request makes any UI changes, include screenshots displaying those changes here>_
42
+
_<Please provide the steps to reproduce the issue, so we can review it properly>_
33
43
34
44
## AI Disclosure
35
45
@@ -41,11 +51,11 @@ Select **one** of the following (mandatory)
41
51
42
52
## Contribution Checklist
43
53
44
-
-[ ] I have read and affirm that my contribution adheres to [Mozilla’s Community Participation Guidelines](https://www.mozilla.org/en-US/about/governance/policies/participation/)
54
+
-[ ] I have read, and I affirm that my contribution adheres to [Mozilla’s Community Participation Guidelines](https://www.mozilla.org/en-US/about/governance/policies/participation/)
45
55
-[ ] This contribution is in Kotlin where possible
46
56
-[ ] This contribution does not use merge commits
47
57
-[ ] 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).
48
58
-[ ] This contribution does not break existing unit tests (run `gradlew testDebugUnitTest`; will be checked by CI).
49
-
-[ ] This contribution includes tests for any new functionality, and maintains tests for any updated functionality.
59
+
-[ ] This contribution includes tests for any new functionality and maintains tests for any updated functionality.
50
60
-[ ] This contribution adheres to our [Engineering process](https://github.com/thunderbird/thunderbird-android/tree/main/docs/engineering) (RFC/Technical Design/ADR)
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_).
61
+
-[ ] 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: docs/contributing/contribution-workflow.md
+66-5Lines changed: 66 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -213,10 +213,14 @@ To submit your changes for review:
213
213
- Base branch: `main`
214
214
- Head repo: your fork & branch
215
215
4. Select your fork and branch as the source
216
-
5. Click **Create pull request**
216
+
5. Make sure your [Pull Request Description](https://github.com/thunderbird/thunderbird-android/blob/main/docs/contributing-workflow.md#pull-request-description)
217
+
is compliant with our guidelines
218
+
6. Click **Create pull request**
217
219
218
220
### Pull Request Description
219
221
222
+
Before start writing the description, read the Pull Request template that will be prompted for you.
223
+
220
224
Write a clear and concise description for your pull request:
221
225
222
226
1. Reference the issue number (e.g., "Fixes #123", "Resolves #456")
@@ -225,12 +229,29 @@ Write a clear and concise description for your pull request:
225
229
4. Include screenshots or videos for UI changes
226
230
5. Mention any related issues or pull requests
227
231
228
-
Example:
232
+
#### Mandatory fields
233
+
234
+
When writing your Pull Request Description, you must fill all the mandatory fields:
235
+
236
+
-**Linked Issue/Ticket**
237
+
- Must use closing keywords, e.g. Closes, Fixes, Resolves, etc. See [Linking a pull request to an issue using a keyword](https://docs.github.com/en/issues/tracking-your-work-with-issues/using-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword)
238
+
for available keywords.
239
+
-**Description**
240
+
-**AI Disclosure**
241
+
- Must check at least one of the checkboxes
242
+
-**Contribution Checklist**
243
+
- Must follow all the instructions of the checklist and then mark as completed by checking all.
244
+
245
+
An automated PR Sentinel will be checking if you are following the requirements and will flag the PR if not.
246
+
See [Automated PR checks (PR Sentinel)](https://github.com/thunderbird/thunderbird-android/blob/main/docs/contributing/contribution-workflow.md#-automated-pr-checks-pr-sentinel)
247
+
for more details.
248
+
249
+
#### Example
229
250
230
251
```markdown
231
252
## Contribution Summary
232
253
233
-
Linked Issue/Ticket: #123
254
+
Linked Issue/Ticket: Closes #123
234
255
RFC / Technical Design (if applicable):
235
256
236
257
#### Description
@@ -240,16 +261,36 @@ This PR adds email validation to the login form. It:
240
261
- Shows error messages for invalid emails
241
262
- Adds unit tests for the validation logic
242
263
243
-
#### Screen Shots
264
+
#### Screenshots
244
265
245
-
[Screenshot of error message]
266
+
[Screenshot of the error message]
246
267
247
268
#### Testing
248
269
249
270
1. Enter an invalid email (e.g., "test@")
250
271
2. Verify that an error message appears
251
272
3. Enter a valid email
252
273
4. Verify that the error message disappears
274
+
275
+
## AI Disclosure
276
+
277
+
Select **one** of the following (mandatory)
278
+
279
+
-[x] This contribution does not include any changes created or assisted by AI.
280
+
-[ ] This contribution includes changes assisted by AI.
281
+
-[ ] This contribution includes changes created by AI.
282
+
283
+
## Contribution Checklist
284
+
285
+
-[x] I have read, and I affirm that my contribution adheres to [Mozilla’s Community Participation Guidelines](https://www.mozilla.org/en-US/about/governance/policies/participation/)
286
+
-[x] This contribution is in Kotlin where possible
287
+
-[x] This contribution does not use merge commits
288
+
-[x] 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).
289
+
-[x] This contribution does not break existing unit tests (run `gradlew testDebugUnitTest`; will be checked by CI).
290
+
-[x] This contribution includes tests for any new functionality, and maintains tests for any updated functionality.
291
+
-[x] This contribution adheres to our [Engineering process](https://github.com/thunderbird/thunderbird-android/tree/main/docs/engineering) (RFC/Technical Design/ADR)
292
+
-[x] 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_).
293
+
253
294
```
254
295
255
296
## 👀 Code Review Process
@@ -265,6 +306,26 @@ After submitting your pull request:
265
306
266
307
👉 For expectations and etiquette, see [Code Review Guide](code-review-guide.md).
267
308
309
+
### 🤖 Automated PR checks (PR Sentinel)
310
+
311
+
Every PR is validated automatically to verify if the PR is ready for review. To be reviewable it must have:
312
+
313
+
1. A **linked issue** in the description (e.g. `Closes #123`).
314
+
2. A **Conventional Commit title** (see the [Git Commit Guide](git-commit-guide.md)).
315
+
3.**Conventional Commit messages** on every commit, with **no `Co-authored-by:` trailers**.
316
+
4. A completed **AI Disclosure** section (exactly one option selected).
317
+
5.**No merge commits** — rebase onto the base branch instead of merging.
318
+
319
+
When something is missing, PR Sentinel posts a single comment listing it and labels the PR
320
+
`pr-sentinel: needs updates`. If it stays unresolved, the bot posts a closing warning after **1 day**
321
+
and **auto-closes the PR after 3 days**.
322
+
323
+
Push a fix (or edit the description), and the comment is removed, the `pr-sentinel: needs updates`
324
+
label is swapped for **`pr-sentinel: ready for review`**, and the check turns green.
325
+
326
+
**Draft PRs are skipped** until marked ready for review, and **bot PRs** (Dependabot, Renovate, …) are exempt.
327
+
Everyone else — **including maintainers and members** — must comply.
328
+
268
329
## 🔄 Keeping Your Fork Updated
269
330
270
331
To keep your fork in sync with the main repository:
Copy file name to clipboardExpand all lines: docs/contributing/git-commit-guide.md
+18-9Lines changed: 18 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,6 +5,14 @@ This makes your work easier to review, track, and maintain for everyone involved
5
5
6
6
## ✍️ Commit Message Format
7
7
8
+
> [!IMPORTANT]
9
+
> **Enforced in CI:**
10
+
> - the PR title **and every commit subject** must match this format (checked by the [PR Sentinel workflow](https://github.com/thunderbird/thunderbird-android/blob/main/.github/workflows/pr-sentinel.yml)).
11
+
> - The `<description>` must be 70 characters or fewer.
12
+
>
13
+
> See [Automated PR checks (PR Sentinel)](https://github.com/thunderbird/thunderbird-android/blob/main/docs/contributing/contribution-workflow.md#-automated-pr-checks-pr-sentinel)
14
+
> for more details.
15
+
8
16
```git
9
17
<type>(<scope>): <description>
10
18
@@ -17,7 +25,7 @@ Components:
17
25
18
26
-`<type>`: The [type of change](#-commit-types) being made (e.g., feat, fix, docs).
19
27
-`<scope>`**(optional)**: The [scope](#optional-scope) indicates the area of the codebase affected by the change (e.g., auth, ui).
20
-
-`<description>`: Short description of the change (50 characters or less)
28
+
-`<description>`: Short description of the change (70 characters or less)
21
29
-`<body>`**(optional)**: Explain what changed and why, include context if helpful.
22
30
-`<footer(s)>`**(optional)**: Include issue references, breaking changes, etc.
23
31
@@ -63,20 +71,21 @@ Fixes #123
63
71
The **scope** is optional but recommended for clarity, especially for large changes or or when multiple areas of the
0 commit comments