-
-
Notifications
You must be signed in to change notification settings - Fork 409
docs: add distribution channels and workflow to RELEASE.md #8681
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -6,6 +6,34 @@ This repo uses the following ways to release SDK updates: | |||||||||||||||||||||||||
| - `Latest`: We continuously release major/minor/hotfix versions from the `main` branch. These releases go through all our internal quality gates and are very safe to use and intended to be the default for most teams. | ||||||||||||||||||||||||||
| - `Stable`: We promote releases from `Latest` when they have been used in the field for some time and in scale, considering time since release, adoption, and other quality and stability metrics. These releases will be indicated on the [releases page](https://github.com/getsentry/sentry-cocoa/releases/) with the `Stable` suffix. | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| ## Distribution Channels | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| The SDK is distributed via **SPM**. CocoaPods and Carthage support were removed. | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| When a release is triggered, the [release workflow](../.github/workflows/release.yml) builds XCFrameworks and archives, then [Craft](../.craft.yml) publishes to: | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| | Target | Description | | ||||||||||||||||||||||||||
| | ---------------------------------------- | ----------------------------------------------------------------------------------------------------- | | ||||||||||||||||||||||||||
| | GitHub Release | Source + XCFramework zips on the [releases page](https://github.com/getsentry/sentry-cocoa/releases/) | | ||||||||||||||||||||||||||
| | `getsentry/sentry-apple-binaries` | Pre-built XCFrameworks with a `Package.swift` for SPM binary targets | | ||||||||||||||||||||||||||
| | `getsentry/sentry-apple-swift-log` | 3rd-party integration mirror | | ||||||||||||||||||||||||||
| | `getsentry/sentry-apple-cocoalumberjack` | 3rd-party integration mirror | | ||||||||||||||||||||||||||
| | `getsentry/sentry-apple-pulse` | 3rd-party integration mirror | | ||||||||||||||||||||||||||
| | `getsentry/sentry-apple-swiftybeaver` | 3rd-party integration mirror | | ||||||||||||||||||||||||||
|
Comment on lines
+17
to
+22
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
Just to make life easier for future me when I need/want to click these heh |
||||||||||||||||||||||||||
| | Sentry Release Registry | Updates the `cocoapods:sentry-cocoa` entry (historical name) | | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| The 3rd-party integration repos also receive continuous code sync on every push to `main`. See [MIRRORING.md](MIRRORING.md) for full details on both mechanisms. | ||||||||||||||||||||||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Bug: The Suggested FixEither create the missing Prompt for AI AgentDid we get this right? 👍 / 👎 to inform future reviews.
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is added in #8679 |
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| ### Release Workflow Steps | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| 1. **Build XCFramework slices** — matrix build across platforms and variants. | ||||||||||||||||||||||||||
| 2. **Assemble XCFrameworks** — static, dynamic, and signed variants for Sentry and SentryObjC. | ||||||||||||||||||||||||||
| 3. **Validate** — XCFramework validation, SPM static/dynamic, Swift build, visionOS SPM. | ||||||||||||||||||||||||||
| 4. **Create archives** — `scripts/create-apple-binaries-archive.sh` (stamps version + checksums into `Package.swift`) and `scripts/create-3rd-party-integration-archive.sh --all`. | ||||||||||||||||||||||||||
| 5. **Craft release** — pushes archives to downstream repos with version tags, creates GitHub release. | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| Craft runs `scripts/bump.sh` as its `preReleaseCommand`, which calls `bump-version.sh` and `update-package-sha.sh`. | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| ## Promoting a beta release to a normal release | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| We frequently release a beta version of our SDK and dogfood it with internal apps to increase our SDK stability. We continue to merge PRs to the main branch, so we can't promote a beta release by publishing it from the main branch. Instead, we create a branch from the GH tag of the beta release and promote it from there. To do this, follow these steps: | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.