From 84562b1d4944d0fda94903dabc07c72c4e9ecf06 Mon Sep 17 00:00:00 2001
From: Steven Eubank <47563310+smeubank@users.noreply.github.com>
Date: Wed, 4 Jan 2023 08:10:28 -0600
Subject: [PATCH 1/8] Update index.mdx
---
src/docs/sdk/event-payloads/index.mdx | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/docs/sdk/event-payloads/index.mdx b/src/docs/sdk/event-payloads/index.mdx
index c6efe72121..c7d32080bb 100644
--- a/src/docs/sdk/event-payloads/index.mdx
+++ b/src/docs/sdk/event-payloads/index.mdx
@@ -159,6 +159,10 @@ For example, in a web app, this might be the route name.
This value can be the git SHA for the given project, or a product identifier
with a semantic version (suggested format `my-project-name@1.0.0`).
+It is suggested to attempt to automatically detect the release environment,
+and set it automatically for the user.
+Further inforomation about platform specific attempts here.
+
```json
{
"release": "my-project-name@1.0.0"
From 3105fdb4c8a6b982ced5f223f09620e3ffcf1c13 Mon Sep 17 00:00:00 2001
From: Steven Eubank <47563310+smeubank@users.noreply.github.com>
Date: Wed, 4 Jan 2023 08:33:27 -0600
Subject: [PATCH 2/8] Create release.mdx
---
src/docs/sdk/event-payloads/release.mdx | 45 +++++++++++++++++++++++++
1 file changed, 45 insertions(+)
create mode 100644 src/docs/sdk/event-payloads/release.mdx
diff --git a/src/docs/sdk/event-payloads/release.mdx b/src/docs/sdk/event-payloads/release.mdx
new file mode 100644
index 0000000000..6cc7c9487c
--- /dev/null
+++ b/src/docs/sdk/event-payloads/release.mdx
@@ -0,0 +1,45 @@
+---
+title: Detect Release Automatically
+---
+
+
+ Should we call special attention to something to encourage best practices and prevent and bad DX?
+
+
+
+## Release
+
+
+```json
+{
+ "release": "my-project-name@1.0.0"
+}
+```
+
+```json
+{
+ "release": "721e41770371db95eee98ca2707686226b993eda"
+}
+```
+
+## SDK Examples
+
+| Source | Description |
Examples
|
+| ------------- | ------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- |
+| Python SDK | -SENTRY_RELEASE env variable - Output of git rev-parse HEAD | |
+| Rust SDK | | |
+| Browser SDK | | |
+| Node SDK | | |
+| Dart/Flutter | | |
+| Java/Android | | |
+| Cocoa/Apple | | |
+| React Native | | |
+| Unity | | |
+| Unreal Engine | | |
+| Capacitor | | |
+| Cordova | | |
+| UXamarin | | |
+| PHP | | |
+| Ruby | | |
+| Golang | | |
+| .NET | | |
From 944bd203288817c4f5525ae5893205747d045e48 Mon Sep 17 00:00:00 2001
From: Steven Eubank <47563310+smeubank@users.noreply.github.com>
Date: Wed, 4 Jan 2023 08:41:32 -0600
Subject: [PATCH 3/8] Update sidebar.tsx
---
src/components/sidebar.tsx | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/components/sidebar.tsx b/src/components/sidebar.tsx
index 2787746f2b..02bddf9ff0 100644
--- a/src/components/sidebar.tsx
+++ b/src/components/sidebar.tsx
@@ -197,6 +197,7 @@ export default () => {
Exception Interface
Message Interface
+ Release Detection
Request Interface
SDK Interface
From d44aa957ada4e4c69b448aa32a2bc62ef6e708a5 Mon Sep 17 00:00:00 2001
From: Steven Eubank <47563310+smeubank@users.noreply.github.com>
Date: Wed, 4 Jan 2023 09:02:17 -0600
Subject: [PATCH 4/8] Update release.mdx
---
src/docs/sdk/event-payloads/release.mdx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/docs/sdk/event-payloads/release.mdx b/src/docs/sdk/event-payloads/release.mdx
index 6cc7c9487c..d1720cca4e 100644
--- a/src/docs/sdk/event-payloads/release.mdx
+++ b/src/docs/sdk/event-payloads/release.mdx
@@ -26,7 +26,7 @@ title: Detect Release Automatically
| Source | Description | Examples
|
| ------------- | ------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- |
-| Python SDK | -SENTRY_RELEASE env variable - Output of git rev-parse HEAD | |
+| Python SDK | -SENTRY_RELEASE env variable
- Output of git rev-parse HEAD | |
| Rust SDK | | |
| Browser SDK | | |
| Node SDK | | |
From e4bb06bc7548c80a7a801be292197e8aee15d70a Mon Sep 17 00:00:00 2001
From: Steven Eubank <47563310+smeubank@users.noreply.github.com>
Date: Wed, 4 Jan 2023 14:52:27 -0600
Subject: [PATCH 5/8] Update src/docs/sdk/event-payloads/release.mdx
Co-authored-by: Bruno Garcia
---
src/docs/sdk/event-payloads/release.mdx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/docs/sdk/event-payloads/release.mdx b/src/docs/sdk/event-payloads/release.mdx
index d1720cca4e..42ad3b0995 100644
--- a/src/docs/sdk/event-payloads/release.mdx
+++ b/src/docs/sdk/event-payloads/release.mdx
@@ -38,7 +38,7 @@ title: Detect Release Automatically
| Unreal Engine | | |
| Capacitor | | |
| Cordova | | |
-| UXamarin | | |
+| Xamarin | | |
| PHP | | |
| Ruby | | |
| Golang | | |
From b74778c4f743cf2e9357e9119551789e59714f93 Mon Sep 17 00:00:00 2001
From: Steven Eubank <47563310+smeubank@users.noreply.github.com>
Date: Thu, 5 Jan 2023 07:09:45 -0600
Subject: [PATCH 6/8] Update src/docs/sdk/event-payloads/index.mdx
Co-authored-by: Bruno Garcia
---
src/docs/sdk/event-payloads/index.mdx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/docs/sdk/event-payloads/index.mdx b/src/docs/sdk/event-payloads/index.mdx
index c7d32080bb..c07625c2fc 100644
--- a/src/docs/sdk/event-payloads/index.mdx
+++ b/src/docs/sdk/event-payloads/index.mdx
@@ -161,7 +161,7 @@ with a semantic version (suggested format `my-project-name@1.0.0`).
It is suggested to attempt to automatically detect the release environment,
and set it automatically for the user.
-Further inforomation about platform specific attempts here.
+Further information about platform specific attempts here.
```json
{
From 4060e946274a541bafb55bfd1cc75e0e25799f0c Mon Sep 17 00:00:00 2001
From: Steven Eubank <47563310+smeubank@users.noreply.github.com>
Date: Thu, 5 Jan 2023 07:48:54 -0600
Subject: [PATCH 7/8] Update release.mdx
---
src/docs/sdk/event-payloads/release.mdx | 51 ++++++++++++++++---------
1 file changed, 32 insertions(+), 19 deletions(-)
diff --git a/src/docs/sdk/event-payloads/release.mdx b/src/docs/sdk/event-payloads/release.mdx
index 42ad3b0995..790d2ca6f3 100644
--- a/src/docs/sdk/event-payloads/release.mdx
+++ b/src/docs/sdk/event-payloads/release.mdx
@@ -24,22 +24,35 @@ title: Detect Release Automatically
## SDK Examples
-| Source | Description | Examples
|
-| ------------- | ------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- |
-| Python SDK | -SENTRY_RELEASE env variable
- Output of git rev-parse HEAD | |
-| Rust SDK | | |
-| Browser SDK | | |
-| Node SDK | | |
-| Dart/Flutter | | |
-| Java/Android | | |
-| Cocoa/Apple | | |
-| React Native | | |
-| Unity | | |
-| Unreal Engine | | |
-| Capacitor | | |
-| Cordova | | |
-| Xamarin | | |
-| PHP | | |
-| Ruby | | |
-| Golang | | |
-| .NET | | |
+| Source | Description |
+| ------------- | --------------------------------------------------------------------------------------------------------------------------------- |
+| Python SDK | -`SENTRY_RELEASE` env variable
- Output of git rev-parse HEAD |
+| Rust SDK | -`SENTRY_RELEASE` env if nothing was explicitly sent. & example snippets include release: sentry::release_name!() |
+| Browser SDK | 1. the `SENTRY_RELEASE` global var injected by bundlers (like webpack plugin): link
2. and then falls back to undefined |
+| Node SDK | 1. release parameter
2. SENTRY_RELEASE env var
3. SENTRY_RELEASE.id global var
- variety of `env variables`
4. and then falls back to undefined |
+| Dart/Flutter | - `SENTRY_RELEASE` environment variable- `-dart-define=SENTRY_RELEASE` dart define variable
- SDK init `options.release`
By default, it uses the `appId@appVersion+buildNumber` whenever possible/available. |
+| Java | - SDK init options
- sentry.properties file
- defaults to git `commit_id` for spring-boot |
+| Android(Java) | - SDK init options
- AndroidManifest.xml `io.sentry.release` metadata
- By default, it uses the `appId@appVersion+buildNumber` |
+| Cocoa/Apple | The SDK sets the default, which is `CFBundleIdentifier@CFBundleShortVersionString+CFBundleVersion`, on the init of the Options. An example is `io.sentry.sample.iOS-Swift@7.31.2+1`|
+| React Native | - SDK init options (overrides platform defaults)
iOS:
- platform default
Android:
- platform default
- `SENTRY_RELEASE` environment variable only source maps upload |
+| Unity | SDK defaults to `$"{productName}@{application.Version}"+{application.BuildGUID}"` on initializing `SentryUnityOptions` |
+| Capacitor | Same rules as Browser, otherwise fetch from the native SDK
iOS
- id as `CFBundleIdentifier`
- version as `CFBundleShortVersionString`
- build as `CFBundleVersion`
Android:
- id as `packageName`
- version as `versionName`
- build as `versionCode` |
+| Cordova | gets from `SENTRY_RELEASE`, or it's set by Sentry CLI from the command `sentry-cli releases propose-version` during build (the hash from the last commit) |
+| Xamarin | `PackageName@VersionString+BuildString`
`PackageName`: the application package name for Android/iOS and the application GUID for UWP.
`VersionString`: `versionName` on Android, `CFBundleVersion` on iOS, Assembly version on UWP.
`BuildString`: `versionCode` on Android, `CFBundleShortVersionString` on iOS. |
+| PHP | in order of precedence:
PHP/Laravel/Symfony
- `options.release`
- `SENTRY_RELEASE` |
+| Ruby | in order of precedence:
- `config.release`
- `ENV[’SENTRY_RELEASE’]`
- `git rev-parse —short HEAD` if .git present
- capistrano `REVISION` file or from `revisions.log`
- `ENV['HEROKU_SLUG_COMMIT']` if on heroku
- nil otherwise |
+| Golang | in order of precedence:
- `options.Release`
- various env vars
`"SENTRY_RELEASE"`
`"HEROKU_SLUG_COMMIT"`
`"SOURCE_VERSION"`
`"CODEBUILD_RESOLVED_SOURCE_VERSION"`
`"CIRCLE_SHA1"`
`"GAE_DEPLOYMENT_ID"`
`"GITHUB_SHA"`
`"COMMIT_REF"`
`"VERCEL_GIT_COMMIT_SHA"`
`"ZEIT_GITHUB_COMMIT_SHA"`
`"ZEIT_GITLAB_COMMIT_SHA"`
`"ZEIT_BITBUCKET_COMMIT_SHA"`
- `git describe --long --always --dirty` |
+| .NET | In order of precedence:
+
- The `release` configuration option if set
+
- The `SENTRY_RELEASE` env var if set
+
- `"{AssemblyName}@{AssemblyInformationalVersion}"` based on the entry assembly, when an informational version attribute is present (commonly set by csproj `` tag in modern .NET)
+
- `"{AssemblyName}@{AssemblyVersion}"` based on the entry assembly, using the full assembly version (usually in older .NET Framework)
+
+
Varies slightly for mobile.
+
On .NET Android:
+
- The `release` configuration option if set
+
- `"{PackageName}@{PackageVersion}+{PackageVersionCode}"` from the Android package. (Should matche `appId@appVersion+buildNumber` from the Android SDK.)
+
+
On .NET for iOS/MacCatalyst:
+
- The Release configuration option if set
+
- `"{CFBundleIdentifier}@{CFBundleShortVersionString}+{CFBundleVersion}"` which matches the iOS SDK. |
From 38feb8d804788ac2688a2a084b8b56349133ef21 Mon Sep 17 00:00:00 2001
From: Steven Eubank <47563310+smeubank@users.noreply.github.com>
Date: Thu, 5 Jan 2023 07:54:50 -0600
Subject: [PATCH 8/8] Update release.mdx
---
src/docs/sdk/event-payloads/release.mdx | 15 +--------------
1 file changed, 1 insertion(+), 14 deletions(-)
diff --git a/src/docs/sdk/event-payloads/release.mdx b/src/docs/sdk/event-payloads/release.mdx
index 790d2ca6f3..ce9880ab4c 100644
--- a/src/docs/sdk/event-payloads/release.mdx
+++ b/src/docs/sdk/event-payloads/release.mdx
@@ -42,17 +42,4 @@ title: Detect Release Automatically
| PHP | in order of precedence:
PHP/Laravel/Symfony
- `options.release`
- `SENTRY_RELEASE` |
| Ruby | in order of precedence:
- `config.release`
- `ENV[’SENTRY_RELEASE’]`
- `git rev-parse —short HEAD` if .git present
- capistrano `REVISION` file or from `revisions.log`
- `ENV['HEROKU_SLUG_COMMIT']` if on heroku
- nil otherwise |
| Golang | in order of precedence:
- `options.Release`
- various env vars
`"SENTRY_RELEASE"`
`"HEROKU_SLUG_COMMIT"`
`"SOURCE_VERSION"`
`"CODEBUILD_RESOLVED_SOURCE_VERSION"`
`"CIRCLE_SHA1"`
`"GAE_DEPLOYMENT_ID"`
`"GITHUB_SHA"`
`"COMMIT_REF"`
`"VERCEL_GIT_COMMIT_SHA"`
`"ZEIT_GITHUB_COMMIT_SHA"`
`"ZEIT_GITLAB_COMMIT_SHA"`
`"ZEIT_BITBUCKET_COMMIT_SHA"`
- `git describe --long --always --dirty` |
-| .NET | In order of precedence:
-
- The `release` configuration option if set
-
- The `SENTRY_RELEASE` env var if set
-
- `"{AssemblyName}@{AssemblyInformationalVersion}"` based on the entry assembly, when an informational version attribute is present (commonly set by csproj `` tag in modern .NET)
-
- `"{AssemblyName}@{AssemblyVersion}"` based on the entry assembly, using the full assembly version (usually in older .NET Framework)
-
-
Varies slightly for mobile.
-
On .NET Android:
-
- The `release` configuration option if set
-
- `"{PackageName}@{PackageVersion}+{PackageVersionCode}"` from the Android package. (Should matche `appId@appVersion+buildNumber` from the Android SDK.)
-
-
On .NET for iOS/MacCatalyst:
-
- The Release configuration option if set
-
- `"{CFBundleIdentifier}@{CFBundleShortVersionString}+{CFBundleVersion}"` which matches the iOS SDK. |
+| .NET | In order of precedence:
- The `release` configuration option if set
- The `SENTRY_RELEASE` env var if set
- `"{AssemblyName}@{AssemblyInformationalVersion}"` based on the entry assembly, when an informational version attribute is present (commonly set by csproj `` tag in modern .NET)
- `"{AssemblyName}@{AssemblyVersion}"` based on the entry assembly, using the full assembly version (usually in older .NET Framework)
Varies slightly for mobile.
On .NET Android:
- The `release` configuration option if set
- `"{PackageName}@{PackageVersion}+{PackageVersionCode}"` from the Android package. (Should matche `appId@appVersion+buildNumber` from the Android SDK.)
On .NET for iOS/MacCatalyst:
- The Release configuration option if set
- `"{CFBundleIdentifier}@{CFBundleShortVersionString}+{CFBundleVersion}"` which matches the iOS SDK. |