diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6465e76d7a330102b4903e7657af04fd0498988b..fb9d7e67618d9ebe1105331d93816e06a2d6c78c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,10 +1,10 @@
 cmake_minimum_required(VERSION 3.13)
 
-file(READ VERSION PROJECT_VERSION)
+exec_program("git" ${CMAKE_CURRENT_SOURCE_DIR} ARGS "describe --dirty --always --exclude '*'" OUTPUT_VARIABLE SOURCE_VERSION)
 
 project(biotracker-utility
-    VERSION ${PROJECT_VERSION}
-    LANGUAGES CXX)
+    LANGUAGES CXX
+)
 
 include(GNUInstallDirs)
 
@@ -33,8 +33,8 @@ include(CMakePackageConfigHelpers)
 
 write_basic_package_version_file(
     ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake
-    VERSION ${PROJECT_VERSION}
-    COMPATIBILITY AnyNewerVersion
+    VERSION ${SOURCE_VERSION}
+    COMPATIBILITY ExactVersion
 )
 
 configure_package_config_file(
@@ -57,6 +57,6 @@ install(
 )
 
 set(CPACK_GENERATOR "TXZ")
-set(CPACK_PACKAGE_VERSION ${GIT_TAG})
+set(CPACK_PACKAGE_VERSION "${SOURCE_VERSION}")
 
 include(CPack)
diff --git a/Src/CMakeLists.txt b/Src/CMakeLists.txt
index 8677efffd85c620a748323b526e2048dc7f8e840..f21bdd622cd1be8fc103f4ee6295a473e6c2afb1 100644
--- a/Src/CMakeLists.txt
+++ b/Src/CMakeLists.txt
@@ -5,7 +5,7 @@ set(target ${PROJECT_NAME})
 add_library(${target} STATIC)
 
 if( CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR )
-    find_package(biotracker-interfaces 0.2 REQUIRED)
+    find_package(biotracker-interfaces REQUIRED)
 endif()
 target_link_libraries(${target} biotracker-interfaces)
 
diff --git a/VERSION b/VERSION
deleted file mode 100644
index 341cf11faf9a29504168de4e54beaad182c5adc5..0000000000000000000000000000000000000000
--- a/VERSION
+++ /dev/null
@@ -1 +0,0 @@
-0.2.0
\ No newline at end of file
diff --git a/cmake/TrackerPlugin.cmake b/cmake/TrackerPlugin.cmake
index e8e2178a994d66288b20c73d9f096108f5c7dc41..cc023397e17c97cfebef547779986f799c6f1961 100644
--- a/cmake/TrackerPlugin.cmake
+++ b/cmake/TrackerPlugin.cmake
@@ -1,7 +1,5 @@
 function(add_behavior_plugin target)
 
-    exec_program("git" ${CMAKE_CURRENT_SOURCE_DIR} ARGS "log --pretty=format:%h -n 1" OUTPUT_VARIABLE GIT_HASH)
-
     if("$ENV{USERNAME}" STREQUAL "ContainerAdministrator")
         # Note: This is a workaround for Qt5's "moc" in Windows Docker getting
         #       "System cannot find the file" errors when trying to read
@@ -13,8 +11,6 @@ function(add_behavior_plugin target)
 
     add_library (${target} MODULE ${ARGN})
 
-    target_compile_definitions(${target} PRIVATE CURRENT_GIT_HASH="${GIT_HASH}")
-
     configure_file(${CMAKE_CURRENT_SOURCE_DIR}/plugin.json.in ${METADATA_DIR}/plugin.json)
     target_include_directories(${target} PRIVATE ${METADATA_DIR})
     
diff --git a/cmake/biotracker-utilityConfig.cmake.in b/cmake/biotracker-utilityConfig.cmake.in
index f1752c32fcf786c9bbe059638d905641043aefa7..2d9166770448251af0220437181fbbc75948ff30 100644
--- a/cmake/biotracker-utilityConfig.cmake.in
+++ b/cmake/biotracker-utilityConfig.cmake.in
@@ -1,6 +1,6 @@
 @PACKAGE_INIT@
 
-find_package(biotracker-interfaces 0.2 REQUIRED)
+find_package(biotracker-interfaces REQUIRED)
 
 include(${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake)