Skip to content

Commit 86feda8

Browse files
dingsdaxclaude
andcommitted
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>
1 parent 4c7932e commit 86feda8

File tree

1 file changed

+33
-24
lines changed

1 file changed

+33
-24
lines changed

develop-docs/sdk/getting-started/playbooks/sdk-lifecycle/cutting-a-release.mdx

Lines changed: 33 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
11
---
22
title: Cutting a Release
33
spec_id: sdk/playbooks/cutting-a-release
4-
spec_version: 1.0.0
4+
spec_version: 1.1.0
55
spec_status: candidate
66
spec_depends_on:
77
- id: sdk/getting-started/standards/review-ci
88
version: ">=1.0.0"
99
- id: sdk/getting-started/standards/coordination-maintenance
1010
version: ">=1.0.0"
1111
spec_changelog:
12+
- version: 1.1.0
13+
date: 2026-03-07
14+
summary: Replace CLI invocation of Craft with GitHub Actions workflow — releases are always triggered through CI
1215
- version: 1.0.0
1316
date: 2026-02-23
1417
summary: Initial playbook — release process with gating criteria and post-release monitoring
@@ -20,9 +23,9 @@ spec_changelog:
2023

2124
## Overview
2225

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.
2427

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.
2629

2730
Related resources:
2831
- [Review and CI Standards](/sdk/getting-started/standards/review-ci) — release gating criteria
@@ -37,51 +40,56 @@ Related resources:
3740
#### 1. Verify release gating criteria
3841

3942
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
4144
- No unresolved `h:` (high) review comments on merged PRs since last release
4245
- Changelog is substantive (not empty or internal-only for a release with user-facing changes)
4346
- No known unresolved regressions
4447

45-
#### 2. Prepare the release
48+
#### 2. Trigger the release workflow
4649

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**.
4851

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`)
5455

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
5662

57-
#### 3. Publish the release
63+
#### 3. Polish the release branch (optional)
5864

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.
6066

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.
6568

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:
6774
- 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
7078

71-
#### 4. Verify the release artifact
79+
#### 5. Verify the release artifact
7280

7381
The artifact **MUST** be published and installable. Quick smoke test: install the new version in a clean environment and verify basic functionality.
7482

7583
**Note:** Some SDKs have additional verification steps (example app testing, documentation updates) — check your SDK's release documentation.
7684

77-
#### 5. Post-release monitoring
85+
#### 6. Post-release monitoring
7886

7987
You **MUST** follow post-release monitoring procedures ([Post-release monitoring](/sdk/getting-started/standards/coordination-maintenance#post-release-monitoring)):
8088
- Check SDK crash detection within 24 hours
8189
- Verify dogfooding (Sentry's own products) picks up the new version
8290
- Monitor the issue tracker for regression reports for 48 hours
8391

84-
#### 6. If a critical regression is found
92+
#### 7. If a critical regression is found
8593

8694
Trigger the [Handling a Regression](/sdk/getting-started/playbooks/development/handling-a-regression) process.
8795

@@ -96,6 +104,7 @@ While the core process above applies to all Sentry SDKs, individual SDKs **MAY**
96104

97105
Common SDK-specific variations include:
98106
- Changelog generation (manual vs. auto-generated)
107+
- Whether `version: auto` is supported
99108
- Example app testing requirements
100109
- Documentation PR requirements
101110
- Registry-specific verification steps

0 commit comments

Comments
 (0)