From d62f4fbb297f035169b6e94ce45b14e45d8004bf Mon Sep 17 00:00:00 2001 From: Cristhian Date: Mon, 7 Sep 2026 14:33:50 -0300 Subject: [PATCH] pin dora-rs to v1.0.1 instead of tracking main Cloning main made the build non-reproducible and free to drift from the dora runtime that launches the node. DORA_GIT_TAG can still pin a tag explicitly, and an installed dora CLI continues to take precedence so the bindings match the runtime, now with a warning when that CLI predates the 1.0 this node targets. --- DoraTargets.cmake | 44 +++++++++++++++++++++++++++++--------------- 1 file changed, 29 insertions(+), 15 deletions(-) diff --git a/DoraTargets.cmake b/DoraTargets.cmake index 836f09c..dce36b6 100644 --- a/DoraTargets.cmake +++ b/DoraTargets.cmake @@ -40,28 +40,42 @@ if(DORA_ROOT_DIR AND EXISTS "${DORA_ROOT_DIR}/Cargo.toml") set(dora_link_dirs ${DORA_ROOT_DIR}/target/debug) else() include(ExternalProject) - set(DORA_GIT_TAG "main") - find_program(DORA_CLI dora) - if(DORA_CLI) - execute_process( - COMMAND ${DORA_CLI} --version - RESULT_VARIABLE _dora_version_result - OUTPUT_VARIABLE _dora_version_out - ERROR_VARIABLE _dora_version_err - OUTPUT_STRIP_TRAILING_WHITESPACE - ) - if(_dora_version_result EQUAL 0) - string(REGEX MATCH "([0-9]+\\.[0-9]+\\.[0-9]+)" _dora_version_match "${_dora_version_out}") - if(_dora_version_match) - set(DORA_GIT_TAG "v${CMAKE_MATCH_1}") + + # This node targets dora 1.0+. Set DORA_GIT_TAG to pin a tag explicitly; + # left empty it follows the installed dora CLI so the bindings match the + # runtime, and falls back to the default below when no CLI is present. + set(DORA_GIT_TAG "" CACHE STRING "dora-rs git tag to build against (empty: follow the dora CLI)") + set(_dora_tag "${DORA_GIT_TAG}") + + if(NOT _dora_tag) + set(_dora_tag "v1.0.1") + find_program(DORA_CLI dora) + if(DORA_CLI) + execute_process( + COMMAND ${DORA_CLI} --version + RESULT_VARIABLE _dora_version_result + OUTPUT_VARIABLE _dora_version_out + ERROR_VARIABLE _dora_version_err + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + if(_dora_version_result EQUAL 0) + string(REGEX MATCH "([0-9]+\\.[0-9]+\\.[0-9]+)" _dora_version_match "${_dora_version_out}") + if(_dora_version_match) + set(_dora_tag "v${CMAKE_MATCH_1}") + if(CMAKE_MATCH_1 VERSION_LESS 1.0) + message(WARNING "dora CLI ${CMAKE_MATCH_1} is older than the 1.0 this node targets") + endif() + endif() endif() endif() endif() + message(STATUS "dora-rs: building C++ bindings from ${_dora_tag}") + ExternalProject_Add(Dora PREFIX ${CMAKE_CURRENT_BINARY_DIR}/dora GIT_REPOSITORY https://github.com/dora-rs/dora.git - GIT_TAG ${DORA_GIT_TAG} + GIT_TAG ${_dora_tag} BUILD_IN_SOURCE True CONFIGURE_COMMAND "" BUILD_COMMAND