From b7ec9126c9a553983daebb249bb21818fd6e7430 Mon Sep 17 00:00:00 2001
From: vkalintiris <vasilis@netdata.cloud>
Date: Fri, 31 May 2024 15:47:53 +0300
Subject: [PATCH] Use semver releases with sentry. (#17746)

Semver does not have the concept of a tweak
field. To address this, we just drop the major
field which has not changed in ages. We can
simply ignore/drop old sentry releases if/when
we perform any major releases.
---
 packaging/build-package.sh                  | 4 ----
 packaging/cmake/Modules/NetdataSentry.cmake | 4 ----
 packaging/cmake/config.cmake.h.in           | 1 -
 src/daemon/sentry-native/sentry-native.c    | 7 ++++++-
 4 files changed, 6 insertions(+), 10 deletions(-)

diff --git a/packaging/build-package.sh b/packaging/build-package.sh
index bdf4f4eda0..ea50f4438c 100755
--- a/packaging/build-package.sh
+++ b/packaging/build-package.sh
@@ -84,10 +84,6 @@ if [ "${ENABLE_SENTRY}" = "true" ]; then
     add_cmake_option NETDATA_SENTRY_ENVIRONMENT "${RELEASE_PIPELINE:-Unknown}"
     add_cmake_option NETDATA_SENTRY_DIST "${BUILD_DESTINATION:-Unknown}"
     add_cmake_option NETDATA_SENTRY_DSN "${SENTRY_DSN}"
-
-    if [ -n "${VERSION}" ]; then
-        add_cmake_option NETDATA_SENTRY_RELEASE "${VERSION}"
-    fi
 else
     add_cmake_option ENABLE_SENTRY Off
 fi
diff --git a/packaging/cmake/Modules/NetdataSentry.cmake b/packaging/cmake/Modules/NetdataSentry.cmake
index 478c77498c..b20aeedd5f 100644
--- a/packaging/cmake/Modules/NetdataSentry.cmake
+++ b/packaging/cmake/Modules/NetdataSentry.cmake
@@ -20,10 +20,6 @@ function(netdata_bundle_sentry)
         set(SENTRY_BACKEND "breakpad")
         set(SENTRY_BUILD_SHARED_LIBS OFF)
 
-        if(NOT DEFINED NETDATA_SENTRY_RELEASE)
-            set(NETDATA_SENTRY_RELEASE "${CPACK_PACKAGE_VERSION}")
-        endif()
-
         FetchContent_Declare(
                 sentry
                 GIT_REPOSITORY https://github.com/getsentry/sentry-native.git
diff --git a/packaging/cmake/config.cmake.h.in b/packaging/cmake/config.cmake.h.in
index 5494782a5a..57d032693b 100644
--- a/packaging/cmake/config.cmake.h.in
+++ b/packaging/cmake/config.cmake.h.in
@@ -136,7 +136,6 @@
 
 #cmakedefine ENABLE_SENTRY
 #cmakedefine NETDATA_SENTRY_ENVIRONMENT "@NETDATA_SENTRY_ENVIRONMENT@"
-#cmakedefine NETDATA_SENTRY_RELEASE "@NETDATA_SENTRY_RELEASE@"
 #cmakedefine NETDATA_SENTRY_DIST "@NETDATA_SENTRY_DIST@"
 #cmakedefine NETDATA_SENTRY_DSN "@NETDATA_SENTRY_DSN@"
 // enabled bundling
diff --git a/src/daemon/sentry-native/sentry-native.c b/src/daemon/sentry-native/sentry-native.c
index 2d984fa36d..9e6930e552 100644
--- a/src/daemon/sentry-native/sentry-native.c
+++ b/src/daemon/sentry-native/sentry-native.c
@@ -32,7 +32,12 @@ void nd_sentry_init(void)
     sentry_options_set_dsn(options, NETDATA_SENTRY_DSN);
     sentry_options_set_database_path(options, path);
     sentry_options_set_environment(options, NETDATA_SENTRY_ENVIRONMENT);
-    sentry_options_set_release(options, NETDATA_SENTRY_RELEASE);
+
+    char release[64];
+    snprintfz(release, 64 - 1, "%s.%s.%s",
+              NETDATA_VERSION_MINOR, NETDATA_VERSION_PATCH, NETDATA_VERSION_TWEAK);
+    sentry_options_set_release(options, release);
+
     sentry_options_set_dist(options, NETDATA_SENTRY_DIST);
 #ifdef NETDATA_INTERNAL_CHECKS
     sentry_options_set_debug(options, 1);