add git commit hash and compiler info to logging and version calls (#2170)

* add build info to version calls

* use Boost defines to gather Compiler info as well as bash version
New build_info example ```Version 20.0
Build Info 3d66a9a9 "Clang version " "10.0.1 (clang-1001.0.46.4)" "BOOST 107000" BUILT "Jul 23 2019"```

* prevent multiple flushes
This commit is contained in:
Russel Waters 2019-07-30 13:53:44 -04:00 committed by GitHub
commit 45ace8218f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 29 additions and 6 deletions

View file

@ -1,6 +1,14 @@
cmake_minimum_required (VERSION 3.4)
project (nano-node)
# Get the latest abbreviated commit hash of the working branch
execute_process(
COMMAND git log -1 --format=%h
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE GIT_COMMIT_HASH
OUTPUT_STRIP_TRAILING_WHITESPACE
)
set (CPACK_PACKAGE_VERSION_MAJOR "20")
set (CPACK_PACKAGE_VERSION_MINOR "0")
set (CPACK_PACKAGE_VERSION_PATCH "0")
@ -351,7 +359,8 @@ if (NANO_GUI OR RAIBLOCKS_GUI)
PRIVATE
-DNANO_VERSION_MAJOR=${CPACK_PACKAGE_VERSION_MAJOR}
-DNANO_VERSION_MINOR=${CPACK_PACKAGE_VERSION_MINOR}
-DNANO_VERSION_PATCH=${CPACK_PACKAGE_VERSION_PATCH})
-DNANO_VERSION_PATCH=${CPACK_PACKAGE_VERSION_PATCH}
-DGIT_COMMIT_HASH=${GIT_COMMIT_HASH})
if (WIN32)
set (PLATFORM_GUI_TARGET_PROPERTIES WIN32)

View file

@ -39,5 +39,6 @@ target_compile_definitions(core_test
-DNANO_VERSION_MAJOR=${CPACK_PACKAGE_VERSION_MAJOR}
-DNANO_VERSION_MINOR=${CPACK_PACKAGE_VERSION_MINOR}
-DNANO_VERSION_PATCH=${CPACK_PACKAGE_VERSION_PATCH}
-DGIT_COMMIT_HASH=${GIT_COMMIT_HASH}
-DBOOST_PROCESS_SUPPORTED=${BOOST_PROCESS_SUPPORTED})
target_link_libraries (core_test node secure gtest libminiupnpc-static Boost::boost ${rocksdb_libs})

View file

@ -17,6 +17,9 @@
*/
static const char * NANO_MAJOR_MINOR_VERSION = xstr (NANO_VERSION_MAJOR) "." xstr (NANO_VERSION_MINOR);
static const char * NANO_MAJOR_MINOR_RC_VERSION = xstr (NANO_VERSION_MAJOR) "." xstr (NANO_VERSION_MINOR) "RC" xstr (NANO_VERSION_PATCH);
static const char * BUILD_INFO = xstr (GIT_COMMIT_HASH BOOST_COMPILER) " \"BOOST " xstr (BOOST_VERSION) "\" BUILT " xstr (__DATE__);
/** Is TSAN/ASAN test build */
#if defined(__has_feature)
#if __has_feature(thread_sanitizer) || __has_feature(address_sanitizer)

View file

