From 512a9eff90b028b946c98fe4e8bc5752a52d5fe2 Mon Sep 17 00:00:00 2001 From: chrispader Date: Mon, 3 Aug 2026 16:54:42 +0200 Subject: [PATCH] fix(telemetry): configure Sentry build as dist --- src/libs/VersionUtils.ts | 12 ++++++++++++ src/setup/telemetry/setupSentry.ts | 5 ++++- tests/unit/libs/VersionUtilsTest.ts | 11 +++++++++++ 3 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 src/libs/VersionUtils.ts create mode 100644 tests/unit/libs/VersionUtilsTest.ts diff --git a/src/libs/VersionUtils.ts b/src/libs/VersionUtils.ts new file mode 100644 index 000000000000..f5fc175eed5d --- /dev/null +++ b/src/libs/VersionUtils.ts @@ -0,0 +1,12 @@ +type AppVersion = { + buildNumber?: string; + semanticVersion: string; +}; + +function getAppVersion(version: string): AppVersion { + const [semanticVersion, buildNumber] = version.split('-'); + + return {semanticVersion, buildNumber}; +} + +export default getAppVersion; diff --git a/src/setup/telemetry/setupSentry.ts b/src/setup/telemetry/setupSentry.ts index 40a1ec988412..29dad2f7a125 100644 --- a/src/setup/telemetry/setupSentry.ts +++ b/src/setup/telemetry/setupSentry.ts @@ -1,6 +1,7 @@ import {isDevelopment} from '@libs/Environment/Environment'; import {breadcrumbsIntegration, browserProfilingIntegration, consoleIntegration, navigationIntegration, reportingObserverIntegration, tracingIntegration} from '@libs/telemetry/integrations'; import {processBeforeSendLogs, processBeforeSendTransactions} from '@libs/telemetry/middlewares'; +import getAppVersion from '@libs/VersionUtils'; import CONFIG from '@src/CONFIG'; import CONST from '@src/CONST'; @@ -11,6 +12,7 @@ import pkg from '../../../package.json'; import makeDebugTransport from './debugTransport'; function setupSentry(): void { + const {semanticVersion, buildNumber} = getAppVersion(pkg.version); const integrations = [navigationIntegration, tracingIntegration, browserProfilingIntegration, breadcrumbsIntegration, consoleIntegration, reportingObserverIntegration].filter( (integration): integration is NonNullable => integration !== undefined, ); @@ -27,7 +29,8 @@ function setupSentry(): void { enableUserInteractionTracing: true, integrations, environment: CONFIG.ENVIRONMENT, - release: `${pkg.name}@${pkg.version}`, + release: `${pkg.name}@${semanticVersion}`, + dist: buildNumber, // UPDATE_REQUIRED is not a real error and makes our errors in Spotnana spike and get rate limited when we bump the app min version, so ignore it ignoreErrors: [CONST.ERROR.UPDATE_REQUIRED], beforeSendTransaction: processBeforeSendTransactions, diff --git a/tests/unit/libs/VersionUtilsTest.ts b/tests/unit/libs/VersionUtilsTest.ts new file mode 100644 index 000000000000..31ae377b201d --- /dev/null +++ b/tests/unit/libs/VersionUtilsTest.ts @@ -0,0 +1,11 @@ +import getAppVersion from '@libs/VersionUtils'; + +describe('getAppVersion', () => { + it('should split the semantic version from the build number', () => { + expect(getAppVersion('9.4.48-2')).toStrictEqual({semanticVersion: '9.4.48', buildNumber: '2'}); + }); + + it('should support versions without a build number', () => { + expect(getAppVersion('9.4.48')).toStrictEqual({semanticVersion: '9.4.48', buildNumber: undefined}); + }); +});