diff --git a/docs/cli/releases.mdx b/docs/cli/releases.mdx index 5183a9f3ab8a48..cb106db8c64e63 100644 --- a/docs/cli/releases.mdx +++ b/docs/cli/releases.mdx @@ -14,24 +14,17 @@ Because releases work on projects you will need to specify the organization and ## Creating Releases -Releases are created with the `sentry-cli releases new` command. It takes at the very least a version identifier that uniquely identifies the releases. There are a few restrictions -- the release name cannot: - -- contain newlines, tabulator characters, forward slashes(/), or back slashes(\\) -- be (in their entirety) period (.), double period (..), or space ( ) -- exceed 200 characters - -The value can be arbitrary, but for certain platforms, recommendations exist: - -- for mobile devices use `package-name@version-number` or `package-name@version-number+build-number`. **Do not** use `VERSION_NUMBER (BUILD_NUMBER)` as the parenthesis are used for display purposes (foo@1.0+2 becomes 1.0 (2)), so invoking them will cause an error. -- if you use a DVCS we recommend using the identifying hash (eg: the commit SHA, `da39a3ee5e6b4b0d3255bfef95601890afd80709`). You can let sentry-cli automatically determine this hash for supported version control systems with `sentry-cli releases propose-version`. -- if you tag releases we recommend using the release tag prefixed with a product or package name (for example, `my-project-name@2.3.12`). +Releases are created with the `sentry-cli releases new` command. It takes at the very least a version identifier that uniquely identifies the releases. ```bash #!/bin/sh sentry-cli releases new "$VERSION" ``` -Releases can also be auto created by different systems. For instance upon uploading a source map a release is automatically created. Likewise releases are created by some clients when an event for a release comes in. +There are some release name restrictions and conventions to be aware of. [Learn more about Naming Releases](/product/releases/naming-releases/). + +Releases can also be auto created by different systems. For instance upon uploading a source map, or by some clients when an event that is tagged with a release is ingested. Therefore it's important to set the release name when building and deploying your application. Learn more in our [Releases](/platform-redirect/?next=/configuration/releases/) documentation. + ## Finalizing Releases diff --git a/docs/platforms/android/configuration/releases.mdx b/docs/platforms/android/configuration/releases.mdx index 8b7ccff714cc14..ba82fac357393a 100644 --- a/docs/platforms/android/configuration/releases.mdx +++ b/docs/platforms/android/configuration/releases.mdx @@ -13,40 +13,7 @@ A release is a version of your code that is deployed to an ...-` (`CFBundleShortVersionString` on iOS, `versionName` on Android) - - `build` is the number that identifies an iteration of your app (`CFBundleVersion` on iOS, `versionCode` on Android) -- **Commit SHA**: If you use a version control system like Git, we recommend using the identifying hash (for example, the commit SHA, `da39a3ee5e6b4b0d3255bfef95601890afd80709`). You can let Sentry CLI automatically determine this hash for supported version control systems. Learn more in our [Sentry CLI](/cli/releases/#creating-releases) documentation. - - - -Releases are global per organization; prefix them with something project-specific for easy differentiation. - - - -The behavior of a few features depends on whether a project is using semantic or time-based versioning. - -- Regression detection -- `release:latest` - -We automatically detect whether a project is using semantic or time-based versioning based on: - -- If ≤ 2 releases total: we look at most recent release. -- If 3-9 releases (inclusive): if any of the most recent 3 releases is semver, project is semver. -- If 10 or more releases: if any of the most recent 3 releases is semver, and 3 out of the most recent 10 releases is semver, then the project is semver. + ## Setting a Release diff --git a/docs/platforms/apple/common/configuration/releases.mdx b/docs/platforms/apple/common/configuration/releases.mdx index ff35760df93f55..e158b4d293cd02 100644 --- a/docs/platforms/apple/common/configuration/releases.mdx +++ b/docs/platforms/apple/common/configuration/releases.mdx @@ -11,40 +11,7 @@ A release is a version of your code that is deployed to an ...-` (`CFBundleShortVersionString` on iOS, `versionName` on Android) - - `build` is the number that identifies an iteration of your app (`CFBundleVersion` on iOS, `versionCode` on Android) -- **Commit SHA**: If you use a version control system like Git, we recommend using the identifying hash (for example, the commit SHA, `da39a3ee5e6b4b0d3255bfef95601890afd80709`). You can let Sentry CLI automatically determine this hash for supported version control systems. Learn more in our [Sentry CLI](/cli/releases/#creating-releases) documentation. - - - -Releases are global per organization; prefix them with something project-specific for easy differentiation. - - - -The behavior of a few features depends on whether a project is using semantic or time-based versioning. - -- Regression detection -- `release:latest` - -We automatically detect whether a project is using semantic or time-based versioning based on: - -- If ≤ 2 releases total: we look at most recent release. -- If 3-9 releases (inclusive): if any of the most recent 3 releases is semver, project is semver. -- If 10 or more releases: if any of the most recent 3 releases is semver, and 3 out of the most recent 10 releases is semver, then the project is semver. + ## Setting a Release diff --git a/docs/platforms/dart/common/configuration/releases.mdx b/docs/platforms/dart/common/configuration/releases.mdx index bb35de060c9896..ba9492734f6918 100644 --- a/docs/platforms/dart/common/configuration/releases.mdx +++ b/docs/platforms/dart/common/configuration/releases.mdx @@ -11,40 +11,7 @@ A release is a version of your code that is deployed to an ...-` (`CFBundleShortVersionString` on iOS, `versionName` on Android) - - `build` is the number that identifies an iteration of your app (`CFBundleVersion` on iOS, `versionCode` on Android) -- **Commit SHA**: If you use a version control system like Git, we recommend using the identifying hash (for example, the commit SHA, `da39a3ee5e6b4b0d3255bfef95601890afd80709`). You can let Sentry CLI automatically determine this hash for supported version control systems. Learn more in our [Sentry CLI](/cli/releases/#creating-releases) documentation. - - - -Releases are global per organization; prefix them with something project-specific for easy differentiation. - - - -The behavior of a few features depends on whether a project is using semantic or time-based versioning. - -- Regression detection -- `release:latest` - -We automatically detect whether a project is using semantic or time-based versioning based on: - -- If ≤ 2 releases total: we look at most recent release. -- If 3-9 releases (inclusive): if any of the most recent 3 releases is semver, project is semver. -- If 10 or more releases: if any of the most recent 3 releases is semver, and 3 out of the most recent 10 releases is semver, then the project is semver. + ## Setting a Release diff --git a/docs/platforms/dart/guides/flutter/configuration/releases.mdx b/docs/platforms/dart/guides/flutter/configuration/releases.mdx index 1d38f7837a5a5c..ec161ecf04ee44 100644 --- a/docs/platforms/dart/guides/flutter/configuration/releases.mdx +++ b/docs/platforms/dart/guides/flutter/configuration/releases.mdx @@ -11,40 +11,7 @@ A release is a version of your code that is deployed to an ...-` (`CFBundleShortVersionString` on iOS, `versionName` on Android) - - `build` is the number that identifies an iteration of your app (`CFBundleVersion` on iOS, `versionCode` on Android) -- **Commit SHA**: If you use a version control system like Git, we recommend using the identifying hash (for example, the commit SHA, `da39a3ee5e6b4b0d3255bfef95601890afd80709`). You can let Sentry CLI automatically determine this hash for supported version control systems. Learn more in our [Sentry CLI](/cli/releases/#creating-releases) documentation. - - - -Releases are global per organization; prefix them with something project-specific for easy differentiation. - - - -The behavior of a few features depends on whether a project is using semantic or time-based versioning. - -- Regression detection -- `release:latest` - -We automatically detect whether a project is using semantic or time-based versioning based on: - -- If ≤ 2 releases total: we look at most recent release. -- If 3-9 releases (inclusive): if any of the most recent 3 releases is semver, project is semver. -- If 10 or more releases: if any of the most recent 3 releases is semver, and 3 out of the most recent 10 releases is semver, then the project is semver. + ## Setting a Release diff --git a/docs/platforms/dotnet/common/configuration/releases.mdx b/docs/platforms/dotnet/common/configuration/releases.mdx index 85ad930359d1cf..f47ee4c40b66bf 100644 --- a/docs/platforms/dotnet/common/configuration/releases.mdx +++ b/docs/platforms/dotnet/common/configuration/releases.mdx @@ -11,40 +11,7 @@ A release is a version of your code that is deployed to an ...-` (`CFBundleShortVersionString` on iOS, `versionName` on Android) - - `build` is the number that identifies an iteration of your app (`CFBundleVersion` on iOS, `versionCode` on Android) -- **Commit SHA**: If you use a version control system like Git, we recommend using the identifying hash (for example, the commit SHA, `da39a3ee5e6b4b0d3255bfef95601890afd80709`). You can let Sentry CLI automatically determine this hash for supported version control systems. Learn more in our [Sentry CLI](/cli/releases/#creating-releases) documentation. - - - -Releases are global per organization; prefix them with something project-specific for easy differentiation. - - - -The behavior of a few features depends on whether a project is using semantic or time-based versioning. - -- Regression detection -- `release:latest` - -We automatically detect whether a project is using semantic or time-based versioning based on: - -- If ≤ 2 releases total: we look at most recent release. -- If 3-9 releases (inclusive): if any of the most recent 3 releases is semver, project is semver. -- If 10 or more releases: if any of the most recent 3 releases is semver, and 3 out of the most recent 10 releases is semver, then the project is semver. + ## Setting a Release diff --git a/docs/platforms/elixir/configuration/releases.mdx b/docs/platforms/elixir/configuration/releases.mdx index 3040ef122baf1d..e24d47c2e61d20 100644 --- a/docs/platforms/elixir/configuration/releases.mdx +++ b/docs/platforms/elixir/configuration/releases.mdx @@ -11,40 +11,7 @@ A release is a version of your code that is deployed to an ...-` (`CFBundleShortVersionString` on iOS, `versionName` on Android) - - `build` is the number that identifies an iteration of your app (`CFBundleVersion` on iOS, `versionCode` on Android) -- **Commit SHA**: If you use a version control system like Git, we recommend using the identifying hash (for example, the commit SHA, `da39a3ee5e6b4b0d3255bfef95601890afd80709`). You can let Sentry CLI automatically determine this hash for supported version control systems. Learn more in our [Sentry CLI](/cli/releases/#creating-releases) documentation. - - - -Releases are global per organization; prefix them with something project-specific for easy differentiation. - - - -The behavior of a few features depends on whether a project is using semantic or time-based versioning. - -- Regression detection -- `release:latest` - -We automatically detect whether a project is using semantic or time-based versioning based on: - -- If ≤ 2 releases total: we look at most recent release. -- If 3-9 releases (inclusive): if any of the most recent 3 releases is semver, project is semver. -- If 10 or more releases: if any of the most recent 3 releases is semver, and 3 out of the most recent 10 releases is semver, then the project is semver. + ## Setting a Release diff --git a/docs/platforms/go/common/configuration/releases.mdx b/docs/platforms/go/common/configuration/releases.mdx index 3040ef122baf1d..e24d47c2e61d20 100644 --- a/docs/platforms/go/common/configuration/releases.mdx +++ b/docs/platforms/go/common/configuration/releases.mdx @@ -11,40 +11,7 @@ A release is a version of your code that is deployed to an ...-` (`CFBundleShortVersionString` on iOS, `versionName` on Android) - - `build` is the number that identifies an iteration of your app (`CFBundleVersion` on iOS, `versionCode` on Android) -- **Commit SHA**: If you use a version control system like Git, we recommend using the identifying hash (for example, the commit SHA, `da39a3ee5e6b4b0d3255bfef95601890afd80709`). You can let Sentry CLI automatically determine this hash for supported version control systems. Learn more in our [Sentry CLI](/cli/releases/#creating-releases) documentation. - - - -Releases are global per organization; prefix them with something project-specific for easy differentiation. - - - -The behavior of a few features depends on whether a project is using semantic or time-based versioning. - -- Regression detection -- `release:latest` - -We automatically detect whether a project is using semantic or time-based versioning based on: - -- If ≤ 2 releases total: we look at most recent release. -- If 3-9 releases (inclusive): if any of the most recent 3 releases is semver, project is semver. -- If 10 or more releases: if any of the most recent 3 releases is semver, and 3 out of the most recent 10 releases is semver, then the project is semver. + ## Setting a Release diff --git a/docs/platforms/godot/configuration/releases.mdx b/docs/platforms/godot/configuration/releases.mdx index 8bc91f190c3f0f..e60519c4aa3c6f 100644 --- a/docs/platforms/godot/configuration/releases.mdx +++ b/docs/platforms/godot/configuration/releases.mdx @@ -17,40 +17,7 @@ A release is a version of your code that is deployed to an ...-` (`CFBundleShortVersionString` on iOS, `versionName` on Android) - - `build` is the number that identifies an iteration of your app (`CFBundleVersion` on iOS, `versionCode` on Android) -- **Commit SHA**: If you use a version control system like Git, we recommend using the identifying hash (for example, the commit SHA, `da39a3ee5e6b4b0d3255bfef95601890afd80709`). You can let Sentry CLI automatically determine this hash for supported version control systems. Learn more in our [Sentry CLI](/cli/releases/#creating-releases) documentation. - - - -Releases are global per organization; prefix them with something project-specific for easy differentiation. - - - -The behavior of a few features depends on whether a project is using semantic or time-based versioning. - -- Regression detection -- `release:latest` - -We automatically detect whether a project is using semantic or time-based versioning based on: - -- If ≤ 2 releases total: we look at most recent release. -- If 3-9 releases (inclusive): if any of the most recent 3 releases is semver, project is semver. -- If 10 or more releases: if any of the most recent 3 releases is semver, and 3 out of the most recent 10 releases is semver, then the project is semver. + ## Setting a Release diff --git a/docs/platforms/java/common/configuration/releases.mdx b/docs/platforms/java/common/configuration/releases.mdx index a504eaa942740f..a7455ce99f9eee 100644 --- a/docs/platforms/java/common/configuration/releases.mdx +++ b/docs/platforms/java/common/configuration/releases.mdx @@ -13,40 +13,7 @@ A release is a version of your code that is deployed to an ...-` (`CFBundleShortVersionString` on iOS, `versionName` on Android) - - `build` is the number that identifies an iteration of your app (`CFBundleVersion` on iOS, `versionCode` on Android) -- **Commit SHA**: If you use a version control system like Git, we recommend using the identifying hash (for example, the commit SHA, `da39a3ee5e6b4b0d3255bfef95601890afd80709`). You can let Sentry CLI automatically determine this hash for supported version control systems. Learn more in our [Sentry CLI](/cli/releases/#creating-releases) documentation. - - - -Releases are global per organization; prefix them with something project-specific for easy differentiation. - - - -The behavior of a few features depends on whether a project is using semantic or time-based versioning. - -- Regression detection -- `release:latest` - -We automatically detect whether a project is using semantic or time-based versioning based on: - -- If ≤ 2 releases total: we look at most recent release. -- If 3-9 releases (inclusive): if any of the most recent 3 releases is semver, project is semver. -- If 10 or more releases: if any of the most recent 3 releases is semver, and 3 out of the most recent 10 releases is semver, then the project is semver. + ## Setting a Release diff --git a/docs/platforms/javascript/common/configuration/releases.mdx b/docs/platforms/javascript/common/configuration/releases.mdx index c0269868260f46..aa05dd95e53cd1 100644 --- a/docs/platforms/javascript/common/configuration/releases.mdx +++ b/docs/platforms/javascript/common/configuration/releases.mdx @@ -13,40 +13,7 @@ A release is a version of your code that is deployed to an ...-` (`CFBundleShortVersionString` on iOS, `versionName` on Android) - - `build` is the number that identifies an iteration of your app (`CFBundleVersion` on iOS, `versionCode` on Android) -- **Commit SHA**: If you use a version control system like Git, we recommend using the identifying hash (for example, the commit SHA, `da39a3ee5e6b4b0d3255bfef95601890afd80709`). You can let Sentry CLI automatically determine this hash for supported version control systems. Learn more in our [Sentry CLI](/cli/releases/#creating-releases) documentation. - - - -Releases are global per organization; prefix them with something project-specific for easy differentiation. - - - -The behavior of a few features depends on whether a project is using semantic or time-based versioning. - -- Regression detection -- `release:latest` - -We automatically detect whether a project is using semantic or time-based versioning based on: - -- If ≤ 2 releases total: we look at most recent release. -- If 3-9 releases (inclusive): if any of the most recent 3 releases is semver, project is semver. -- If 10 or more releases: if any of the most recent 3 releases is semver, and 3 out of the most recent 10 releases is semver, then the project is semver. + ## Setting a Release diff --git a/docs/platforms/kotlin/guides/kotlin-multiplatform/configuration/releases.mdx b/docs/platforms/kotlin/guides/kotlin-multiplatform/configuration/releases.mdx index 39f7681059920a..b5e7c869460de2 100644 --- a/docs/platforms/kotlin/guides/kotlin-multiplatform/configuration/releases.mdx +++ b/docs/platforms/kotlin/guides/kotlin-multiplatform/configuration/releases.mdx @@ -13,40 +13,7 @@ A release is a version of your code that is deployed to an ...-` (`CFBundleShortVersionString` on iOS, `versionName` on Android) - - `build` is the number that identifies an iteration of your app (`CFBundleVersion` on iOS, `versionCode` on Android) -- **Commit SHA**: If you use a version control system like Git, we recommend using the identifying hash (for example, the commit SHA, `da39a3ee5e6b4b0d3255bfef95601890afd80709`). You can let Sentry CLI automatically determine this hash for supported version control systems. Learn more in our [Sentry CLI](/cli/releases/#creating-releases) documentation. - - - -Releases are global per organization; prefix them with something project-specific for easy differentiation. - - - -The behavior of a few features depends on whether a project is using semantic or time-based versioning. - -- Regression detection -- `release:latest` - -We automatically detect whether a project is using semantic or time-based versioning based on: - -- If ≤ 2 releases total: we look at most recent release. -- If 3-9 releases (inclusive): if any of the most recent 3 releases is semver, project is semver. -- If 10 or more releases: if any of the most recent 3 releases is semver, and 3 out of the most recent 10 releases is semver, then the project is semver. + ## Setting a Release diff --git a/docs/platforms/native/common/configuration/releases.mdx b/docs/platforms/native/common/configuration/releases.mdx index 1d38f7837a5a5c..ec161ecf04ee44 100644 --- a/docs/platforms/native/common/configuration/releases.mdx +++ b/docs/platforms/native/common/configuration/releases.mdx @@ -11,40 +11,7 @@ A release is a version of your code that is deployed to an ...-` (`CFBundleShortVersionString` on iOS, `versionName` on Android) - - `build` is the number that identifies an iteration of your app (`CFBundleVersion` on iOS, `versionCode` on Android) -- **Commit SHA**: If you use a version control system like Git, we recommend using the identifying hash (for example, the commit SHA, `da39a3ee5e6b4b0d3255bfef95601890afd80709`). You can let Sentry CLI automatically determine this hash for supported version control systems. Learn more in our [Sentry CLI](/cli/releases/#creating-releases) documentation. - - - -Releases are global per organization; prefix them with something project-specific for easy differentiation. - - - -The behavior of a few features depends on whether a project is using semantic or time-based versioning. - -- Regression detection -- `release:latest` - -We automatically detect whether a project is using semantic or time-based versioning based on: - -- If ≤ 2 releases total: we look at most recent release. -- If 3-9 releases (inclusive): if any of the most recent 3 releases is semver, project is semver. -- If 10 or more releases: if any of the most recent 3 releases is semver, and 3 out of the most recent 10 releases is semver, then the project is semver. + ## Setting a Release diff --git a/docs/platforms/php/common/configuration/releases.mdx b/docs/platforms/php/common/configuration/releases.mdx index 3040ef122baf1d..e24d47c2e61d20 100644 --- a/docs/platforms/php/common/configuration/releases.mdx +++ b/docs/platforms/php/common/configuration/releases.mdx @@ -11,40 +11,7 @@ A release is a version of your code that is deployed to an ...-` (`CFBundleShortVersionString` on iOS, `versionName` on Android) - - `build` is the number that identifies an iteration of your app (`CFBundleVersion` on iOS, `versionCode` on Android) -- **Commit SHA**: If you use a version control system like Git, we recommend using the identifying hash (for example, the commit SHA, `da39a3ee5e6b4b0d3255bfef95601890afd80709`). You can let Sentry CLI automatically determine this hash for supported version control systems. Learn more in our [Sentry CLI](/cli/releases/#creating-releases) documentation. - - - -Releases are global per organization; prefix them with something project-specific for easy differentiation. - - - -The behavior of a few features depends on whether a project is using semantic or time-based versioning. - -- Regression detection -- `release:latest` - -We automatically detect whether a project is using semantic or time-based versioning based on: - -- If ≤ 2 releases total: we look at most recent release. -- If 3-9 releases (inclusive): if any of the most recent 3 releases is semver, project is semver. -- If 10 or more releases: if any of the most recent 3 releases is semver, and 3 out of the most recent 10 releases is semver, then the project is semver. + ## Setting a Release diff --git a/docs/platforms/powershell/configuration/releases.mdx b/docs/platforms/powershell/configuration/releases.mdx index badf0212915e6c..ec161ecf04ee44 100644 --- a/docs/platforms/powershell/configuration/releases.mdx +++ b/docs/platforms/powershell/configuration/releases.mdx @@ -11,40 +11,7 @@ A release is a version of your code that is deployed to an ...-` - - `build` is the number that identifies an iteration of your app -- **Commit SHA**: If you use a version control system like Git, we recommend using the identifying hash (for example, the commit SHA, `da39a3ee5e6b4b0d3255bfef95601890afd80709`). You can let Sentry CLI automatically determine this hash for supported version control systems. Learn more in our [Sentry CLI](/cli/releases/#creating-releases) documentation. - - - -Releases are global per organization; prefix them with something project-specific for easy differentiation. - - - -The behavior of a few features depends on whether a project is using semantic or time-based versioning. - -- Regression detection -- `release:latest` - -We automatically detect whether a project is using semantic or time-based versioning based on: - -- If ≤ 2 releases total: we look at most recent release. -- If 3-9 releases (inclusive): if any of the most recent 3 releases is semver, project is semver. -- If 10 or more releases: if any of the most recent 3 releases is semver, and 3 out of the most recent 10 releases is semver, then the project is semver. + ## Setting a Release diff --git a/docs/platforms/react-native/configuration/releases.mdx b/docs/platforms/react-native/configuration/releases.mdx index 8b7ccff714cc14..ba82fac357393a 100644 --- a/docs/platforms/react-native/configuration/releases.mdx +++ b/docs/platforms/react-native/configuration/releases.mdx @@ -13,40 +13,7 @@ A release is a version of your code that is deployed to an ...-` (`CFBundleShortVersionString` on iOS, `versionName` on Android) - - `build` is the number that identifies an iteration of your app (`CFBundleVersion` on iOS, `versionCode` on Android) -- **Commit SHA**: If you use a version control system like Git, we recommend using the identifying hash (for example, the commit SHA, `da39a3ee5e6b4b0d3255bfef95601890afd80709`). You can let Sentry CLI automatically determine this hash for supported version control systems. Learn more in our [Sentry CLI](/cli/releases/#creating-releases) documentation. - - - -Releases are global per organization; prefix them with something project-specific for easy differentiation. - - - -The behavior of a few features depends on whether a project is using semantic or time-based versioning. - -- Regression detection -- `release:latest` - -We automatically detect whether a project is using semantic or time-based versioning based on: - -- If ≤ 2 releases total: we look at most recent release. -- If 3-9 releases (inclusive): if any of the most recent 3 releases is semver, project is semver. -- If 10 or more releases: if any of the most recent 3 releases is semver, and 3 out of the most recent 10 releases is semver, then the project is semver. + ## Setting a Release diff --git a/docs/platforms/ruby/common/configuration/releases.mdx b/docs/platforms/ruby/common/configuration/releases.mdx index 5a1d3f4976fa25..9c0f4f48f072a3 100644 --- a/docs/platforms/ruby/common/configuration/releases.mdx +++ b/docs/platforms/ruby/common/configuration/releases.mdx @@ -11,40 +11,7 @@ A release is a version of your code that is deployed to an ...-` (`CFBundleShortVersionString` on iOS, `versionName` on Android) - - `build` is the number that identifies an iteration of your app (`CFBundleVersion` on iOS, `versionCode` on Android) -- **Commit SHA**: If you use a version control system like Git, we recommend using the identifying hash (for example, the commit SHA, `da39a3ee5e6b4b0d3255bfef95601890afd80709`). You can let Sentry CLI automatically determine this hash for supported version control systems. Learn more in our [Sentry CLI](/cli/releases/#creating-releases) documentation. - - - -Releases are global per organization; prefix them with something project-specific for easy differentiation. - - - -The behavior of a few features depends on whether a project is using semantic or time-based versioning. - -- Regression detection -- `release:latest` - -We automatically detect whether a project is using semantic or time-based versioning based on: - -- If ≤ 2 releases total: we look at most recent release. -- If 3-9 releases (inclusive): if any of the most recent 3 releases is semver, project is semver. -- If 10 or more releases: if any of the most recent 3 releases is semver, and 3 out of the most recent 10 releases is semver, then the project is semver. + ## Setting a Release diff --git a/docs/platforms/rust/common/configuration/releases.mdx b/docs/platforms/rust/common/configuration/releases.mdx index fd04244a31229d..77d116ed966f47 100644 --- a/docs/platforms/rust/common/configuration/releases.mdx +++ b/docs/platforms/rust/common/configuration/releases.mdx @@ -11,40 +11,7 @@ A release is a version of your code that is deployed to an ...-` (`CFBundleShortVersionString` on iOS, `versionName` on Android) - - `build` is the number that identifies an iteration of your app (`CFBundleVersion` on iOS, `versionCode` on Android) -- **Commit SHA**: If you use a version control system like Git, we recommend using the identifying hash (for example, the commit SHA, `da39a3ee5e6b4b0d3255bfef95601890afd80709`). You can let Sentry CLI automatically determine this hash for supported version control systems. Learn more in our [Sentry CLI](/cli/releases/#creating-releases) documentation. - - - -Releases are global per organization; prefix them with something project-specific for easy differentiation. - - - -The behavior of a few features depends on whether a project is using semantic or time-based versioning. - -- Regression detection -- `release:latest` - -We automatically detect whether a project is using semantic or time-based versioning based on: - -- If ≤ 2 releases total: we look at most recent release. -- If 3-9 releases (inclusive): if any of the most recent 3 releases is semver, project is semver. -- If 10 or more releases: if any of the most recent 3 releases is semver, and 3 out of the most recent 10 releases is semver, then the project is semver. + ## Setting a Release diff --git a/docs/platforms/unity/configuration/releases.mdx b/docs/platforms/unity/configuration/releases.mdx index 8bc91f190c3f0f..e60519c4aa3c6f 100644 --- a/docs/platforms/unity/configuration/releases.mdx +++ b/docs/platforms/unity/configuration/releases.mdx @@ -17,40 +17,7 @@ A release is a version of your code that is deployed to an ...-` (`CFBundleShortVersionString` on iOS, `versionName` on Android) - - `build` is the number that identifies an iteration of your app (`CFBundleVersion` on iOS, `versionCode` on Android) -- **Commit SHA**: If you use a version control system like Git, we recommend using the identifying hash (for example, the commit SHA, `da39a3ee5e6b4b0d3255bfef95601890afd80709`). You can let Sentry CLI automatically determine this hash for supported version control systems. Learn more in our [Sentry CLI](/cli/releases/#creating-releases) documentation. - - - -Releases are global per organization; prefix them with something project-specific for easy differentiation. - - - -The behavior of a few features depends on whether a project is using semantic or time-based versioning. - -- Regression detection -- `release:latest` - -We automatically detect whether a project is using semantic or time-based versioning based on: - -- If ≤ 2 releases total: we look at most recent release. -- If 3-9 releases (inclusive): if any of the most recent 3 releases is semver, project is semver. -- If 10 or more releases: if any of the most recent 3 releases is semver, and 3 out of the most recent 10 releases is semver, then the project is semver. + ## Setting a Release diff --git a/docs/platforms/unreal/configuration/releases.mdx b/docs/platforms/unreal/configuration/releases.mdx index ffb0c992175902..353a49d715bb0c 100644 --- a/docs/platforms/unreal/configuration/releases.mdx +++ b/docs/platforms/unreal/configuration/releases.mdx @@ -17,40 +17,7 @@ A release is a version of your code that is deployed to an ...-` (`CFBundleShortVersionString` on iOS, `versionName` on Android) - - `build` is the number that identifies an iteration of your app (`CFBundleVersion` on iOS, `versionCode` on Android) -- **Commit SHA**: If you use a version control system like Git, we recommend using the identifying hash (for example, the commit SHA, `da39a3ee5e6b4b0d3255bfef95601890afd80709`). You can let Sentry CLI automatically determine this hash for supported version control systems. Learn more in our [Sentry CLI](/cli/releases/#creating-releases) documentation. - - - -Releases are global per organization; prefix them with something project-specific for easy differentiation. - - - -The behavior of a few features depends on whether a project is using semantic or time-based versioning. - -- Regression detection -- `release:latest` - -We automatically detect whether a project is using semantic or time-based versioning based on: - -- If ≤ 2 releases total: we look at most recent release. -- If 3-9 releases (inclusive): if any of the most recent 3 releases is semver, project is semver. -- If 10 or more releases: if any of the most recent 3 releases is semver, and 3 out of the most recent 10 releases is semver, then the project is semver. + ## Setting a Release diff --git a/docs/product/releases/naming-releases.mdx b/docs/product/releases/naming-releases.mdx new file mode 100644 index 00000000000000..635dfeee1774ce --- /dev/null +++ b/docs/product/releases/naming-releases.mdx @@ -0,0 +1,48 @@ +--- +title: Naming Releases +sidebar_order: 3 +description: "Learn about release naming conventions." +--- + +## Creating Releases + +Releases are created directly via [automatic release management](/product/releases/setup/release-automation/), the [Sentry CLI](/cli/releases/), or manually via the [Sentry API](/api/releases/create-a-new-release-for-an-organization/). + +Releases can also be auto created by different systems. For instance upon uploading a source map, or by some clients when an event that is tagged with a release is ingested. Therefore it's important to set the release name when building and deploying your application. Learn more in our [Releases](/platform-redirect/?next=/configuration/releases/) documentation. + +## Release Names + +Release IDs, (often called a "version", or "name") are used to uniquely identify a release across the entire Sentry organization. A Release Name may be associated with builds, events, sessions, etc from multiple projects. + + + +Releases are global per organization; prefix them with something project-specific for easy differentiation. + + + +The value can be arbitrary, but there are a few restrictions. In all cases, the release name cannot: +- contain newlines, tabulator characters, forward slashes(`/`) or back slashes(`\`) +- be (in their entirety) period (`.`), double period (`..`), or space ( ) +- exceed 200 characters + +While the value can be arbitrary, we do recommend these naming strategies: + +### Semantic Versioning +Use the format `package@version` or `package@version+build` (for example, `my.project.name@2.3.12+1234`) +- `package` is the unique identifier of the project/app (`CFBundleIdentifier` on iOS, `packageName` on Android) +- `version` is the semver-like structure `...-` (`CFBundleShortVersionString` on iOS, `versionName` on Android) +- `build` is the number that identifies an iteration of your app (`CFBundleVersion` on iOS, `versionCode` on Android) +**Do not** use `VERSION_NUMBER (BUILD_NUMBER)` as the parenthesis are used for display purposes (foo@1.0+2 becomes 1.0 (2)), so invoking them will cause an error. + +We automatically detect whether a project is using semantic or time-based versioning based on: + +- If ≤ 2 releases total: we look at most recent release. +- If 3-9 releases (inclusive): if any of the most recent 3 releases is semver, project is semver. +- If 10 or more releases: if any of the most recent 3 releases is semver, and 3 out of the most recent 10 releases is semver, then the project is semver. + +### Commit SHA +If you use a version control system like Git, we recommend using the identifying hash (for example, the commit SHA, `da39a3ee5e6b4b0d3255bfef95601890afd80709`). You can let Sentry CLI automatically determine this hash for supported version control systems; and pass it in at build time to your codebase so it can be used to tag events. + +## Related Features + +Regression Detection and `release:latest` sorting strategies will changed depending on whether a project is using semantic or SHA/time-based versioning. diff --git a/includes/bind-release-version.mdx b/includes/bind-release-version.mdx new file mode 100644 index 00000000000000..667bfba3c9cedd --- /dev/null +++ b/includes/bind-release-version.mdx @@ -0,0 +1,7 @@ +## Bind the Version + +Include a release ID (often called a "version") when you initialize the SDK. + +There are some release name restrictions and conventions to be aware of. [Learn more about Naming Releases](/product/releases/naming-releases/). + +Releases can also be auto created by different systems. For instance upon uploading a source map, or by some clients when an event that is tagged with a release is ingested. Therefore it's important to set the release name when building and deploying your application. Learn more in our [Releases](/platform-redirect/?next=/configuration/releases/) documentation.