+> = {}): LayoutProps['steps'] => [
{
type: StepType.INSTALL,
description: t('Install the SDK via Gradle, Maven, or SBT:'),
@@ -33,6 +34,7 @@ export const steps = ({
configurations: [
{
language: 'groovy',
+ partialLoading: sourcePackageRegistries?.isLoading,
description: (
{tct('For Gradle, add to your [code:build.gradle] file:', {
@@ -48,12 +50,17 @@ repositories {
// Add Sentry's SDK as a dependency.
dependencies {
- implementation 'io.sentry:sentry:6.27.0'
+ implementation 'io.sentry:sentry:${
+ sourcePackageRegistries?.isLoading
+ ? t('\u2026loading')
+ : sourcePackageRegistries?.data?.['sentry.java']?.version ?? '6.27.0'
+ }'
}
`,
},
{
language: 'groovy',
+ partialLoading: sourcePackageRegistries?.isLoading,
description: t(
'To upload your source code to Sentry so it can be shown in stack traces, use our Gradle plugin.'
),
@@ -65,7 +72,12 @@ buildscript {
}
plugins {
- id "io.sentry.jvm.gradle" version "3.11.1"
+ id "io.sentry.jvm.gradle" version "${
+ sourcePackageRegistries?.isLoading
+ ? t('\u2026loading')
+ : sourcePackageRegistries?.data?.['sentry.java.android.gradle-plugin']?.version ??
+ '3.11.1'
+ }"
}
sentry {
@@ -87,6 +99,7 @@ sentry {
configurations: [
{
language: 'xml',
+ partialLoading: sourcePackageRegistries?.isLoading,
description: (
{tct('For Maven, add to your [code:pom.xml] file:', {code:
})}
@@ -96,12 +109,17 @@ sentry {
io.sentry
sentry
- 6.27.0
+ ${
+ sourcePackageRegistries?.isLoading
+ ? t('\u2026loading')
+ : sourcePackageRegistries?.data?.['sentry.java']?.version ?? '6.27.0'
+ }
`,
},
{
language: 'xml',
+ partialLoading: sourcePackageRegistries?.isLoading,
description: t(
'To upload your source code to Sentry so it can be shown in stack traces, use our Maven plugin.'
),
@@ -111,7 +129,11 @@ sentry {
io.sentry
sentry-maven-plugin
- 0.0.3
+ ${
+ sourcePackageRegistries?.isLoading
+ ? t('\u2026loading')
+ : sourcePackageRegistries?.data?.['sentry.java.mavenplugin']?.version ?? '0.0.3'
+ }
true
@@ -154,7 +176,12 @@ sentry {
{
description: {tct('For [strong:SBT]:', {strong: })}
,
language: 'scala',
- code: `libraryDependencies += "io.sentry" % "sentry" % "6.27.0"`,
+ partialLoading: sourcePackageRegistries?.isLoading,
+ code: `libraryDependencies += "io.sentry" % "sentry" % "${
+ sourcePackageRegistries?.isLoading
+ ? t('\u2026loading')
+ : sourcePackageRegistries?.data?.['sentry.java']?.version ?? '6.27.0'
+ }"`,
},
],
},
@@ -276,8 +303,18 @@ transaction.finish();
];
// Configuration End
-export function GettingStartedWithJava({dsn, ...props}: ModuleProps) {
- return ;
+export function GettingStartedWithJava({
+ dsn,
+ sourcePackageRegistries,
+ ...props
+}: ModuleProps) {
+ return (
+
+ );
}
export default GettingStartedWithJava;
diff --git a/static/app/gettingStartedDocs/java/log4j2.tsx b/static/app/gettingStartedDocs/java/log4j2.tsx
index 12ec2ee1062b68..a34e47ca4de5d5 100644
--- a/static/app/gettingStartedDocs/java/log4j2.tsx
+++ b/static/app/gettingStartedDocs/java/log4j2.tsx
@@ -24,9 +24,10 @@ const introduction = (
export const steps = ({
dsn,
-}: {
- dsn?: string;
-} = {}): LayoutProps['steps'] => [
+ sourcePackageRegistries,
+}: Partial<
+ Pick
+> = {}): LayoutProps['steps'] => [
{
type: StepType.INSTALL,
description: t(
@@ -38,16 +39,22 @@ export const steps = ({
configurations: [
{
language: 'xml',
+ partialLoading: sourcePackageRegistries?.isLoading,
code: `
io.sentry
sentry-log4j2
- 6.27.0
+ ${
+ sourcePackageRegistries?.isLoading
+ ? t('\u2026loading')
+ : sourcePackageRegistries?.data?.['sentry.java.log4j2']?.version ?? '6.27.0'
+ }
`,
},
{
language: 'xml',
+ partialLoading: sourcePackageRegistries?.isLoading,
description: t(
'To upload your source code to Sentry so it can be shown in stack traces, use our Maven plugin.'
),
@@ -57,7 +64,11 @@ export const steps = ({
io.sentry
sentry-maven-plugin
- 0.0.3
+ ${
+ sourcePackageRegistries?.isLoading
+ ? t('\u2026loading')
+ : sourcePackageRegistries?.data?.['sentry.java.mavenplugin']?.version ?? '0.0.3'
+ }
true
@@ -99,7 +110,13 @@ export const steps = ({
configurations: [
{
language: 'groovy',
- code: "implementation 'io.sentry:sentry-log4j2:6.27.0'",
+ partialLoading: sourcePackageRegistries?.isLoading,
+ code: `implementation 'io.sentry:sentry-log4j2:${
+ sourcePackageRegistries?.isLoading
+ ? t('\u2026loading')
+ : sourcePackageRegistries?.data?.['sentry.java.log4j2']?.version ??
+ '6.27.0'
+ }'`,
},
{
description: t(
@@ -114,7 +131,12 @@ buildscript {
}
plugins {
- id "io.sentry.jvm.gradle" version "3.11.1"
+ id "io.sentry.jvm.gradle" version "${
+ sourcePackageRegistries?.isLoading
+ ? t('\u2026loading')
+ : sourcePackageRegistries?.data?.['sentry.java.android.gradle-plugin']?.version ??
+ '3.11.1'
+ }"
}
sentry {
@@ -268,8 +290,18 @@ try {
];
// Configuration End
-export function GettingStartedWithLog4j2({dsn, ...props}: ModuleProps) {
- return ;
+export function GettingStartedWithLog4j2({
+ dsn,
+ sourcePackageRegistries,
+ ...props
+}: ModuleProps) {
+ return (
+
+ );
}
export default GettingStartedWithLog4j2;
diff --git a/static/app/gettingStartedDocs/java/logback.tsx b/static/app/gettingStartedDocs/java/logback.tsx
index cbf6ab2711416f..93ac2e1dd78983 100644
--- a/static/app/gettingStartedDocs/java/logback.tsx
+++ b/static/app/gettingStartedDocs/java/logback.tsx
@@ -22,9 +22,10 @@ const introduction = (
export const steps = ({
dsn,
-}: {
- dsn?: string;
-} = {}): LayoutProps['steps'] => [
+ sourcePackageRegistries,
+}: Partial<
+ Pick
+> = {}): LayoutProps['steps'] => [
{
type: StepType.INSTALL,
description: t(
@@ -36,16 +37,22 @@ export const steps = ({
configurations: [
{
language: 'xml',
+ partialLoading: sourcePackageRegistries?.isLoading,
code: `
io.sentry
sentry-logback
- 6.27.0
+ ${
+ sourcePackageRegistries?.isLoading
+ ? t('\u2026loading')
+ : sourcePackageRegistries?.data?.['sentry.java.logback']?.version ?? '6.27.0'
+ }
`,
},
{
language: 'xml',
+ partialLoading: sourcePackageRegistries?.isLoading,
description: t(
'To upload your source code to Sentry so it can be shown in stack traces, use our Maven plugin.'
),
@@ -55,7 +62,11 @@ export const steps = ({
io.sentry
sentry-maven-plugin
- 0.0.3
+ ${
+ sourcePackageRegistries?.isLoading
+ ? t('\u2026loading')
+ : sourcePackageRegistries?.data?.['sentry.java.mavenplugin']?.version ?? '0.0.3'
+ }
true
@@ -97,13 +108,20 @@ export const steps = ({
configurations: [
{
language: 'groovy',
- code: "implementation 'io.sentry:sentry-logback:6.27.0'",
+ partialLoading: sourcePackageRegistries?.isLoading,
+ code: `implementation 'io.sentry:sentry-logback:${
+ sourcePackageRegistries?.isLoading
+ ? t('\u2026loading')
+ : sourcePackageRegistries?.data?.['sentry.java.logback']?.version ??
+ '6.27.0'
+ }'`,
},
{
description: t(
'To upload your source code to Sentry so it can be shown in stack traces, use our Maven plugin.'
),
language: 'groovy',
+ partialLoading: sourcePackageRegistries?.isLoading,
code: `
buildscript {
repositories {
@@ -112,7 +130,12 @@ buildscript {
}
plugins {
- id "io.sentry.jvm.gradle" version "3.11.1"
+ id "io.sentry.jvm.gradle" version "${
+ sourcePackageRegistries?.isLoading
+ ? t('\u2026loading')
+ : sourcePackageRegistries?.data?.['sentry.java.android.gradle-plugin']?.version ??
+ '3.11.1'
+ }"
}
sentry {
@@ -274,8 +297,18 @@ try {
];
// Configuration End
-export function GettingStartedWithLogBack({dsn, ...props}: ModuleProps) {
- return ;
+export function GettingStartedWithLogBack({
+ dsn,
+ sourcePackageRegistries,
+ ...props
+}: ModuleProps) {
+ return (
+
+ );
}
export default GettingStartedWithLogBack;
diff --git a/static/app/gettingStartedDocs/java/spring-boot.tsx b/static/app/gettingStartedDocs/java/spring-boot.tsx
index 716b919563e486..03ed39e529cd54 100644
--- a/static/app/gettingStartedDocs/java/spring-boot.tsx
+++ b/static/app/gettingStartedDocs/java/spring-boot.tsx
@@ -29,9 +29,10 @@ const introduction = (
export const steps = ({
dsn,
-}: {
- dsn?: string;
-} = {}): LayoutProps['steps'] => [
+ sourcePackageRegistries,
+}: Partial<
+ Pick
+> = {}): LayoutProps['steps'] => [
{
type: StepType.INSTALL,
description: t('Install using either Maven or Gradle:'),
@@ -41,23 +42,34 @@ export const steps = ({
configurations: [
{
language: 'xml',
+ partialLoading: sourcePackageRegistries?.isLoading,
description: {t('Spring Boot 2')},
code: `
io.sentry
sentry-spring-boot-starter
- 6.27.0
+ ${
+ sourcePackageRegistries?.isLoading
+ ? t('\u2026loading')
+ : sourcePackageRegistries?.data?.['sentry.java.spring-boot']?.version ?? '6.27.0'
+ }
`,
},
{
language: 'xml',
+ partialLoading: sourcePackageRegistries?.isLoading,
description: {t('Spring Boot 3')},
code: `
io.sentry
sentry-spring-boot-starter-jakarta
- 6.27.0
+ ${
+ sourcePackageRegistries?.isLoading
+ ? t('\u2026loading')
+ : sourcePackageRegistries?.data?.['sentry.java.spring-boot.jakarta']?.version ??
+ '6.27.0'
+ }
`,
},
@@ -69,12 +81,24 @@ export const steps = ({
{
language: 'properties',
description: {t('Spring Boot 2')},
- code: "implementation 'io.sentry:sentry-spring-boot-starter:6.27.0'",
+ partialLoading: sourcePackageRegistries?.isLoading,
+ code: `implementation 'io.sentry:sentry-spring-boot-starter:${
+ sourcePackageRegistries?.isLoading
+ ? t('\u2026loading')
+ : sourcePackageRegistries?.data?.['sentry.java.spring-boot']?.version ??
+ '6.27.0'
+ }'`,
},
{
language: 'properties',
+ partialLoading: sourcePackageRegistries?.isLoading,
description: {t('Spring Boot 3')},
- code: "implementation 'io.sentry:sentry-spring-boot-starter-jakarta:6.27.0'",
+ code: `implementation 'io.sentry:sentry-spring-boot-starter-jakarta:${
+ sourcePackageRegistries?.isLoading
+ ? t('\u2026loading')
+ : sourcePackageRegistries?.data?.['sentry.java.spring-boot.jakarta']
+ ?.version ?? '6.27.0'
+ }'`,
},
],
},
@@ -136,7 +160,11 @@ sentry:
io.sentry
sentry-logback
- 6.27.0
+ ${
+ sourcePackageRegistries?.isLoading
+ ? t('\u2026loading')
+ : sourcePackageRegistries?.data?.['sentry.java.logback']?.version ?? '6.27.0'
+ }
`,
},
@@ -151,7 +179,11 @@ sentry:
io.sentry
sentry-maven-plugin
- 0.0.3
+ ${
+ sourcePackageRegistries?.isLoading
+ ? t('\u2026loading')
+ : sourcePackageRegistries?.data?.['sentry.java.mavenplugin']?.version ?? '0.0.3'
+ }
true
@@ -193,7 +225,13 @@ sentry:
configurations: [
{
language: 'properties',
- code: "implementation 'io.sentry:sentry-logback:6.27.0'",
+ partialLoading: sourcePackageRegistries?.isLoading,
+ code: `implementation 'io.sentry:sentry-logback:${
+ sourcePackageRegistries?.isLoading
+ ? t('\u2026loading')
+ : sourcePackageRegistries?.data?.['sentry.java.logback']?.version ??
+ '6.27.0'
+ }'`,
},
{
language: 'javascript', // TODO: This shouldn't be javascript but because of better formatting we use it for now
@@ -208,7 +246,12 @@ buildscript {
}
plugins {
- id "io.sentry.jvm.gradle" version "3.11.1"
+ id "io.sentry.jvm.gradle" version "${
+ sourcePackageRegistries?.isLoading
+ ? t('\u2026loading')
+ : sourcePackageRegistries?.data?.['sentry.java.android.gradle-plugin']?.version ??
+ '3.11.1'
+ }"
}
sentry {
@@ -383,8 +426,18 @@ class PersonService {
];
// Configuration End
-export function GettingStartedWithSpringBoot({dsn, ...props}: ModuleProps) {
- return ;
+export function GettingStartedWithSpringBoot({
+ dsn,
+ sourcePackageRegistries,
+ ...props
+}: ModuleProps) {
+ return (
+
+ );
}
export default GettingStartedWithSpringBoot;
diff --git a/static/app/gettingStartedDocs/java/spring.tsx b/static/app/gettingStartedDocs/java/spring.tsx
index d2273f41f82408..1db921c506ac1a 100644
--- a/static/app/gettingStartedDocs/java/spring.tsx
+++ b/static/app/gettingStartedDocs/java/spring.tsx
@@ -28,9 +28,10 @@ const introduction = (
export const steps = ({
dsn,
-}: {
- dsn?: string;
-} = {}): LayoutProps['steps'] => [
+ sourcePackageRegistries,
+}: Partial<
+ Pick
+> = {}): LayoutProps['steps'] => [
{
type: StepType.INSTALL,
description: t(
@@ -42,23 +43,33 @@ export const steps = ({
configurations: [
{
language: 'xml',
+ partialLoading: sourcePackageRegistries?.isLoading,
description: {t('Spring 5')},
code: `
io.sentry
sentry-spring
- 6.27.0
+ ${
+ sourcePackageRegistries?.isLoading
+ ? t('\u2026loading')
+ : sourcePackageRegistries?.data?.['sentry.java.spring']?.version ?? '6.27.0'
+ }
`,
},
{
language: 'xml',
+ partialLoading: sourcePackageRegistries?.isLoading,
description: {t('Spring 6')},
code: `
io.sentry
sentry-spring-jakarta
- 6.27.0
+ ${
+ sourcePackageRegistries?.isLoading
+ ? t('\u2026loading')
+ : sourcePackageRegistries?.data?.['sentry.java.spring.jakarta']?.version ?? '6.27.0'
+ }
`,
},
@@ -155,6 +166,7 @@ import org.springframework.core.Ordered
configurations: [
{
language: 'xml',
+ partialLoading: sourcePackageRegistries?.isLoading,
description: t(
'To upload your source code to Sentry so it can be shown in stack traces, use our Maven plugin.'
),
@@ -164,7 +176,11 @@ import org.springframework.core.Ordered
io.sentry
sentry-maven-plugin
- 0.0.3
+ ${
+ sourcePackageRegistries?.isLoading
+ ? t('\u2026loading')
+ : sourcePackageRegistries?.data?.['sentry.java.mavenplugin']?.version ?? '0.0.3'
+ }
true
@@ -206,12 +222,23 @@ import org.springframework.core.Ordered
{
description: {t('Spring 5')},
language: 'groovy',
- code: `implementation 'io.sentry:sentry-spring:6.27.0'`,
+ partialLoading: sourcePackageRegistries?.isLoading,
+ code: `implementation 'io.sentry:sentry-spring:${
+ sourcePackageRegistries?.isLoading
+ ? t('\u2026loading')
+ : sourcePackageRegistries?.data?.['sentry.java.spring']?.version ??
+ '6.27.0'
+ }'`,
},
{
description: {t('Spring 6')},
language: 'groovy',
- code: `implementation 'io.sentry:sentry-spring-jakarta:6.27.0'`,
+ code: `implementation 'io.sentry:sentry-spring-jakarta:${
+ sourcePackageRegistries?.isLoading
+ ? t('\u2026loading')
+ : sourcePackageRegistries?.data?.['sentry.java.spring.jakarta']
+ ?.version ?? '6.27.0'
+ }'`,
},
],
},
@@ -272,6 +299,7 @@ try {
configurations: [
{
language: 'groovy',
+ partialLoading: sourcePackageRegistries?.isLoading,
description: t(
'To upload your source code to Sentry so it can be shown in stack traces, use our Gradle plugin.'
),
@@ -283,7 +311,12 @@ repositories {
}
plugins {
-id "io.sentry.jvm.gradle" version "3.11.1"
+id "io.sentry.jvm.gradle" version "${
+ sourcePackageRegistries?.isLoading
+ ? t('\u2026loading')
+ : sourcePackageRegistries?.data?.['sentry.java.android.gradle-plugin']
+ ?.version ?? '3.11.1'
+ }"
}
sentry {
@@ -306,10 +339,20 @@ authToken = "your-sentry-auth-token"
'For other dependency managers see the [mavenRepositorySpring5Link:central Maven repository (Spring 5)] and [mavenRepositorySpring6Link:central Maven repository (Spring 6)].',
{
mavenRepositorySpring5Link: (
-
+
),
mavenRepositorySpring6Link: (
-
+
),
}
)}
@@ -334,8 +377,18 @@ authToken = "your-sentry-auth-token"
];
// Configuration End
-export function GettingStartedWithSpring({dsn, ...props}: ModuleProps) {
- return ;
+export function GettingStartedWithSpring({
+ dsn,
+ sourcePackageRegistries,
+ ...props
+}: ModuleProps) {
+ return (
+
+ );
}
export default GettingStartedWithSpring;
diff --git a/static/app/gettingStartedDocs/kotlin/kotlin.tsx b/static/app/gettingStartedDocs/kotlin/kotlin.tsx
index abf6b8fd0edd2e..ee13cf141fc342 100644
--- a/static/app/gettingStartedDocs/kotlin/kotlin.tsx
+++ b/static/app/gettingStartedDocs/kotlin/kotlin.tsx
@@ -26,9 +26,10 @@ const introduction = (
export const steps = ({
dsn,
-}: {
- dsn?: string;
-} = {}): LayoutProps['steps'] => [
+ sourcePackageRegistries,
+}: Partial<
+ Pick
+> = {}): LayoutProps['steps'] => [
{
type: StepType.INSTALL,
description: t('Install the SDK via Gradle or Maven:'),
@@ -43,6 +44,7 @@ export const steps = ({
})}
),
+ partialLoading: sourcePackageRegistries?.isLoading,
code: `
// Make sure mavenCentral is there.
repositories {
@@ -50,12 +52,17 @@ repositories {
}
dependencies {
- implementation 'io.sentry:sentry:{{@inject packages.version('sentry.java', '4.0.0') }}'
+ implementation 'io.sentry:sentry:${
+ sourcePackageRegistries?.isLoading
+ ? t('\u2026loading')
+ : sourcePackageRegistries?.data?.['sentry.java']?.version ?? '4.0.0'
+ }'
}
`,
},
{
language: 'xml',
+ partialLoading: sourcePackageRegistries?.isLoading,
description: (
{tct('For [strong:Maven], add to your [code:pom.xml] file:', {
@@ -68,7 +75,11 @@ dependencies {
io.sentry
sentry
- 6.25.0
+ ${
+ sourcePackageRegistries?.isLoading
+ ? t('\u2026loading')
+ : sourcePackageRegistries?.data?.['sentry.java']?.version ?? '6.25.0'
+ }
`,
},
@@ -175,8 +186,18 @@ throw e
];
// Configuration End
-export function GettingStartedWithKotlin({dsn, ...props}: ModuleProps) {
- return ;
+export function GettingStartedWithKotlin({
+ dsn,
+ sourcePackageRegistries,
+ ...props
+}: ModuleProps) {
+ return (
+
+ );
}
export default GettingStartedWithKotlin;
diff --git a/static/app/gettingStartedDocs/minidump/minidump.tsx b/static/app/gettingStartedDocs/minidump/minidump.tsx
index f17f6f877338cd..976f1847cfd3a1 100644
--- a/static/app/gettingStartedDocs/minidump/minidump.tsx
+++ b/static/app/gettingStartedDocs/minidump/minidump.tsx
@@ -10,9 +10,7 @@ import {t, tct} from 'sentry/locale';
// Configuration Start
export const steps = ({
dsn,
-}: {
- dsn?: string;
-} = {}): LayoutProps['steps'] => [
+}: Partial> = {}): LayoutProps['steps'] => [
{
title: t('Creating and Uploading Minidumps'),
description: (
diff --git a/static/app/gettingStartedDocs/native/native-qt.tsx b/static/app/gettingStartedDocs/native/native-qt.tsx
index 3ed24a76068f5a..0cc964de8d79d4 100644
--- a/static/app/gettingStartedDocs/native/native-qt.tsx
+++ b/static/app/gettingStartedDocs/native/native-qt.tsx
@@ -9,9 +9,7 @@ import {t, tct} from 'sentry/locale';
// Configuration Start
export const steps = ({
dsn,
-}: {
- dsn?: string;
-} = {}): LayoutProps['steps'] => [
+}: Partial> = {}): LayoutProps['steps'] => [
{
type: StepType.INSTALL,
description: (
diff --git a/static/app/gettingStartedDocs/native/native.tsx b/static/app/gettingStartedDocs/native/native.tsx
index 62422470ded7e1..3f1be795fd3423 100644
--- a/static/app/gettingStartedDocs/native/native.tsx
+++ b/static/app/gettingStartedDocs/native/native.tsx
@@ -9,9 +9,7 @@ import {t, tct} from 'sentry/locale';
// Configuration Start
export const steps = ({
dsn,
-}: {
- dsn?: string;
-} = {}): LayoutProps['steps'] => [
+}: Partial> = {}): LayoutProps['steps'] => [
{
type: StepType.INSTALL,
description: (
diff --git a/static/app/gettingStartedDocs/php/laravel.tsx b/static/app/gettingStartedDocs/php/laravel.tsx
index 135856a11394f0..667b1a66f7b8b9 100644
--- a/static/app/gettingStartedDocs/php/laravel.tsx
+++ b/static/app/gettingStartedDocs/php/laravel.tsx
@@ -25,9 +25,7 @@ const introduction = (
export const steps = ({
dsn,
-}: {
- dsn?: string;
-} = {}): LayoutProps['steps'] => [
+}: Partial> = {}): LayoutProps['steps'] => [
{
type: StepType.INSTALL,
configurations: [
diff --git a/static/app/gettingStartedDocs/php/php.tsx b/static/app/gettingStartedDocs/php/php.tsx
index a0e430f050c098..db838002c3a0fd 100644
--- a/static/app/gettingStartedDocs/php/php.tsx
+++ b/static/app/gettingStartedDocs/php/php.tsx
@@ -7,9 +7,7 @@ import {t, tct} from 'sentry/locale';
// Configuration Start
export const steps = ({
dsn,
-}: {
- dsn?: string;
-} = {}): LayoutProps['steps'] => [
+}: Partial> = {}): LayoutProps['steps'] => [
{
type: StepType.INSTALL,
description: (
diff --git a/static/app/gettingStartedDocs/php/symfony.tsx b/static/app/gettingStartedDocs/php/symfony.tsx
index 512490ef56ed01..23cfae05b7dac4 100644
--- a/static/app/gettingStartedDocs/php/symfony.tsx
+++ b/static/app/gettingStartedDocs/php/symfony.tsx
@@ -18,9 +18,7 @@ const introduction = (
export const steps = ({
dsn,
-}: {
- dsn?: string;
-} = {}): LayoutProps['steps'] => [
+}: Partial> = {}): LayoutProps['steps'] => [
{
type: StepType.INSTALL,
configurations: [
diff --git a/static/app/gettingStartedDocs/python/aiohttp.tsx b/static/app/gettingStartedDocs/python/aiohttp.tsx
index 63ffc829fa01b2..acea5ca5c2cf7f 100644
--- a/static/app/gettingStartedDocs/python/aiohttp.tsx
+++ b/static/app/gettingStartedDocs/python/aiohttp.tsx
@@ -18,9 +18,7 @@ const introduction = (
export const steps = ({
dsn,
-}: {
- dsn?: string;
-} = {}): LayoutProps['steps'] => [
+}: Partial> = {}): LayoutProps['steps'] => [
{
type: StepType.INSTALL,
description: (
diff --git a/static/app/gettingStartedDocs/python/asgi.tsx b/static/app/gettingStartedDocs/python/asgi.tsx
index 182a0311216359..d4449607d68413 100644
--- a/static/app/gettingStartedDocs/python/asgi.tsx
+++ b/static/app/gettingStartedDocs/python/asgi.tsx
@@ -18,9 +18,7 @@ const introduction = (
export const steps = ({
dsn,
-}: {
- dsn?: string;
-} = {}): LayoutProps['steps'] => [
+}: Partial> = {}): LayoutProps['steps'] => [
{
type: StepType.CONFIGURE,
description: (
diff --git a/static/app/gettingStartedDocs/python/awslambda.tsx b/static/app/gettingStartedDocs/python/awslambda.tsx
index 14773afe92eeb5..f2563efc656390 100644
--- a/static/app/gettingStartedDocs/python/awslambda.tsx
+++ b/static/app/gettingStartedDocs/python/awslambda.tsx
@@ -25,9 +25,7 @@ const introduction = (
export const steps = ({
dsn,
-}: {
- dsn?: string;
-} = {}): LayoutProps['steps'] => [
+}: Partial> = {}): LayoutProps['steps'] => [
{
type: StepType.INSTALL,
description: (
diff --git a/static/app/gettingStartedDocs/python/bottle.tsx b/static/app/gettingStartedDocs/python/bottle.tsx
index 7ee4a4a08fd902..bab134199e265e 100644
--- a/static/app/gettingStartedDocs/python/bottle.tsx
+++ b/static/app/gettingStartedDocs/python/bottle.tsx
@@ -18,9 +18,7 @@ const introduction = (
export const steps = ({
dsn,
-}: {
- dsn?: string;
-} = {}): LayoutProps['steps'] => [
+}: Partial> = {}): LayoutProps['steps'] => [
{
type: StepType.INSTALL,
description: (
diff --git a/static/app/gettingStartedDocs/python/celery.tsx b/static/app/gettingStartedDocs/python/celery.tsx
index 5648d294157d60..53ebe57dea3e0a 100644
--- a/static/app/gettingStartedDocs/python/celery.tsx
+++ b/static/app/gettingStartedDocs/python/celery.tsx
@@ -17,9 +17,7 @@ const introduction = (
export const steps = ({
dsn,
-}: {
- dsn?: string;
-} = {}): LayoutProps['steps'] => [
+}: Partial> = {}): LayoutProps['steps'] => [
{
type: StepType.CONFIGURE,
description: (
diff --git a/static/app/gettingStartedDocs/python/chalice.tsx b/static/app/gettingStartedDocs/python/chalice.tsx
index dca8949a2c0846..24c1c97a6ec997 100644
--- a/static/app/gettingStartedDocs/python/chalice.tsx
+++ b/static/app/gettingStartedDocs/python/chalice.tsx
@@ -7,9 +7,7 @@ import {tct} from 'sentry/locale';
export const steps = ({
dsn,
-}: {
- dsn?: string;
-} = {}): LayoutProps['steps'] => [
+}: Partial> = {}): LayoutProps['steps'] => [
{
type: StepType.INSTALL,
description: (
diff --git a/static/app/gettingStartedDocs/python/falcon.tsx b/static/app/gettingStartedDocs/python/falcon.tsx
index 4b2b913ca8be17..e3fa713c34eebd 100644
--- a/static/app/gettingStartedDocs/python/falcon.tsx
+++ b/static/app/gettingStartedDocs/python/falcon.tsx
@@ -18,9 +18,7 @@ const introduction = (
export const steps = ({
dsn,
-}: {
- dsn?: string;
-} = {}): LayoutProps['steps'] => [
+}: Partial> = {}): LayoutProps['steps'] => [
{
type: StepType.INSTALL,
description: (
diff --git a/static/app/gettingStartedDocs/python/fastapi.tsx b/static/app/gettingStartedDocs/python/fastapi.tsx
index 965bc32ba58a0b..c8a8c3c7f0af0f 100644
--- a/static/app/gettingStartedDocs/python/fastapi.tsx
+++ b/static/app/gettingStartedDocs/python/fastapi.tsx
@@ -15,9 +15,7 @@ const introduction = (
export const steps = ({
dsn,
-}: {
- dsn?: string;
-} = {}): LayoutProps['steps'] => [
+}: Partial> = {}): LayoutProps['steps'] => [
{
type: StepType.INSTALL,
description: (
diff --git a/static/app/gettingStartedDocs/python/flask.tsx b/static/app/gettingStartedDocs/python/flask.tsx
index 339986c359adca..83ad6ba926c975 100644
--- a/static/app/gettingStartedDocs/python/flask.tsx
+++ b/static/app/gettingStartedDocs/python/flask.tsx
@@ -7,9 +7,7 @@ import {t, tct} from 'sentry/locale';
// Configuration Start
export const steps = ({
dsn,
-}: {
- dsn?: string;
-} = {}): LayoutProps['steps'] => [
+}: Partial> = {}): LayoutProps['steps'] => [
{
type: StepType.INSTALL,
description: (
diff --git a/static/app/gettingStartedDocs/python/gcpfunctions.tsx b/static/app/gettingStartedDocs/python/gcpfunctions.tsx
index fc0a73a466cc84..31a165a0698c12 100644
--- a/static/app/gettingStartedDocs/python/gcpfunctions.tsx
+++ b/static/app/gettingStartedDocs/python/gcpfunctions.tsx
@@ -12,9 +12,7 @@ import {space} from 'sentry/styles/space';
// Configuration Start
export const steps = ({
dsn,
-}: {
- dsn?: string;
-} = {}): LayoutProps['steps'] => [
+}: Partial> = {}): LayoutProps['steps'] => [
{
type: StepType.INSTALL,
description: (
diff --git a/static/app/gettingStartedDocs/python/mongo.tsx b/static/app/gettingStartedDocs/python/mongo.tsx
index 93cdd46182d8bd..30057b6ea7b36d 100644
--- a/static/app/gettingStartedDocs/python/mongo.tsx
+++ b/static/app/gettingStartedDocs/python/mongo.tsx
@@ -18,9 +18,7 @@ const introduction = (
export const steps = ({
dsn,
-}: {
- dsn?: string;
-} = {}): LayoutProps['steps'] => [
+}: Partial> = {}): LayoutProps['steps'] => [
{
type: StepType.INSTALL,
description: (
diff --git a/static/app/gettingStartedDocs/python/pylons.tsx b/static/app/gettingStartedDocs/python/pylons.tsx
index 394e3bb815a5f4..a775da153d8ede 100644
--- a/static/app/gettingStartedDocs/python/pylons.tsx
+++ b/static/app/gettingStartedDocs/python/pylons.tsx
@@ -6,9 +6,7 @@ import {t, tct} from 'sentry/locale';
// Configuration Start
export const steps = ({
dsn,
-}: {
- dsn?: string;
-} = {}): LayoutProps['steps'] => [
+}: Partial> = {}): LayoutProps['steps'] => [
{
type: StepType.INSTALL,
description: (
diff --git a/static/app/gettingStartedDocs/python/pyramid.tsx b/static/app/gettingStartedDocs/python/pyramid.tsx
index 71d389a4cbfe0f..7fb8994f8d8491 100644
--- a/static/app/gettingStartedDocs/python/pyramid.tsx
+++ b/static/app/gettingStartedDocs/python/pyramid.tsx
@@ -18,9 +18,7 @@ const introduction = (
export const steps = ({
dsn,
-}: {
- dsn?: string;
-} = {}): LayoutProps['steps'] => [
+}: Partial> = {}): LayoutProps['steps'] => [
{
type: StepType.INSTALL,
description: {tct('Install [code:sentry-sdk] from PyPI:', {code:
})}
,
diff --git a/static/app/gettingStartedDocs/python/python.tsx b/static/app/gettingStartedDocs/python/python.tsx
index 63e6db6332e1a7..ddc3e231349933 100644
--- a/static/app/gettingStartedDocs/python/python.tsx
+++ b/static/app/gettingStartedDocs/python/python.tsx
@@ -6,9 +6,7 @@ import {t, tct} from 'sentry/locale';
// Configuration Start
export const steps = ({
dsn,
-}: {
- dsn?: string;
-} = {}): LayoutProps['steps'] => [
+}: Partial> = {}): LayoutProps['steps'] => [
{
type: StepType.INSTALL,
description: (
diff --git a/static/app/gettingStartedDocs/python/quart.tsx b/static/app/gettingStartedDocs/python/quart.tsx
index d5408f0d2b47d0..9295db403c08da 100644
--- a/static/app/gettingStartedDocs/python/quart.tsx
+++ b/static/app/gettingStartedDocs/python/quart.tsx
@@ -23,9 +23,7 @@ const introduction = (
export const steps = ({
dsn,
-}: {
- dsn?: string;
-} = {}): LayoutProps['steps'] => [
+}: Partial> = {}): LayoutProps['steps'] => [
{
type: StepType.INSTALL,
description: {tct('Install [code:sentry-sdk] from PyPI:', {code:
})}
,
diff --git a/static/app/gettingStartedDocs/python/rq.tsx b/static/app/gettingStartedDocs/python/rq.tsx
index 3075e4f9448b1e..53beac47fbf502 100644
--- a/static/app/gettingStartedDocs/python/rq.tsx
+++ b/static/app/gettingStartedDocs/python/rq.tsx
@@ -15,9 +15,7 @@ const introduction = (
export const steps = ({
dsn,
-}: {
- dsn?: string;
-} = {}): LayoutProps['steps'] => [
+}: Partial> = {}): LayoutProps['steps'] => [
{
type: StepType.CONFIGURE,
description: (
diff --git a/static/app/gettingStartedDocs/python/sanic.tsx b/static/app/gettingStartedDocs/python/sanic.tsx
index c6ae52492be394..632b287b39442a 100644
--- a/static/app/gettingStartedDocs/python/sanic.tsx
+++ b/static/app/gettingStartedDocs/python/sanic.tsx
@@ -41,9 +41,7 @@ const introduction = (
export const steps = ({
dsn,
-}: {
- dsn?: string;
-} = {}): LayoutProps['steps'] => [
+}: Partial> = {}): LayoutProps['steps'] => [
{
type: StepType.INSTALL,
description: {tct('Install [code:sentry-sdk] from PyPI:', {code:
})}
,
diff --git a/static/app/gettingStartedDocs/python/serverless.tsx b/static/app/gettingStartedDocs/python/serverless.tsx
index 8fbe79a6c057cf..e8ee834185a065 100644
--- a/static/app/gettingStartedDocs/python/serverless.tsx
+++ b/static/app/gettingStartedDocs/python/serverless.tsx
@@ -14,9 +14,7 @@ import {t, tct} from 'sentry/locale';
export const steps = ({
dsn,
-}: {
- dsn?: string;
-} = {}): LayoutProps['steps'] => [
+}: Partial> = {}): LayoutProps['steps'] => [
{
type: StepType.INSTALL,
description: (
diff --git a/static/app/gettingStartedDocs/python/starlette.tsx b/static/app/gettingStartedDocs/python/starlette.tsx
index 857b250c4a325a..fbcfc06f7cee78 100644
--- a/static/app/gettingStartedDocs/python/starlette.tsx
+++ b/static/app/gettingStartedDocs/python/starlette.tsx
@@ -13,9 +13,7 @@ const introduction = tct(
);
export const steps = ({
dsn,
-}: {
- dsn?: string;
-} = {}): LayoutProps['steps'] => [
+}: Partial> = {}): LayoutProps['steps'] => [
{
type: StepType.INSTALL,
description: (
diff --git a/static/app/gettingStartedDocs/python/tornado.tsx b/static/app/gettingStartedDocs/python/tornado.tsx
index 423d85a5d98d80..3c8fa7779bce9d 100644
--- a/static/app/gettingStartedDocs/python/tornado.tsx
+++ b/static/app/gettingStartedDocs/python/tornado.tsx
@@ -18,9 +18,7 @@ const introduction = (
export const steps = ({
dsn,
-}: {
- dsn?: string;
-} = {}): LayoutProps['steps'] => [
+}: Partial> = {}): LayoutProps['steps'] => [
{
type: StepType.INSTALL,
description: {tct('Install [code:sentry-sdk] from PyPI:', {code:
})}
,
diff --git a/static/app/gettingStartedDocs/python/tryton.tsx b/static/app/gettingStartedDocs/python/tryton.tsx
index 27853d836e9963..b090a14bdb4b86 100644
--- a/static/app/gettingStartedDocs/python/tryton.tsx
+++ b/static/app/gettingStartedDocs/python/tryton.tsx
@@ -15,9 +15,7 @@ const introduction = (
export const steps = ({
dsn,
-}: {
- dsn?: string;
-} = {}): LayoutProps['steps'] => [
+}: Partial> = {}): LayoutProps['steps'] => [
{
type: StepType.CONFIGURE,
description: (
diff --git a/static/app/gettingStartedDocs/python/wsgi.tsx b/static/app/gettingStartedDocs/python/wsgi.tsx
index 3cb90fc32f21d4..7fe3b4a7f000c4 100644
--- a/static/app/gettingStartedDocs/python/wsgi.tsx
+++ b/static/app/gettingStartedDocs/python/wsgi.tsx
@@ -9,9 +9,7 @@ import {t, tct} from 'sentry/locale';
// Configuration Start
export const steps = ({
dsn,
-}: {
- dsn?: string;
-} = {}): LayoutProps['steps'] => [
+}: Partial> = {}): LayoutProps['steps'] => [
{
type: StepType.INSTALL,
description: (
diff --git a/static/app/gettingStartedDocs/react-native/react-native.tsx b/static/app/gettingStartedDocs/react-native/react-native.tsx
index 7a01a14c5ce7c4..da2983fd845f77 100644
--- a/static/app/gettingStartedDocs/react-native/react-native.tsx
+++ b/static/app/gettingStartedDocs/react-native/react-native.tsx
@@ -11,9 +11,7 @@ import {t, tct} from 'sentry/locale';
// Configuration Start
export const steps = ({
dsn,
-}: {
- dsn?: string;
-} = {}): LayoutProps['steps'] => [
+}: Partial> = {}): LayoutProps['steps'] => [
{
type: StepType.INSTALL,
description: (
diff --git a/static/app/gettingStartedDocs/ruby/rack.tsx b/static/app/gettingStartedDocs/ruby/rack.tsx
index eaa7d72cea2bfc..b6b1e53fd1a82e 100644
--- a/static/app/gettingStartedDocs/ruby/rack.tsx
+++ b/static/app/gettingStartedDocs/ruby/rack.tsx
@@ -6,9 +6,7 @@ import {tct} from 'sentry/locale';
// Configuration Start
export const steps = ({
dsn,
-}: {
- dsn?: string;
-} = {}): LayoutProps['steps'] => [
+}: Partial> = {}): LayoutProps['steps'] => [
{
type: StepType.INSTALL,
description: (
diff --git a/static/app/gettingStartedDocs/ruby/rails.tsx b/static/app/gettingStartedDocs/ruby/rails.tsx
index 896b402b7fd74a..99fa49bb758923 100644
--- a/static/app/gettingStartedDocs/ruby/rails.tsx
+++ b/static/app/gettingStartedDocs/ruby/rails.tsx
@@ -14,9 +14,7 @@ const introduction = (
);
export const steps = ({
dsn,
-}: {
- dsn?: string;
-} = {}): LayoutProps['steps'] => [
+}: Partial> = {}): LayoutProps['steps'] => [
{
type: StepType.INSTALL,
description: (
diff --git a/static/app/gettingStartedDocs/ruby/ruby.tsx b/static/app/gettingStartedDocs/ruby/ruby.tsx
index ca47af80ab46b3..ad028f6beb5dfe 100644
--- a/static/app/gettingStartedDocs/ruby/ruby.tsx
+++ b/static/app/gettingStartedDocs/ruby/ruby.tsx
@@ -6,9 +6,7 @@ import {t, tct} from 'sentry/locale';
// Configuration Start
export const steps = ({
dsn,
-}: {
- dsn?: string;
-} = {}): LayoutProps['steps'] => [
+}: Partial> = {}): LayoutProps['steps'] => [
{
type: StepType.INSTALL,
description: (
diff --git a/static/app/gettingStartedDocs/rust/rust.tsx b/static/app/gettingStartedDocs/rust/rust.tsx
index 006d344539bf26..d68643da4d5400 100644
--- a/static/app/gettingStartedDocs/rust/rust.tsx
+++ b/static/app/gettingStartedDocs/rust/rust.tsx
@@ -6,9 +6,10 @@ import {t, tct} from 'sentry/locale';
// Configuration Start
export const steps = ({
dsn,
-}: {
- dsn?: string;
-} = {}): LayoutProps['steps'] => [
+ sourcePackageRegistries,
+}: Partial<
+ Pick
+> = {}): LayoutProps['steps'] => [
{
type: StepType.INSTALL,
description: (
@@ -22,9 +23,14 @@ export const steps = ({
configurations: [
{
language: 'toml',
+ partialLoading: sourcePackageRegistries?.isLoading,
code: `
[dependencies]
-sentry = "0.31.5"
+sentry = "${
+ sourcePackageRegistries?.isLoading
+ ? t('\u2026loading')
+ : sourcePackageRegistries?.data?.['sentry.rust'] ?? '0.31.5'
+ }"
`,
},
],
@@ -76,8 +82,12 @@ fn main() {
];
// Configuration End
-export function GettingStartedWithRust({dsn, ...props}: ModuleProps) {
- return ;
+export function GettingStartedWithRust({
+ dsn,
+ sourcePackageRegistries,
+ ...props
+}: ModuleProps) {
+ return ;
}
export default GettingStartedWithRust;
diff --git a/static/app/gettingStartedDocs/unity/unity.tsx b/static/app/gettingStartedDocs/unity/unity.tsx
index ed45d80806e485..f04a9376322c2c 100644
--- a/static/app/gettingStartedDocs/unity/unity.tsx
+++ b/static/app/gettingStartedDocs/unity/unity.tsx
@@ -11,9 +11,10 @@ import {t, tct} from 'sentry/locale';
// Configuration Start
export const steps = ({
dsn,
-}: {
- dsn?: string;
-} = {}): LayoutProps['steps'] => [
+ sourcePackageRegistries,
+}: Partial<
+ Pick
+> = {}): LayoutProps['steps'] => [
{
type: StepType.INSTALL,
description: (
@@ -31,7 +32,12 @@ export const steps = ({
configurations: [
{
language: 'bash',
- code: 'https://github.com/getsentry/unity.git#1.5.0',
+ partialLoading: sourcePackageRegistries?.isLoading,
+ code: `https://github.com/getsentry/unity.git#${
+ sourcePackageRegistries?.isLoading
+ ? t('\u2026loading')
+ : sourcePackageRegistries?.data?.['sentry.dotnet.unity']?.version ?? '1.5.0'
+ }`,
},
],
additionalInfo: (
@@ -120,8 +126,12 @@ SentrySdk.CaptureMessage("Test event");
];
// Configuration End
-export function GettingStartedWithUnity({dsn, ...props}: ModuleProps) {
- return ;
+export function GettingStartedWithUnity({
+ dsn,
+ sourcePackageRegistries,
+ ...props
+}: ModuleProps) {
+ return ;
}
export default GettingStartedWithUnity;
diff --git a/static/app/gettingStartedDocs/unreal/unreal.tsx b/static/app/gettingStartedDocs/unreal/unreal.tsx
index 212bf731b48f38..474068b6cf96a3 100644
--- a/static/app/gettingStartedDocs/unreal/unreal.tsx
+++ b/static/app/gettingStartedDocs/unreal/unreal.tsx
@@ -11,9 +11,7 @@ import {t, tct} from 'sentry/locale';
// Configuration Start
export const steps = ({
dsn,
-}: {
- dsn?: string;
-} = {}): LayoutProps['steps'] => [
+}: Partial> = {}): LayoutProps['steps'] => [
{
type: StepType.INSTALL,
description: (
diff --git a/static/app/views/onboarding/onboarding.spec.tsx b/static/app/views/onboarding/onboarding.spec.tsx
index ca13169f3454d1..b129f79429c84c 100644
--- a/static/app/views/onboarding/onboarding.spec.tsx
+++ b/static/app/views/onboarding/onboarding.spec.tsx
@@ -85,6 +85,11 @@ describe('Onboarding', function () {
},
});
+ MockApiClient.addMockResponse({
+ url: `/organizations/${organization.slug}/sdks/`,
+ body: {},
+ });
+
MockApiClient.addMockResponse({
url: `/projects/${organization.slug}/${nextJsProject.slug}/docs/javascript-nextjs-with-error-monitoring/`,
body: null,
@@ -170,6 +175,11 @@ describe('Onboarding', function () {
},
});
+ MockApiClient.addMockResponse({
+ url: `/organizations/${organization.slug}/sdks/`,
+ body: {},
+ });
+
MockApiClient.addMockResponse({
url: `/projects/org-slug/${reactProject.slug}/`,
body: [reactProject],
@@ -260,6 +270,11 @@ describe('Onboarding', function () {
},
});
+ MockApiClient.addMockResponse({
+ url: `/organizations/${organization.slug}/sdks/`,
+ body: {},
+ });
+
MockApiClient.addMockResponse({
url: `/projects/org-slug/${reactProject.slug}/`,
body: [reactProject],
diff --git a/static/app/views/onboarding/setupDocs.spec.tsx b/static/app/views/onboarding/setupDocs.spec.tsx
index 7cc01ffac444d3..d7c4d5cddb1659 100644
--- a/static/app/views/onboarding/setupDocs.spec.tsx
+++ b/static/app/views/onboarding/setupDocs.spec.tsx
@@ -31,6 +31,20 @@ function renderMockRequests({
body: [],
});
+ MockApiClient.addMockResponse({
+ url: `/organizations/${orgSlug}/sdks/`,
+ body: {
+ 'sentry.java': {
+ canonical: 'maven:io.sentry:sentry',
+ main_docs_url: 'https://docs.sentry.io/platforms/java',
+ name: 'io.sentry:sentry',
+ package_url: 'https://search.maven.org/artifact/io.sentry/sentry',
+ repo_url: 'https://github.com/getsentry/sentry-java',
+ version: '6.28.0',
+ },
+ },
+ });
+
if (project.slug !== 'javascript-react') {
MockApiClient.addMockResponse({
url: `/projects/${orgSlug}/${project.slug}/docs/${project.platform}/`,
@@ -88,6 +102,48 @@ describe('Onboarding Setup Docs', function () {
).not.toBeInTheDocument();
});
+ it('renders SDK version from the sentry release registry', async function () {
+ const {router, route, routerContext, organization, project} = initializeOrg({
+ projects: [
+ {
+ ...initializeOrg().project,
+ slug: 'java',
+ platform: 'java',
+ },
+ ],
+ });
+
+ ProjectsStore.init();
+ ProjectsStore.loadInitialData([project]);
+
+ renderMockRequests({project, orgSlug: organization.slug});
+
+ render(
+
+ {}}
+ stepIndex={2}
+ router={router}
+ route={route}
+ location={router.location}
+ genSkipOnboardingLink={() => ''}
+ orgId={organization.slug}
+ search=""
+ recentCreatedProject={project}
+ />
+ ,
+ {
+ context: routerContext,
+ organization,
+ }
+ );
+
+ expect(
+ await screen.findByText(/implementation 'io.sentry:sentry:6.28.0'/)
+ ).toBeInTheDocument();
+ });
+
describe('renders Product Selection', function () {
it('all products checked', async function () {
const {router, route, routerContext, organization, project} = initializeOrg({