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
These standards cover how code gets into SDK repositories — from branch names and commit messages through to PR descriptions and changelogs. The goal is consistency across SDKs so that contributors and reviewers can move between repos without friction.
The **footer** is for issue references (`Fixes SENTRY-1234`, `Refs LINEAR-ABC-123`), breaking change notices (`BREAKING CHANGE:`), and [AI attribution](#ai-attribution).
70
50
71
-
#### Per-SDK override
72
-
73
-
<StatusBadgetype="no" /> Scope values are SDK-specific.
51
+
See [Commit Messages](/engineering-practices/commit-messages/) for more examples and guidance.
- Links to relevant issues or tickets (**REQUIRED** except for typo fixes and one-line doc changes)
118
-
- Alternative approaches considered (if any)
119
-
- Additional context reviewers need
120
-
121
-
Test plan sections, checkbox lists, and boilerplate are not allowed. The tests in the diff serve as the test plan. Blank descriptions, template-only descriptions, and AI-generated filler are not acceptable. PR descriptions **MUST NOT** include any customer data or sensitive information.
Create PRs as drafts. Mark them ready for review once CI passes and the description is complete.
169
79
170
-
#### Rule
80
+
###Write a useful description
171
81
172
-
User-facing changes (`feat`, `fix`, `perf`, breaking) **REQUIRE** a changelog entry. Internal changes exempt. Override with `skip-changelog` label.
82
+
Every PR needs a description that tells reviewers:
173
83
174
-
#### Enforcement
84
+
- What the PR does and why
85
+
- Links to relevant issues or tickets (required except for typo fixes and one-line doc changes)
86
+
- Alternative approaches considered, if any
87
+
- Additional context reviewers need
175
88
176
-
- CI check
89
+
Skip boilerplate, checkbox lists, and template filler. Don't include customer data or sensitive information. The tests in the diff are the test plan — no need to restate them in the description.
177
90
178
-
#### Per-SDK override
91
+
###Keep PRs focused
179
92
180
-
<StatusBadgetype="yes" /> Format and location vary. Requirement is universal.
93
+
A PR should do one thing well. Don't mix functional changes with unrelated refactors or cleanup. If the work naturally splits into distinct categories, make separate PRs. Smaller, focused PRs are easier to review, reason about, and revert if needed.
A PR **SHOULD** do one thing — and do it well. Avoid mixing functional changes with unrelated refactors, cleanup, or reorganizations. If the work falls into distinct categories, split it into multiple PRs. Smaller, focused PRs are easier to review, reason about, and revert.
User-facing changes (`feat`, `fix`, `perf`, breaking changes) need a changelog entry. Internal changes are exempt. If a user-facing change truly doesn't warrant a changelog entry, use the `skip-changelog` label to opt out.
202
104
203
-
#### Per-SDK override
204
-
205
-
<StatusBadgetype="yes" /> Size thresholds are SDK-specific.
105
+
The format and location of changelog entries varies by SDK, but the requirement itself is universal.
AI-generated changes get `Co-Authored-By` in commit footer (e.g., `Co-Authored-By: Claude <noreply@anthropic.com>`). This is the only AI involvement indicator. "Generated by AI" or similar markers **MUST NOT** appear anywhere.
218
-
219
-
#### Enforcement
220
-
221
-
- AGENTS.md instruction
115
+
AI models improve over time, and future models will understand the shortcomings of earlier versions. Tagging commits with the model that produced them gives useful signal when debugging — if you know a commit was generated by an older model, you can focus on the kinds of mistakes that model was prone to.
222
116
223
-
#### Suggested skill(s)
117
+
When AI generates or substantially contributes to a commit, add a `Co-Authored-By` line in the commit footer:
Copy file name to clipboardExpand all lines: docs/platforms/android/user-feedback/configuration/index.mdx
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -99,6 +99,7 @@ You can customize which form elements are shown, whether they are required, and
99
99
|`showName`|`Bool`|`true`| Displays the name field on the feedback form. Ignored if `isNameRequired` is `true`. |
100
100
|`isEmailRequired`|`Bool`|`false`| Requires the email field on the feedback form to be filled in. |
101
101
|`showEmail`|`Bool`|`true`| Displays the email field on the feedback form. Ignored if `isEmailRequired` is `true`. |
102
+
|`useShakeGesture`|`Bool`|`false`| Opens the feedback form when the user shakes the device. Uses the accelerometer and requires no additional permissions. |
102
103
|`useSentryUser`|`Bool`|`true`| Sets the `email` and `name` fields to the corresponding Sentry SDK user fields that were called with `SentrySDK.setUser`. |
Copy file name to clipboardExpand all lines: docs/platforms/android/user-feedback/index.mdx
+20Lines changed: 20 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -44,6 +44,26 @@ val widget = SentryUserFeedbackButton(context)
44
44
```
45
45
46
46
47
+
## Shake to Report
48
+
49
+
You can enable shake-to-report so that shaking the device opens the User Feedback form. This uses the device's accelerometer and does not require any additional permissions.
0 commit comments