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
docs(sdk): Update cutting-a-release playbook to use GitHub Actions only
Replace CLI invocation of Craft (craft prepare / craft publish) with
the GitHub Actions workflow approach. All SDK repos trigger releases
exclusively through CI via workflow_dispatch — never from a local machine.
Also correct the publish flow description: the approval mechanism is an
issue in getsentry/publish labeled 'accepted', not a PR merge. Add a
step for polishing the release branch changelog, and make the two-person
approval requirement explicit.
Co-Authored-By: Claude <noreply@anthropic.com>
summary: Replace CLI invocation of Craft with GitHub Actions workflow — releases are always triggered through CI
12
15
- version: 1.0.0
13
16
date: 2026-02-23
14
17
summary: Initial playbook — release process with gating criteria and post-release monitoring
@@ -20,9 +23,9 @@ spec_changelog:
20
23
21
24
## Overview
22
25
23
-
This playbook guides SDK maintainers through cutting a release for an SDK repository. It covers release gating criteria verification, running release tooling (Craft), artifact verification, and post-release monitoring. By following these steps, releases will be high quality, properly monitored, and quickly addressed if regressions occur.
26
+
This playbook guides SDK maintainers through cutting a release for an SDK repository. It covers release gating criteria verification, triggering the release via GitHub Actions, artifact verification, and post-release monitoring. By following these steps, releases will be high quality, properly monitored, and quickly addressed if regressions occur.
24
27
25
-
All Sentry SDKs use [Craft](https://github.com/getsentry/craft) for release automation with a two-person approval requirement. The process follows a prepare → publish workflow coordinated through the [getsentry/publish](https://github.com/getsentry/publish) repository.
28
+
All Sentry SDKs use [Craft](https://github.com/getsentry/craft) for release automation via GitHub Actions. Releases are **always** triggered through CI — never from a local machine. The process follows a prepare → publish workflow coordinated through the [getsentry/publish](https://github.com/getsentry/publish) repository, with a mandatory two-person approval requirement.
26
29
27
30
Related resources:
28
31
-[Review and CI Standards](/sdk/getting-started/standards/review-ci) — release gating criteria
@@ -37,51 +40,56 @@ Related resources:
37
40
#### 1. Verify release gating criteria
38
41
39
42
You **MUST** verify all criteria pass ([Release gating criteria](/sdk/getting-started/standards/review-ci#release-gating-criteria)):
40
-
- All required CI checks pass on the release branch
43
+
- All required CI checks pass on the default branch
41
44
- No unresolved `h:` (high) review comments on merged PRs since last release
42
45
- Changelog is substantive (not empty or internal-only for a release with user-facing changes)
43
46
- No known unresolved regressions
44
47
45
-
#### 2. Prepare the release
48
+
#### 2. Trigger the release workflow
46
49
47
-
Run the Craft prepare command (command varies by SDK — check your SDK's `CONTRIBUTING.md`):
50
+
Navigate to the **Actions** tab of your SDK repository. Find the release workflow (typically named "Release" or "Prepare Release") and click **Run workflow**. Select the default branch and enter the version to release, then click **Run workflow**.
48
51
49
-
```bash
50
-
# Common pattern across SDKs
51
-
craft prepare <version>
52
-
# Or via GitHub Actions workflow (trigger manually)
53
-
```
52
+
The version input accepts:
53
+
- A specific version string (e.g. `2.5.0`)
54
+
-`auto` — Craft determines the next version from commit history (supported by some SDKs — check your `CONTRIBUTING.md`)
54
55
55
-
This creates a release PR in the [getsentry/publish](https://github.com/getsentry/publish) repository. The PR **MUST** be approved by a second SDK maintainer before proceeding.
56
+
The workflow runs [Craft](https://github.com/getsentry/craft) to:
57
+
- Bump the version in relevant files via the SDK's `bump-version` script
58
+
- Generate or update the changelog
59
+
- Create a `release/<version>` branch with a release PR
60
+
- Build and upload release artifacts
61
+
- Open an issue in [getsentry/publish](https://github.com/getsentry/publish) to track the publishing approval
56
62
57
-
#### 3. Publish the release
63
+
#### 3. Polish the release branch (optional)
58
64
59
-
Once the publish PR is approved, run the Craft publish command:
65
+
While CI runs on the `release/<version>` branch, you **MAY** check out the branch and polish the auto-generated `CHANGELOG` — adding code snippets, grouping related entries, and improving readability for users.
60
66
61
-
```bash
62
-
craft publish <version>
63
-
# Or merge the publish PR to trigger automated publishing
64
-
```
67
+
CI **MUST** be passing on the release branch before publishing proceeds. If CI fails, Craft will not publish the release.
65
68
66
-
Craft will:
69
+
#### 4. Approve and publish the release
70
+
71
+
Once CI is green on the release branch, notify a second SDK maintainer (or your team lead) to approve. They **MUST** add the `accepted` label to the open issue in [getsentry/publish](https://github.com/getsentry/publish/issues). **You MUST NOT approve your own release.**
72
+
73
+
Adding the label triggers Craft to publish the release automatically. Craft will:
67
74
- Create a Git tag
68
-
- Build and publish artifacts to package registries
69
-
- Create a GitHub release with changelog
75
+
- Publish artifacts to the appropriate package registries
76
+
- Create a GitHub release with the changelog
77
+
- Close the publish issue on success
70
78
71
-
#### 4. Verify the release artifact
79
+
#### 5. Verify the release artifact
72
80
73
81
The artifact **MUST** be published and installable. Quick smoke test: install the new version in a clean environment and verify basic functionality.
74
82
75
83
**Note:** Some SDKs have additional verification steps (example app testing, documentation updates) — check your SDK's release documentation.
76
84
77
-
#### 5. Post-release monitoring
85
+
#### 6. Post-release monitoring
78
86
79
87
You **MUST** follow post-release monitoring procedures ([Post-release monitoring](/sdk/getting-started/standards/coordination-maintenance#post-release-monitoring)):
80
88
- Check SDK crash detection within 24 hours
81
89
- Verify dogfooding (Sentry's own products) picks up the new version
82
90
- Monitor the issue tracker for regression reports for 48 hours
83
91
84
-
#### 6. If a critical regression is found
92
+
#### 7. If a critical regression is found
85
93
86
94
Trigger the [Handling a Regression](/sdk/getting-started/playbooks/development/handling-a-regression) process.
87
95
@@ -96,6 +104,7 @@ While the core process above applies to all Sentry SDKs, individual SDKs **MAY**
96
104
97
105
Common SDK-specific variations include:
98
106
- Changelog generation (manual vs. auto-generated)
0 commit comments