From 25ee6b316ad9bf64b81b21d9dfa44f22a5b18db3 Mon Sep 17 00:00:00 2001 From: Abhinav Date: Sat, 18 Nov 2023 11:22:27 +0530 Subject: [PATCH 1/7] refactor sentry and add tunnel url --- package.json | 2 +- src/config/index.ts | 6 ------ src/config/sentry.ts | 20 ++++++++++++++++++++ src/constants/env.ts | 5 +++++ src/services/sentry.ts | 28 ++++++++++++++++------------ 5 files changed, 42 insertions(+), 19 deletions(-) create mode 100644 src/config/sentry.ts create mode 100644 src/constants/env.ts diff --git a/package.json b/package.json index 1338ab652..dfeff49e9 100644 --- a/package.json +++ b/package.json @@ -72,7 +72,7 @@ "start": "concurrently \"yarn start-main\" \"yarn start-renderer\"", "build-renderer": "cd ui && yarn install && yarn build:photos", "build": "yarn build-renderer && yarn build-main", - "test-release": "cross-env IS_TEST_RELEASE=true yarn build && electron-builder --config.compression=store" + "test-release": "cross-env IS_TEST_RELEASE=true APP_ENV=test yarn build && electron-builder --config.compression=store" }, "author": "ente ", "devDependencies": { diff --git a/src/config/index.ts b/src/config/index.ts index 78d076972..b115590bd 100644 --- a/src/config/index.ts +++ b/src/config/index.ts @@ -5,16 +5,10 @@ const MAX_LOG_SIZE = 50 * 1024 * 1024; // 50MB const FILE_STREAM_CHUNK_SIZE: number = 4 * 1024 * 1024; -const SENTRY_DSN = 'https://28650eea457d43538bd450b20e3c4efd@sentry.ente.io/8'; - -const RELEASE_VERSION = require('../../package.json').version; - export { PROD_HOST_URL, RENDERER_OUTPUT_DIR, FILE_STREAM_CHUNK_SIZE, LOG_FILENAME, MAX_LOG_SIZE, - SENTRY_DSN, - RELEASE_VERSION, }; diff --git a/src/config/sentry.ts b/src/config/sentry.ts new file mode 100644 index 000000000..443840924 --- /dev/null +++ b/src/config/sentry.ts @@ -0,0 +1,20 @@ +import { APP_ENV } from '../constants/env'; + +export const getAppEnv = () => process.env.APP_ENV ?? APP_ENV.DEVELOPMENT; + +export const isDisableSentryFlagSet = () => { + return process.env.DISABLE_SENTRY === 'true'; +}; + +export const SENTRY_RELEASE = require('../../package.json').version; + +export const SENTRY_DSN = + 'https://28650eea457d43538bd450b20e3c4efd@sentry.ente.io/8'; + +export const SENTRY_TUNNEL_URL = 'https://sentry-reporter.ente.io'; + +export const getIsSentryEnabled = () => { + const isAppENVDevelopment = getAppEnv() === APP_ENV.DEVELOPMENT; + const isSentryDisabled = isDisableSentryFlagSet(); + return !isAppENVDevelopment && !isSentryDisabled; +}; diff --git a/src/constants/env.ts b/src/constants/env.ts new file mode 100644 index 000000000..777feb860 --- /dev/null +++ b/src/constants/env.ts @@ -0,0 +1,5 @@ +export enum APP_ENV { + DEVELOPMENT = 'development', + PRODUCTION = 'production', + TEST = 'test', +} diff --git a/src/services/sentry.ts b/src/services/sentry.ts index 66c0294da..7af7ff7d2 100644 --- a/src/services/sentry.ts +++ b/src/services/sentry.ts @@ -1,21 +1,27 @@ import * as Sentry from '@sentry/electron/dist/main'; import { makeID } from '../utils/logging'; import { keysStore } from '../stores/keys.store'; -import { SENTRY_DSN, RELEASE_VERSION } from '../config'; -import { isDev } from '../utils/common'; import { logToDisk } from './logging'; import { hasOptedOutOfCrashReports } from '../main'; - -const ENV_DEVELOPMENT = 'development'; - -const isDEVSentryENV = () => - process.env.NEXT_PUBLIC_SENTRY_ENV === ENV_DEVELOPMENT; +import { + getAppEnv, + SENTRY_DSN, + SENTRY_RELEASE, + getIsSentryEnabled, + SENTRY_TUNNEL_URL, +} from '../config/sentry'; export function initSentry(): void { + const APP_ENV = getAppEnv(); + const IS_ENABLED = getIsSentryEnabled(); Sentry.init({ dsn: SENTRY_DSN, - release: RELEASE_VERSION, - environment: isDev ? 'development' : 'production', + enabled: IS_ENABLED, + environment: APP_ENV, + release: SENTRY_RELEASE, + attachStacktrace: true, + autoSessionTracking: false, + tunnel: SENTRY_TUNNEL_URL, }); Sentry.setUser({ id: getSentryUserID() }); } @@ -31,10 +37,8 @@ export function logErrorSentry( error?.stack } msg: ${msg} info: ${JSON.stringify(info)}` ); - if (isDEVSentryENV()) { - console.log(error, { msg, info }); - } if (hasOptedOutOfCrashReports()) { + logToDisk(`skipping sentry error: ${error?.name}`); return; } Sentry.captureException(err, { From fbc587d7e6d0bb3bd919575b3c10a9284b3d6f98 Mon Sep 17 00:00:00 2001 From: Abhinav Date: Sat, 18 Nov 2023 11:23:50 +0530 Subject: [PATCH 2/7] update UI --- ui | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui b/ui index ac96139fb..a06a1de71 160000 --- a/ui +++ b/ui @@ -1 +1 @@ -Subproject commit ac96139fb8b8dfec0ebc9718f1ac30cce66ae39f +Subproject commit a06a1de71b62e09aea8a70c6ad76a97e1165e6d9 From 7e9cc63f5a6dc0a9376b7b24b985cf7233cb7788 Mon Sep 17 00:00:00 2001 From: Abhinav Date: Sat, 18 Nov 2023 12:11:02 +0530 Subject: [PATCH 3/7] update sentry electron package and migrate code --- package.json | 2 +- src/config/sentry.ts | 2 +- src/main.ts | 11 ++- src/services/sentry.ts | 4 +- yarn.lock | 201 +++++++++++++++++++++-------------------- 5 files changed, 114 insertions(+), 106 deletions(-) diff --git a/package.json b/package.json index dfeff49e9..48b6a742c 100644 --- a/package.json +++ b/package.json @@ -100,7 +100,7 @@ "typescript": "^4.2.3" }, "dependencies": { - "@sentry/electron": "^2.5.1", + "@sentry/electron": "^4.14.0", "any-shell-escape": "^0.1.1", "auto-launch": "^5.0.5", "chokidar": "^3.5.3", diff --git a/src/config/sentry.ts b/src/config/sentry.ts index 443840924..5dbe6b14e 100644 --- a/src/config/sentry.ts +++ b/src/config/sentry.ts @@ -16,5 +16,5 @@ export const SENTRY_TUNNEL_URL = 'https://sentry-reporter.ente.io'; export const getIsSentryEnabled = () => { const isAppENVDevelopment = getAppEnv() === APP_ENV.DEVELOPMENT; const isSentryDisabled = isDisableSentryFlagSet(); - return !isAppENVDevelopment && !isSentryDisabled; + return !isSentryDisabled && isAppENVDevelopment; }; diff --git a/src/main.ts b/src/main.ts index a275e6899..83772c4fe 100644 --- a/src/main.ts +++ b/src/main.ts @@ -60,6 +60,12 @@ setupNextElectronServe(); setupLogging(isDev); +const localHasOptedOutOfCrashReports = getOptOutOfCrashReports(); +updateOptOutOfCrashReports(localHasOptedOutOfCrashReports); +if (!localHasOptedOutOfCrashReports) { + initSentry(); +} + const gotTheLock = app.requestSingleInstanceLock(); if (!gotTheLock) { app.quit(); @@ -83,11 +89,6 @@ if (!gotTheLock) { app.on('ready', async () => { logSystemInfo(); setupMainProcessStatsLogger(); - const hasOptedOutOfCrashReports = getOptOutOfCrashReports(); - updateOptOutOfCrashReports(hasOptedOutOfCrashReports); - if (!hasOptedOutOfCrashReports) { - initSentry(); - } mainWindow = await createWindow(); const tray = setupTrayItem(mainWindow); const watcher = initWatcher(mainWindow); diff --git a/src/services/sentry.ts b/src/services/sentry.ts index 7af7ff7d2..c4684e1f0 100644 --- a/src/services/sentry.ts +++ b/src/services/sentry.ts @@ -1,4 +1,4 @@ -import * as Sentry from '@sentry/electron/dist/main'; +import * as Sentry from '@sentry/electron'; import { makeID } from '../utils/logging'; import { keysStore } from '../stores/keys.store'; import { logToDisk } from './logging'; @@ -42,7 +42,7 @@ export function logErrorSentry( return; } Sentry.captureException(err, { - level: Sentry.Severity.Info, + level: 'info', user: { id: getSentryUserID() }, contexts: { ...(info && { diff --git a/yarn.lock b/yarn.lock index c42743c42..60d406c21 100644 --- a/yarn.lock +++ b/yarn.lock @@ -183,15 +183,27 @@ resolved "https://registry.yarnpkg.com/@octetstream/promisify/-/promisify-2.0.2.tgz#29ac3bd7aefba646db670227f895d812c1a19615" integrity sha512-7XHoRB61hxsz8lBQrjC1tq/3OEIgpvGWg6DKAdwi7WRzruwkmsdwmOoUXbU4Dtd4RSOMDwed0SkP3y8UlMt1Bg== -"@sentry/browser@6.7.1": - version "6.7.1" - resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-6.7.1.tgz#e01144a08984a486ecc91d7922cc457e9c9bd6b7" - integrity sha512-R5PYx4TTvifcU790XkK6JVGwavKaXwycDU0MaAwfc4Vf7BLm5KCNJCsDySu1RPAap/017MVYf54p6dWvKiRviA== +"@sentry-internal/tracing@7.74.0": + version "7.74.0" + resolved "https://registry.yarnpkg.com/@sentry-internal/tracing/-/tracing-7.74.0.tgz#11b0762d0b18b01cc18dfb1e40bbaa41c6f97452" + integrity sha512-JK6IRGgdtZjswGfaGIHNWIThffhOHzVIIaGmglui+VFIzOsOqePjoxaDV0MEvzafxXZD7eWqGE5RGuZ0n6HFVg== dependencies: - "@sentry/core" "6.7.1" - "@sentry/types" "6.7.1" - "@sentry/utils" "6.7.1" - tslib "^1.9.3" + "@sentry/core" "7.74.0" + "@sentry/types" "7.74.0" + "@sentry/utils" "7.74.0" + tslib "^2.4.1 || ^1.9.3" + +"@sentry/browser@7.74.0": + version "7.74.0" + resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-7.74.0.tgz#4a01bccb34059894007b9a22a89892f2c4dff130" + integrity sha512-Njr8216Z1dFUcl6NqBOk20dssK9SjoVddY74Xq+Q4p3NfXBG3lkMcACXor7SFoJRZXq8CZWGS13Cc5KwViRw4g== + dependencies: + "@sentry-internal/tracing" "7.74.0" + "@sentry/core" "7.74.0" + "@sentry/replay" "7.74.0" + "@sentry/types" "7.74.0" + "@sentry/utils" "7.74.0" + tslib "^2.4.1 || ^1.9.3" "@sentry/cli@^1.68.0": version "1.74.4" @@ -206,86 +218,64 @@ proxy-from-env "^1.1.0" which "^2.0.2" -"@sentry/core@6.7.1": - version "6.7.1" - resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.7.1.tgz#c3aaa6415d06bec65ac446b13b84f073805633e3" - integrity sha512-VAv8OR/7INn2JfiLcuop4hfDcyC7mfL9fdPndQEhlacjmw8gRrgXjR7qyhnCTgzFLkHI7V5bcdIzA83TRPYQpA== +"@sentry/core@7.74.0": + version "7.74.0" + resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.74.0.tgz#2cfcb5133a4a3f82fbac09d3573ea9f508fb7c67" + integrity sha512-83NRuqn7nDZkSVBN5yJQqcpXDG4yMYiB7TkYUKrGTzBpRy6KUOrkCdybuKk0oraTIGiGSe5WEwCFySiNgR9FzA== dependencies: - "@sentry/hub" "6.7.1" - "@sentry/minimal" "6.7.1" - "@sentry/types" "6.7.1" - "@sentry/utils" "6.7.1" - tslib "^1.9.3" + "@sentry/types" "7.74.0" + "@sentry/utils" "7.74.0" + tslib "^2.4.1 || ^1.9.3" -"@sentry/electron@^2.5.1": - version "2.5.4" - resolved "https://registry.yarnpkg.com/@sentry/electron/-/electron-2.5.4.tgz#337b2f7e228e805a3e4eb3611c7b12c6cf87c618" - integrity sha512-tCCK+P581TmdjsDpHBQz7qYcldzGdUk1Fd6FPxPy1JKGzeY4uf/uSLKzR80Lzs5kTpEZFOwiMHSA8yjwFp5qoA== +"@sentry/electron@^4.14.0": + version "4.14.0" + resolved "https://registry.yarnpkg.com/@sentry/electron/-/electron-4.14.0.tgz#1b571899033709cd5f79931934c819a76c76a93c" + integrity sha512-5laPImINGd86osNUu9UyGWB9dfK9O6hmydSTFWsHWHgFsd/2YKtOgjdXgMu+znyU+sy+lU9z+wwEq/h4yivPZQ== dependencies: - "@sentry/browser" "6.7.1" - "@sentry/core" "6.7.1" - "@sentry/minimal" "6.7.1" - "@sentry/node" "6.7.1" - "@sentry/types" "6.7.1" - "@sentry/utils" "6.7.1" - tslib "^2.2.0" + "@sentry/browser" "7.74.0" + "@sentry/core" "7.74.0" + "@sentry/node" "7.74.0" + "@sentry/types" "7.74.0" + "@sentry/utils" "7.74.0" + deepmerge "4.3.0" + lru_map "^0.3.3" + tslib "^2.5.0" -"@sentry/hub@6.7.1": - version "6.7.1" - resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.7.1.tgz#d46d24deec67f0731a808ca16796e6765b371bc1" - integrity sha512-eVCTWvvcp6xa0A5GGNHMQEWslmKPlisE5rGmsV/kjvSUv3zSrI0eIDfb51ikdnCiBjHpK2NBWP8Vy8cZOEJegg== +"@sentry/node@7.74.0": + version "7.74.0" + resolved "https://registry.yarnpkg.com/@sentry/node/-/node-7.74.0.tgz#c6b6704a3a238155f047972fd4c6944004347aba" + integrity sha512-uBmW2/z0cz/WFIG74ZF7lSipO0XNzMf9yrdqnZXnGDYsUZE4I4QiqDN0hNi6fkTgf9MYRC8uFem2OkAvyPJ74Q== dependencies: - "@sentry/types" "6.7.1" - "@sentry/utils" "6.7.1" - tslib "^1.9.3" - -"@sentry/minimal@6.7.1": - version "6.7.1" - resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.7.1.tgz#babf85ee2f167e9dcf150d750d7a0b250c98449c" - integrity sha512-HDDPEnQRD6hC0qaHdqqKDStcdE1KhkFh0RCtJNMCDn0zpav8Dj9AteF70x6kLSlliAJ/JFwi6AmQrLz+FxPexw== - dependencies: - "@sentry/hub" "6.7.1" - "@sentry/types" "6.7.1" - tslib "^1.9.3" - -"@sentry/node@6.7.1": - version "6.7.1" - resolved "https://registry.yarnpkg.com/@sentry/node/-/node-6.7.1.tgz#b09e2eca8e187168feba7bd865a23935bf0f5cc0" - integrity sha512-rtZo1O8ROv4lZwuljQz3iFZW89oXSlgXCG2VqkxQyRspPWu89abROpxLjYzsWwQ8djnur1XjFv51kOLDUTS6Qw== - dependencies: - "@sentry/core" "6.7.1" - "@sentry/hub" "6.7.1" - "@sentry/tracing" "6.7.1" - "@sentry/types" "6.7.1" - "@sentry/utils" "6.7.1" - cookie "^0.4.1" + "@sentry-internal/tracing" "7.74.0" + "@sentry/core" "7.74.0" + "@sentry/types" "7.74.0" + "@sentry/utils" "7.74.0" + cookie "^0.5.0" https-proxy-agent "^5.0.0" lru_map "^0.3.3" - tslib "^1.9.3" + tslib "^2.4.1 || ^1.9.3" -"@sentry/tracing@6.7.1": - version "6.7.1" - resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-6.7.1.tgz#b11f0c17a6c5dc14ef44733e5436afb686683268" - integrity sha512-wyS3nWNl5mzaC1qZ2AIp1hjXnfO9EERjMIJjCihs2LWBz1r3efxrHxJHs8wXlNWvrT3KLhq/7vvF5CdU82uPeQ== +"@sentry/replay@7.74.0": + version "7.74.0" + resolved "https://registry.yarnpkg.com/@sentry/replay/-/replay-7.74.0.tgz#618d40f7c9ecc7589dd14df0c560b20a24839d3f" + integrity sha512-GoYa3cHTTFVI/J1cnZ0i4X128mf/JljaswO3PWNTe2k3lSHq/LM5aV0keClRvwM0W8hlix8oOTT06nnenOUmmw== dependencies: - "@sentry/hub" "6.7.1" - "@sentry/minimal" "6.7.1" - "@sentry/types" "6.7.1" - "@sentry/utils" "6.7.1" - tslib "^1.9.3" + "@sentry/core" "7.74.0" + "@sentry/types" "7.74.0" + "@sentry/utils" "7.74.0" -"@sentry/types@6.7.1": - version "6.7.1" - resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.7.1.tgz#c8263e1886df5e815570c4668eb40a1cfaa1c88b" - integrity sha512-9AO7HKoip2MBMNQJEd6+AKtjj2+q9Ze4ooWUdEvdOVSt5drg7BGpK221/p9JEOyJAZwEPEXdcMd3VAIMiOb4MA== +"@sentry/types@7.74.0": + version "7.74.0" + resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.74.0.tgz#810a62cd28db21c5f15f131da6525d7ddf7a29db" + integrity sha512-rI5eIRbUycWjn6s6o3yAjjWtIvYSxZDdnKv5je2EZINfLKcMPj1dkl6wQd2F4y7gLfD/N6Y0wZYIXC3DUdJQQg== -"@sentry/utils@6.7.1": - version "6.7.1" - resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.7.1.tgz#909184ad580f0f6375e1e4d4a6ffd33dfe64a4d1" - integrity sha512-Tq2otdbWlHAkctD+EWTYKkEx6BL1Qn3Z/imkO06/PvzpWvVhJWQ5qHAzz5XnwwqNHyV03KVzYB6znq1Bea9HuA== +"@sentry/utils@7.74.0": + version "7.74.0" + resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.74.0.tgz#e0a16d345b2af6f8b09d157c8c8a3145d7a2070a" + integrity sha512-k3np8nuTPtx5KDODPtULfFln4UXdE56MZCcF19Jv6Ljxf+YN/Ady1+0Oi3e0XoSvFpWNyWnglauT7M65qCE6kg== dependencies: - "@sentry/types" "6.7.1" - tslib "^1.9.3" + "@sentry/types" "7.74.0" + tslib "^2.4.1 || ^1.9.3" "@sindresorhus/is@^4.0.0": version "4.6.0" @@ -344,9 +334,9 @@ integrity sha512-6VKKrDB20E/6ovi2Pfpy9Pcz8Me1ue/tReaZrwrz9mfVdsr6WAMiDZ+F1oAAcss4U5n2k673i1leDIx2aEBDFQ== "@types/http-cache-semantics@*": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.2.tgz#abe102d06ccda1efdf0ed98c10ccf7f36a785a41" - integrity sha512-FD+nQWA2zJjh4L9+pFXqWOi0Hs1ryBCfI+985NjluQ1p8EYtoLvjLOKidXBtZ4/IcxDX4o8/E8qDS3540tNliw== + version "4.0.4" + resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz#b979ebad3919799c979b17c72621c0bc0a31c6c4" + integrity sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA== "@types/json-schema@^7.0.9": version "7.0.11" @@ -389,9 +379,11 @@ integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== "@types/node@^18.11.18": - version "18.18.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.18.0.tgz#bd19d5133a6e5e2d0152ec079ac27c120e7f1763" - integrity sha512-3xA4X31gHT1F1l38ATDIL9GpRLdwVhnEFC8Uikv5ZLlXATwrCYyPq7ZWHxzxc3J/30SUiwiYT+bQe0/XvKlWbw== + version "18.18.9" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.18.9.tgz#5527ea1832db3bba8eb8023ce8497b7d3f299592" + integrity sha512-0f5klcuImLnG4Qreu9hPj/rEfFq6YRc5n2mAjSsH+ec/mJL+3voBH0+8T7o8RpFjH7ovc+TRsL/c7OYIQsPTfQ== + dependencies: + undici-types "~5.26.4" "@types/normalize-package-data@^2.4.0": version "2.4.1" @@ -414,9 +406,9 @@ "@types/node" "*" "@types/responselike@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" - integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== + version "1.0.3" + resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.3.tgz#cc29706f0a397cfe6df89debfe4bf5cea159db50" + integrity sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw== dependencies: "@types/node" "*" @@ -1145,10 +1137,10 @@ console-control-strings@^1.0.0, console-control-strings@~1.1.0: resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== -cookie@^0.4.1: - version "0.4.2" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" - integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== +cookie@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" + integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== core-util-is@1.0.2: version "1.0.2" @@ -1240,6 +1232,11 @@ deep-is@^0.1.3: resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== +deepmerge@4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.0.tgz#65491893ec47756d44719ae520e0e2609233b59b" + integrity sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og== + defer-to-connect@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" @@ -1458,9 +1455,9 @@ electron-updater@^4.3.8: semver "^7.3.5" electron@^25.8.4: - version "25.8.4" - resolved "https://registry.yarnpkg.com/electron/-/electron-25.8.4.tgz#b50877aac7d96323920437baf309ad86382cb455" - integrity sha512-hUYS3RGdaa6E1UWnzeGnsdsBYOggwMMg4WGxNGvAoWtmRrr6J1BsjFW/yRq4WsJHJce2HdzQXtz4OGXV6yUCLg== + version "25.9.5" + resolved "https://registry.yarnpkg.com/electron/-/electron-25.9.5.tgz#c030368ebe1b40580e781d89fa8ce7ef19202692" + integrity sha512-gM7GXUSd3JVRcYbBnNOtZeNnE5MCJjtZTT8QyIxJvpQ0Dh9dz3hTuEL62dOwnMFW/l47ACQ6es/8qi01P4QGZA== dependencies: "@electron/get" "^2.0.0" "@types/node" "^18.11.18" @@ -2436,9 +2433,9 @@ jsprim@^1.2.2: verror "1.10.0" keyv@^4.0.0: - version "4.5.3" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.3.tgz#00873d2b046df737963157bd04f294ca818c9c25" - integrity sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug== + version "4.5.4" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== dependencies: json-buffer "3.0.1" @@ -3727,16 +3724,21 @@ truncate-utf8-bytes@^1.0.0: dependencies: utf8-byte-length "^1.0.1" -tslib@^1.8.1, tslib@^1.9.3: +tslib@^1.8.1: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.1.0, tslib@^2.2.0: +tslib@^2.1.0: version "2.4.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== +"tslib@^2.4.1 || ^1.9.3", tslib@^2.5.0: + version "2.6.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + tsutils@^3.21.0: version "3.21.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" @@ -3808,6 +3810,11 @@ typescript@^4.2.3: resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.7.4.tgz#1a88596d1cf47d59507a1bcdfb5b9dfe4d488235" integrity sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ== +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + universalify@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" From 0c14a7d79a31ef92c1798e9232fbc3fb54c3bb7e Mon Sep 17 00:00:00 2001 From: Abhinav Date: Sat, 18 Nov 2023 12:21:36 +0530 Subject: [PATCH 4/7] remove testing changes --- src/config/sentry.ts | 6 ++++-- src/services/sentry.ts | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/config/sentry.ts b/src/config/sentry.ts index 5dbe6b14e..5b0330a04 100644 --- a/src/config/sentry.ts +++ b/src/config/sentry.ts @@ -1,6 +1,8 @@ +import { isDev } from '../utils/common'; import { APP_ENV } from '../constants/env'; -export const getAppEnv = () => process.env.APP_ENV ?? APP_ENV.DEVELOPMENT; +export const getAppEnv = () => + process.env.APP_ENV ?? isDev ? APP_ENV.DEVELOPMENT : APP_ENV.PRODUCTION; export const isDisableSentryFlagSet = () => { return process.env.DISABLE_SENTRY === 'true'; @@ -16,5 +18,5 @@ export const SENTRY_TUNNEL_URL = 'https://sentry-reporter.ente.io'; export const getIsSentryEnabled = () => { const isAppENVDevelopment = getAppEnv() === APP_ENV.DEVELOPMENT; const isSentryDisabled = isDisableSentryFlagSet(); - return !isSentryDisabled && isAppENVDevelopment; + return !isSentryDisabled && !isAppENVDevelopment; }; diff --git a/src/services/sentry.ts b/src/services/sentry.ts index c4684e1f0..88db9bc5d 100644 --- a/src/services/sentry.ts +++ b/src/services/sentry.ts @@ -14,6 +14,7 @@ import { export function initSentry(): void { const APP_ENV = getAppEnv(); const IS_ENABLED = getIsSentryEnabled(); + logToDisk(`initSentry: ${APP_ENV} ${IS_ENABLED}`); Sentry.init({ dsn: SENTRY_DSN, enabled: IS_ENABLED, From 376e1306293a381c179e1758615a2d967da96c41 Mon Sep 17 00:00:00 2001 From: Abhinav Date: Sat, 18 Nov 2023 12:36:48 +0530 Subject: [PATCH 5/7] remove disable sentry logic --- package.json | 2 +- src/config/sentry.ts | 15 ++++----------- src/services/sentry.ts | 12 +++++------- 3 files changed, 10 insertions(+), 19 deletions(-) diff --git a/package.json b/package.json index 48b6a742c..c6b38a8be 100644 --- a/package.json +++ b/package.json @@ -72,7 +72,7 @@ "start": "concurrently \"yarn start-main\" \"yarn start-renderer\"", "build-renderer": "cd ui && yarn install && yarn build:photos", "build": "yarn build-renderer && yarn build-main", - "test-release": "cross-env IS_TEST_RELEASE=true APP_ENV=test yarn build && electron-builder --config.compression=store" + "test-release": "cross-env IS_TEST_RELEASE=true yarn build && electron-builder --config.compression=store" }, "author": "ente ", "devDependencies": { diff --git a/src/config/sentry.ts b/src/config/sentry.ts index 5b0330a04..8441503bb 100644 --- a/src/config/sentry.ts +++ b/src/config/sentry.ts @@ -1,12 +1,7 @@ import { isDev } from '../utils/common'; import { APP_ENV } from '../constants/env'; -export const getAppEnv = () => - process.env.APP_ENV ?? isDev ? APP_ENV.DEVELOPMENT : APP_ENV.PRODUCTION; - -export const isDisableSentryFlagSet = () => { - return process.env.DISABLE_SENTRY === 'true'; -}; +export const AppEnv = isDev ? APP_ENV.DEVELOPMENT : APP_ENV.PRODUCTION; export const SENTRY_RELEASE = require('../../package.json').version; @@ -15,8 +10,6 @@ export const SENTRY_DSN = export const SENTRY_TUNNEL_URL = 'https://sentry-reporter.ente.io'; -export const getIsSentryEnabled = () => { - const isAppENVDevelopment = getAppEnv() === APP_ENV.DEVELOPMENT; - const isSentryDisabled = isDisableSentryFlagSet(); - return !isSentryDisabled && !isAppENVDevelopment; -}; +const isAppENVDevelopment = AppEnv === APP_ENV.DEVELOPMENT; + +export const IS_SENTRY_ENABLED = !isAppENVDevelopment; diff --git a/src/services/sentry.ts b/src/services/sentry.ts index 88db9bc5d..edf05a175 100644 --- a/src/services/sentry.ts +++ b/src/services/sentry.ts @@ -4,21 +4,19 @@ import { keysStore } from '../stores/keys.store'; import { logToDisk } from './logging'; import { hasOptedOutOfCrashReports } from '../main'; import { - getAppEnv, + AppEnv, SENTRY_DSN, SENTRY_RELEASE, - getIsSentryEnabled, + IS_SENTRY_ENABLED, SENTRY_TUNNEL_URL, } from '../config/sentry'; export function initSentry(): void { - const APP_ENV = getAppEnv(); - const IS_ENABLED = getIsSentryEnabled(); - logToDisk(`initSentry: ${APP_ENV} ${IS_ENABLED}`); + logToDisk(`initSentry: ${AppEnv} ${IS_SENTRY_ENABLED}`); Sentry.init({ dsn: SENTRY_DSN, - enabled: IS_ENABLED, - environment: APP_ENV, + enabled: IS_SENTRY_ENABLED, + environment: AppEnv, release: SENTRY_RELEASE, attachStacktrace: true, autoSessionTracking: false, From c4ba75f47dee73fb842c1bf1649110b03b2d4732 Mon Sep 17 00:00:00 2001 From: Abhinav Date: Sat, 18 Nov 2023 12:39:40 +0530 Subject: [PATCH 6/7] update UI --- ui | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui b/ui index a06a1de71..afb25a249 160000 --- a/ui +++ b/ui @@ -1 +1 @@ -Subproject commit a06a1de71b62e09aea8a70c6ad76a97e1165e6d9 +Subproject commit afb25a24912457da2fab2c521640d02dee4a9c7d From e786c64e334733a20b744ed6d59f02e767c4c4d7 Mon Sep 17 00:00:00 2001 From: Abhinav Date: Sat, 18 Nov 2023 12:41:28 +0530 Subject: [PATCH 7/7] update UI --- ui | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui b/ui index afb25a249..25be414a0 160000 --- a/ui +++ b/ui @@ -1 +1 @@ -Subproject commit afb25a24912457da2fab2c521640d02dee4a9c7d +Subproject commit 25be414a0c434ebabe7520d4da3e0044b9f092e5