From e308ac1ba3524c8c48f7ee1834357821fa85478c Mon Sep 17 00:00:00 2001 From: Priscila Oliveira Date: Thu, 24 Jul 2025 08:51:49 +0200 Subject: [PATCH 1/9] feat: Add PlayStation getting started doc --- .../console/playstation.tsx | 82 +++++++++++++++---- 1 file changed, 65 insertions(+), 17 deletions(-) diff --git a/static/app/gettingStartedDocs/console/playstation.tsx b/static/app/gettingStartedDocs/console/playstation.tsx index 91f74f0985c3be..84774edb178950 100644 --- a/static/app/gettingStartedDocs/console/playstation.tsx +++ b/static/app/gettingStartedDocs/console/playstation.tsx @@ -1,5 +1,7 @@ import {Button} from 'sentry/components/core/button'; import {ExternalLink} from 'sentry/components/core/link'; +import List from 'sentry/components/list'; +import ListItem from 'sentry/components/list/listItem'; import { type Docs, type OnboardingConfig, @@ -16,7 +18,7 @@ const onboarding: OnboardingConfig = { { type: 'text', text: tct( - 'Our [sentryPlayStationLink:Sentry PlayStation SDK] extends the core [sentryNativeLink:sentry-native] library with PlayStation-specific implementations for standalone engines and proprietary game engines.', + 'Our [sentryPlayStationLink:Sentry PlayStation SDK] extends the core [sentryNativeLink:sentry-native] library with PlayStation-specific implementations and is designed to work across standalone engines, Unreal Engine, and Unity.', { code: , sentryPlayStationLink: ( @@ -33,12 +35,9 @@ const onboarding: OnboardingConfig = { alertType: 'warning', icon: , text: tct( - '[strong:Access Restricted]. The PlayStation SDK is distributed through a [privateRepositoryLink:private repository] under NDA.', + '[strong:Access Restricted]. The PlayStation SDK is distributed through a private repository under NDA.', { strong: , - privateRepositoryLink: ( - - ), } ), showIcon: true, @@ -51,7 +50,7 @@ const onboarding: OnboardingConfig = { { type: 'text', text: t( - 'Once the access is granted, you can proceed with the SDK integration.' + 'Once you have access, the private repository contains complete instructions for building and integrating the SDK with your engine of choice.' ), }, ], @@ -63,13 +62,55 @@ const onboarding: OnboardingConfig = { content: [ { type: 'text', - text: tct( - 'The [privateRepositoryLink:private repository] contains complete setup instructions and configuration examples in the sample folder. Here is a basic example of how to initialize the SDK:', - { - privateRepositoryLink: ( - - ), - } + text: t( + 'The SDK supports multiple integration paths depending on your engine:' + ), + }, + { + type: 'custom', + content: ( + + + {tct( + '[strong:Standalone] - engine agostic, pure sentry-native to be used, for example, on proprietary game engines', + {strong: } + )} + + + {tct( + '[strong:Unreal Engine] - as the extension to [sentryUnrealLink:sentry-unreal] on ps5', + { + strong: , + sentryUnrealLink: ( + + ), + } + )} + + + {tct( + '[strong:Unity] - as the extension to [sentryUnityLink:sentry-unity] on ps5', + { + strong: , + sentryUnityLink: ( + + ), + } + )} + + + ), + }, + { + type: 'text', + text: t( + 'Please follow the PlayStation-specific integration instructions for your engine in the private repository.' + ), + }, + { + type: 'text', + text: t( + "Here's a minimal example of initializing the SDK in a standalone setup:" ), }, { @@ -81,10 +122,11 @@ const onboarding: OnboardingConfig = { int main(void) { sentry_options_t *options = sentry_options_new(); sentry_options_set_dsn(options, "${params.dsn.public}"); + // This is also the default-path. For further information and recommendations: + // https://docs.sentry.io/platforms/native/configuration/options/#database-path + sentry_options_set_database_path(options, ".sentry-native"); sentry_options_set_release(options, "my-project-name@2.3.12"); sentry_options_set_debug(options, 1); - // Example of PlayStation-specific configuration options - // (including database path) are available in the sample folder of the private repository. sentry_init(options); /* ... */ @@ -118,8 +160,14 @@ sentry_capture_event(sentry_value_new_message_event( }, { type: 'text', - text: t( - 'After sending this test event, you should see it appear in your Sentry dashboard, confirming that the PlayStation integration is working correctly.' + text: tct( + "Alternatively, if you're using [code:Unreal] or [code:Unity], refer to the engine-specific PlayStation instructions in the [privateRepositoryLink:private repository] for details on how to trigger and verify events", + { + code: , + privateRepositoryLink: ( + + ), + } ), }, ], From c9c6745bde77ce2119c6d148ab62657d405eb7f8 Mon Sep 17 00:00:00 2001 From: Priscila Oliveira Date: Fri, 25 Jul 2025 13:18:02 +0200 Subject: [PATCH 2/9] feat: Add getting started doc for Nintendo Switch --- .../console/nintendo-switch.tsx | 177 ++++++++++++++++++ 1 file changed, 177 insertions(+) create mode 100644 static/app/gettingStartedDocs/console/nintendo-switch.tsx diff --git a/static/app/gettingStartedDocs/console/nintendo-switch.tsx b/static/app/gettingStartedDocs/console/nintendo-switch.tsx new file mode 100644 index 00000000000000..12c7f778656fb4 --- /dev/null +++ b/static/app/gettingStartedDocs/console/nintendo-switch.tsx @@ -0,0 +1,177 @@ +import {openPrivateGamingSdkAccessModal} from 'sentry/actionCreators/modal'; +import {Button} from 'sentry/components/core/button'; +import {ExternalLink} from 'sentry/components/core/link'; +import List from 'sentry/components/list'; +import ListItem from 'sentry/components/list/listItem'; +import { + type Docs, + type OnboardingConfig, + StepType, +} from 'sentry/components/onboarding/gettingStartedDoc/types'; +import {IconLock} from 'sentry/icons/iconLock'; +import {t, tct} from 'sentry/locale'; + +const onboarding: OnboardingConfig = { + install: params => [ + { + type: StepType.INSTALL, + content: [ + { + type: 'text', + text: tct( + 'Our [sentrySwitchLink:Sentry Switch SDK] extends the core [sentryNativeLink:sentry-native] library with Nintendo Switch specific implementations and is designed to work across standalone engines and proprietary game engines.', + { + code: , + sentrySwitchLink: ( + + ), + sentryNativeLink: ( + + ), + } + ), + }, + { + type: 'alert', + alertType: 'warning', + icon: , + text: tct( + '[strong:Access Restricted]. The Switch SDK is distributed through a private repository under NDA.', + { + strong: , + } + ), + showIcon: true, + trailingItems: ( + + ), + }, + { + type: 'text', + text: t( + 'Once the access is granted, you can proceed with the SDK integration.' + ), + }, + ], + }, + ], + configure: params => [ + { + type: StepType.CONFIGURE, + content: [ + { + type: 'text', + text: tct( + 'After building the SDK, you can integrate it as a static library into your game. The SDK handles crash reporting automatically, with crash context forwarded to Sentry via CRPortal.', + { + code: , + } + ), + }, + { + type: 'text', + text: t( + 'The SDK also supports sending additional runtime events, which requires:' + ), + }, + { + type: 'custom', + content: ( + + + {tct( + 'Providing a valid [strong:database path] via [code:sentry_options_set_database_path()]', + {code: , strong: } + )} + + + {tct( + 'Ensuring [strong:network access] is properly initialized and providing a thread-safe network request callback', + {code: , strong: } + )} + + + ), + }, + { + type: 'text', + text: tct( + 'The [privateRepositoryLink:private repository] contains complete setup instructions and configuration examples in the sample folder. Here is a basic example of how to initialize the SDK:', + { + privateRepositoryLink: ( + + ), + } + ), + }, + { + type: 'code', + language: 'c', + code: ` +#include + +int main(void) { + sentry_options_t *options = sentry_options_new(); + sentry_options_set_dsn(options, "${params.dsn.public}"); + sentry_options_set_database_path(options, "/your/cache/path"); + sentry_options_set_network_connect_func(options, &SubmitNetworkRequestThreadSafe); + + // Initialize network access (platform-specific) + // See private repository for Nintendo Switch specific implementation + + sentry_init(options); +} +`, + }, + ], + }, + ], + verify: () => [ + { + type: StepType.VERIFY, + content: [ + { + type: 'text', + text: t( + 'Once integrated, verify that your Sentry integration is working correctly by sending a test event:' + ), + }, + { + type: 'code', + language: 'c', + code: ` +sentry_capture_event(sentry_value_new_message_event( + /* level */ SENTRY_LEVEL_INFO, + /* logger */ "custom", + /* message */ "It works!" +));`, + }, + { + type: 'text', + text: t( + 'After sending this test event, you should see it appear in your Sentry dashboard, confirming that the Nintendo Switch integration is working correctly.' + ), + }, + ], + }, + ], +}; + +const docs: Docs = { + onboarding, +}; + +export default docs; From 5b807705589250375edade7b0d51ada414e04c7a Mon Sep 17 00:00:00 2001 From: Priscila Oliveira Date: Fri, 25 Jul 2025 13:23:47 +0200 Subject: [PATCH 3/9] This is an empty commit From 8424d35ca68d3900a7754bfc092bac3a10ed2f42 Mon Sep 17 00:00:00 2001 From: Priscila Oliveira Date: Fri, 25 Jul 2025 13:28:18 +0200 Subject: [PATCH 4/9] remove other configs --- .../app/gettingStartedDocs/console/nintendo-switch.tsx | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/static/app/gettingStartedDocs/console/nintendo-switch.tsx b/static/app/gettingStartedDocs/console/nintendo-switch.tsx index 12c7f778656fb4..a6453c3432becd 100644 --- a/static/app/gettingStartedDocs/console/nintendo-switch.tsx +++ b/static/app/gettingStartedDocs/console/nintendo-switch.tsx @@ -126,12 +126,9 @@ const onboarding: OnboardingConfig = { int main(void) { sentry_options_t *options = sentry_options_new(); sentry_options_set_dsn(options, "${params.dsn.public}"); - sentry_options_set_database_path(options, "/your/cache/path"); - sentry_options_set_network_connect_func(options, &SubmitNetworkRequestThreadSafe); - - // Initialize network access (platform-specific) - // See private repository for Nintendo Switch specific implementation - + // Example of Nintendo Switch-specific configuration options + // (including database path) are available in + // the sample folder of the private repository sentry_init(options); } `, From f9b78e470530d0f439df795764b367257b6347ef Mon Sep 17 00:00:00 2001 From: Priscila Oliveira Date: Fri, 25 Jul 2025 13:29:23 +0200 Subject: [PATCH 5/9] improve copy --- static/app/gettingStartedDocs/console/nintendo-switch.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/static/app/gettingStartedDocs/console/nintendo-switch.tsx b/static/app/gettingStartedDocs/console/nintendo-switch.tsx index a6453c3432becd..e5ec01af1afb41 100644 --- a/static/app/gettingStartedDocs/console/nintendo-switch.tsx +++ b/static/app/gettingStartedDocs/console/nintendo-switch.tsx @@ -19,7 +19,7 @@ const onboarding: OnboardingConfig = { { type: 'text', text: tct( - 'Our [sentrySwitchLink:Sentry Switch SDK] extends the core [sentryNativeLink:sentry-native] library with Nintendo Switch specific implementations and is designed to work across standalone engines and proprietary game engines.', + 'Our [sentrySwitchLink:Sentry Switch SDK] extends the core [sentryNativeLink:sentry-native] library with Nintendo Switch-specific implementations and is designed to work across standalone engines and proprietary game engines.', { code: , sentrySwitchLink: ( From 519b2be33fd3ce2c7fab63db426bc1121bf2ed77 Mon Sep 17 00:00:00 2001 From: Priscila Oliveira Date: Fri, 25 Jul 2025 13:33:14 +0200 Subject: [PATCH 6/9] remove code --- static/app/gettingStartedDocs/console/nintendo-switch.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/static/app/gettingStartedDocs/console/nintendo-switch.tsx b/static/app/gettingStartedDocs/console/nintendo-switch.tsx index e5ec01af1afb41..fffd624decf866 100644 --- a/static/app/gettingStartedDocs/console/nintendo-switch.tsx +++ b/static/app/gettingStartedDocs/console/nintendo-switch.tsx @@ -21,7 +21,6 @@ const onboarding: OnboardingConfig = { text: tct( 'Our [sentrySwitchLink:Sentry Switch SDK] extends the core [sentryNativeLink:sentry-native] library with Nintendo Switch-specific implementations and is designed to work across standalone engines and proprietary game engines.', { - code: , sentrySwitchLink: ( ), From b80df8cc6ea8f4b7fd9715ceeb82b0716776f3e9 Mon Sep 17 00:00:00 2001 From: Priscila Oliveira Date: Mon, 28 Jul 2025 08:43:21 +0200 Subject: [PATCH 7/9] remove modal for now --- static/app/gettingStartedDocs/console/playstation.tsx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/static/app/gettingStartedDocs/console/playstation.tsx b/static/app/gettingStartedDocs/console/playstation.tsx index 84774edb178950..cca388aeb5815a 100644 --- a/static/app/gettingStartedDocs/console/playstation.tsx +++ b/static/app/gettingStartedDocs/console/playstation.tsx @@ -42,7 +42,13 @@ const onboarding: OnboardingConfig = { ), showIcon: true, trailingItems: ( - ), From f44eeb719ded01135f2ee77fd3278e270ee6fd50 Mon Sep 17 00:00:00 2001 From: Priscila Oliveira Date: Mon, 28 Jul 2025 08:45:46 +0200 Subject: [PATCH 8/9] revert playstation --- static/app/gettingStartedDocs/console/playstation.tsx | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/static/app/gettingStartedDocs/console/playstation.tsx b/static/app/gettingStartedDocs/console/playstation.tsx index cca388aeb5815a..84774edb178950 100644 --- a/static/app/gettingStartedDocs/console/playstation.tsx +++ b/static/app/gettingStartedDocs/console/playstation.tsx @@ -42,13 +42,7 @@ const onboarding: OnboardingConfig = { ), showIcon: true, trailingItems: ( - ), From d936fc14eadbdaf97744beee0873db9acb120717 Mon Sep 17 00:00:00 2001 From: Priscila Oliveira Date: Mon, 28 Jul 2025 08:53:13 +0200 Subject: [PATCH 9/9] fix errors --- .../console/nintendo-switch.tsx | 16 +--- .../console/playstation.tsx | 82 ++++--------------- 2 files changed, 19 insertions(+), 79 deletions(-) diff --git a/static/app/gettingStartedDocs/console/nintendo-switch.tsx b/static/app/gettingStartedDocs/console/nintendo-switch.tsx index fffd624decf866..e784cd859c34d4 100644 --- a/static/app/gettingStartedDocs/console/nintendo-switch.tsx +++ b/static/app/gettingStartedDocs/console/nintendo-switch.tsx @@ -1,4 +1,3 @@ -import {openPrivateGamingSdkAccessModal} from 'sentry/actionCreators/modal'; import {Button} from 'sentry/components/core/button'; import {ExternalLink} from 'sentry/components/core/link'; import List from 'sentry/components/list'; @@ -12,7 +11,7 @@ import {IconLock} from 'sentry/icons/iconLock'; import {t, tct} from 'sentry/locale'; const onboarding: OnboardingConfig = { - install: params => [ + install: () => [ { type: StepType.INSTALL, content: [ @@ -42,18 +41,7 @@ const onboarding: OnboardingConfig = { ), showIcon: true, trailingItems: ( - ), diff --git a/static/app/gettingStartedDocs/console/playstation.tsx b/static/app/gettingStartedDocs/console/playstation.tsx index 84774edb178950..91f74f0985c3be 100644 --- a/static/app/gettingStartedDocs/console/playstation.tsx +++ b/static/app/gettingStartedDocs/console/playstation.tsx @@ -1,7 +1,5 @@ import {Button} from 'sentry/components/core/button'; import {ExternalLink} from 'sentry/components/core/link'; -import List from 'sentry/components/list'; -import ListItem from 'sentry/components/list/listItem'; import { type Docs, type OnboardingConfig, @@ -18,7 +16,7 @@ const onboarding: OnboardingConfig = { { type: 'text', text: tct( - 'Our [sentryPlayStationLink:Sentry PlayStation SDK] extends the core [sentryNativeLink:sentry-native] library with PlayStation-specific implementations and is designed to work across standalone engines, Unreal Engine, and Unity.', + 'Our [sentryPlayStationLink:Sentry PlayStation SDK] extends the core [sentryNativeLink:sentry-native] library with PlayStation-specific implementations for standalone engines and proprietary game engines.', { code: , sentryPlayStationLink: ( @@ -35,9 +33,12 @@ const onboarding: OnboardingConfig = { alertType: 'warning', icon: , text: tct( - '[strong:Access Restricted]. The PlayStation SDK is distributed through a private repository under NDA.', + '[strong:Access Restricted]. The PlayStation SDK is distributed through a [privateRepositoryLink:private repository] under NDA.', { strong: , + privateRepositoryLink: ( + + ), } ), showIcon: true, @@ -50,7 +51,7 @@ const onboarding: OnboardingConfig = { { type: 'text', text: t( - 'Once you have access, the private repository contains complete instructions for building and integrating the SDK with your engine of choice.' + 'Once the access is granted, you can proceed with the SDK integration.' ), }, ], @@ -62,55 +63,13 @@ const onboarding: OnboardingConfig = { content: [ { type: 'text', - text: t( - 'The SDK supports multiple integration paths depending on your engine:' - ), - }, - { - type: 'custom', - content: ( - - - {tct( - '[strong:Standalone] - engine agostic, pure sentry-native to be used, for example, on proprietary game engines', - {strong: } - )} - - - {tct( - '[strong:Unreal Engine] - as the extension to [sentryUnrealLink:sentry-unreal] on ps5', - { - strong: , - sentryUnrealLink: ( - - ), - } - )} - - - {tct( - '[strong:Unity] - as the extension to [sentryUnityLink:sentry-unity] on ps5', - { - strong: , - sentryUnityLink: ( - - ), - } - )} - - - ), - }, - { - type: 'text', - text: t( - 'Please follow the PlayStation-specific integration instructions for your engine in the private repository.' - ), - }, - { - type: 'text', - text: t( - "Here's a minimal example of initializing the SDK in a standalone setup:" + text: tct( + 'The [privateRepositoryLink:private repository] contains complete setup instructions and configuration examples in the sample folder. Here is a basic example of how to initialize the SDK:', + { + privateRepositoryLink: ( + + ), + } ), }, { @@ -122,11 +81,10 @@ const onboarding: OnboardingConfig = { int main(void) { sentry_options_t *options = sentry_options_new(); sentry_options_set_dsn(options, "${params.dsn.public}"); - // This is also the default-path. For further information and recommendations: - // https://docs.sentry.io/platforms/native/configuration/options/#database-path - sentry_options_set_database_path(options, ".sentry-native"); sentry_options_set_release(options, "my-project-name@2.3.12"); sentry_options_set_debug(options, 1); + // Example of PlayStation-specific configuration options + // (including database path) are available in the sample folder of the private repository. sentry_init(options); /* ... */ @@ -160,14 +118,8 @@ sentry_capture_event(sentry_value_new_message_event( }, { type: 'text', - text: tct( - "Alternatively, if you're using [code:Unreal] or [code:Unity], refer to the engine-specific PlayStation instructions in the [privateRepositoryLink:private repository] for details on how to trigger and verify events", - { - code: , - privateRepositoryLink: ( - - ), - } + text: t( + 'After sending this test event, you should see it appear in your Sentry dashboard, confirming that the PlayStation integration is working correctly.' ), }, ],