@ -17,6 +17,7 @@ target_compile_definitions(nano_node
-DNANO_VERSION_MAJOR=${CPACK_PACKAGE_VERSION_MAJOR}
-DNANO_VERSION_MINOR=${CPACK_PACKAGE_VERSION_MINOR}
-DNANO_VERSION_PATCH=${CPACK_PACKAGE_VERSION_PATCH}
-DGIT_COMMIT_HASH=${GIT_COMMIT_HASH}
-DBOOST_PROCESS_SUPPORTED=${BOOST_PROCESS_SUPPORTED})
set_target_properties (nano_node

View file

@ -62,8 +62,9 @@ void nano_daemon::daemon::run (boost::filesystem::path const & data_path, nano::
{
auto network_label = node->network_params.network.get_current_network_as_string ();
auto version = (NANO_VERSION_PATCH == 0) ? NANO_MAJOR_MINOR_VERSION : NANO_MAJOR_MINOR_RC_VERSION;
std::cout << "Network: " << network_label << ", version: " << version << std::endl
<< "Path: " << node->application_path.string () << std::endl;
std::cout << "Network: " << network_label << ", version: " << version << "\n"
<< "Path: " << node->application_path.string () << "\n"
<< "Build Info: " << BUILD_INFO << std::endl;
node->start ();
nano::ipc::ipc_server ipc_server (*node, config.rpc);

View file

@ -1064,6 +1064,7 @@ int main (int argc, char * const * argv)
{
std::cout << "Version " << NANO_MAJOR_MINOR_RC_VERSION << std::endl;
}
std::cout << "Build Info " << BUILD_INFO << std::endl;
}
else
{

View file

@ -18,7 +18,8 @@ target_compile_definitions(nano_rpc
PRIVATE
-DNANO_VERSION_MAJOR=${CPACK_PACKAGE_VERSION_MAJOR}
-DNANO_VERSION_MINOR=${CPACK_PACKAGE_VERSION_MINOR}
-DNANO_VERSION_PATCH=${CPACK_PACKAGE_VERSION_PATCH})
-DNANO_VERSION_PATCH=${CPACK_PACKAGE_VERSION_PATCH}
-DGIT_COMMIT_HASH=${GIT_COMMIT_HASH})
if ((NANO_GUI OR RAIBLOCKS_GUI) AND NOT APPLE)
install(TARGETS nano_rpc

View file

@ -148,6 +148,7 @@ int main (int argc, char * const * argv)
{
std::cout << "Version " << NANO_MAJOR_MINOR_RC_VERSION << std::endl;
}
std::cout << "Build Info " << BUILD_INFO << std::endl;
}
else
{

View file

@ -131,4 +131,5 @@ target_compile_definitions(node
PRIVATE
-DNANO_VERSION_MAJOR=${CPACK_PACKAGE_VERSION_MAJOR}
-DNANO_VERSION_MINOR=${CPACK_PACKAGE_VERSION_MINOR}
-DNANO_VERSION_PATCH=${CPACK_PACKAGE_VERSION_PATCH})
-DNANO_VERSION_PATCH=${CPACK_PACKAGE_VERSION_PATCH}
-DGIT_COMMIT_HASH=${GIT_COMMIT_HASH})

View file

@ -3771,6 +3771,7 @@ void nano::json_handler::version ()
{
response_l.put ("node_vendor", boost::str (boost::format ("Nano %1%") % NANO_MAJOR_MINOR_RC_VERSION));
}
response_l.put ("build_info", BUILD_INFO);
response_errors ();
}

View file

@ -367,6 +367,7 @@ startup_time (std::chrono::steady_clock::now ())
{
logger.always_log ("Node starting, version: ", NANO_MAJOR_MINOR_RC_VERSION);
}
logger.always_log ("Build information: ", BUILD_INFO);
auto network_label = network_params.network.get_current_network_as_string ();
logger.always_log ("Active network: ", network_label);

View file

@ -10,4 +10,5 @@ target_compile_definitions(rpc_test
PRIVATE
-DNANO_VERSION_MAJOR=${CPACK_PACKAGE_VERSION_MAJOR}
-DNANO_VERSION_MINOR=${CPACK_PACKAGE_VERSION_MINOR}
-DNANO_VERSION_PATCH=${CPACK_PACKAGE_VERSION_PATCH})
-DNANO_VERSION_PATCH=${CPACK_PACKAGE_VERSION_PATCH}
-DGIT_COMMIT_HASH=${GIT_COMMIT_HASH})

View file

@ -2416,6 +2416,7 @@ TEST (rpc, version)
{
ASSERT_EQ (boost::str (boost::format ("Nano %1%") % NANO_MAJOR_MINOR_RC_VERSION), response1.json.get<std::string> ("node_vendor"));
}
ASSERT_EQ (BUILD_INFO, response1.json.get<std::string> ("build_info"));
auto headers (response1.resp.base ());
auto allow (headers.at ("Allow"));
auto content_type (headers.at ("Content-Type"));