mirror of
https://github.com/hanzo-ds/cpp.git
synced 2026-10-30 20:31:26 +00:00
Pure rename applied on top of upstream tag v2.6.2 (8d2415d6), not HEAD.
The fork was cut at 737145d = v2.6.2-57, which still declared version 2.6.2
in version.h; renaming there would have shipped 57 unreleased commits wearing
a 2.6.2 label. Reset to the tag first so this commit changes names only.
clickhouse/ -> datastore/ (public include root)
namespace clickhouse -> namespace datastore
CLICKHOUSE_CPP_VERSION -> DATASTORE_CPP_VERSION
clickhouse-cpp-lib/-ut -> datastore-cpp-lib/-ut (CMake, Bazel)
CH_MAP_BOOL_TO_UINT8 -> DS_MAP_BOOL_TO_UINT8
CLICKHOUSE_* -> DATASTORE_* (test env vars)
doc links -> docs.hanzo.ai/datastore
This client speaks the NATIVE binary protocol only - there is no HTTP path
and no X-ClickHouse-* header anywhere in it, so the header rename that the
HTTP clients required does not apply and nothing here was broken.
The one string that reaches the wire is CLIENT_NAME, sent by both SendHello
and SendQuery's ClientInfo from a single macro, and it lands in
system.query_log.client_name. Both sites still read the one macro, so they
stay consistent and the server's Hello/Query consistency check is satisfied.
Old rows keep the old name; that is a reporting discontinuity, not a
migration, since nothing keys on it.
CI is repointed at our own server: ghcr.io/hanzoai/datastore:26.2.3.2, the
image production runs. Its entrypoint honours DATASTORE_SKIP_USER_SETUP, not
the CLICKHOUSE_ spelling the compose file used, and its config lives in
/etc/hanzo-datastore-server. ci/docker-compose/config.xml is now layered in
as a config.d drop-in so the image keeps its own white-labelling. That file
and users.xml deliberately keep a <clickhouse> root: it must match the roots
of the drop-ins the image ships, and a mismatch fails silently - the server
logs "Merging bypassed" and starts with every drop-in discarded.
The remote-TLS suites used to default to the third-party host
play.clickhouse.com. They now read DATASTORE_SECURE*_HOST and skip when it is
unset rather than point at a host we do not run.
Dropped as upstream infrastructure with no meaning here: AI_POLICY.md
(upstream's policy about their codebase), .travis.yml (dead CI referencing a
third-party apt repo), cross-repo-bug-relay.yml (relays our issues into an
upstream triage repo). LICENSE keeps its copyright notice, as Apache-2.0
requires.
Verified: cmake configure + 115-target build clean; the full suite is green
against ghcr.io/hanzoai/datastore:26.2.3.2 (894 passed, 0 failed); the
pristine v2.6.2 build run against that same server passes the identical set,
and both logged the same 3914 queries under their respective client names.
88 lines
3.2 KiB
CMake
88 lines
3.2 KiB
CMake
# Set version value for the project and validate that it matches version reported by git.
|
|
|
|
# Reference values are taken from the version.h.
|
|
# So even if the library code is decoupled from the cmake-specific project,
|
|
# source files still have proper version information.
|
|
|
|
function (regex_extract_matching_groups INPUT REGEX_STR)
|
|
string (REGEX MATCHALL "${REGEX_STR}" _ "${INPUT}")
|
|
if (NOT CMAKE_MATCH_0)
|
|
return()
|
|
endif()
|
|
|
|
set (MATCH_GROUP_INDEX 0)
|
|
foreach (OUTPUT_VAR ${ARGN})
|
|
math (EXPR MATCH_GROUP_INDEX "${MATCH_GROUP_INDEX}+1")
|
|
set (MATCH_GROUP_VALUE "${CMAKE_MATCH_${MATCH_GROUP_INDEX}}")
|
|
set ("${OUTPUT_VAR}" "${MATCH_GROUP_VALUE}" PARENT_SCOPE)
|
|
endforeach ()
|
|
endfunction ()
|
|
|
|
|
|
function(datastore_cpp_get_version)
|
|
# Extract all components of the version from the datastore/version.h
|
|
|
|
file(READ ${CMAKE_CURRENT_SOURCE_DIR}/datastore/version.h VERSION_FILE_DATA)
|
|
|
|
foreach (VERSION_COMPONENT
|
|
IN ITEMS
|
|
DATASTORE_CPP_VERSION_MAJOR
|
|
DATASTORE_CPP_VERSION_MINOR
|
|
DATASTORE_CPP_VERSION_PATCH
|
|
DATASTORE_CPP_VERSION_BUILD)
|
|
|
|
regex_extract_matching_groups(
|
|
"${VERSION_FILE_DATA}"
|
|
"#define ${VERSION_COMPONENT} ([0-9]+)"
|
|
"${VERSION_COMPONENT}")
|
|
|
|
set ("${VERSION_COMPONENT}" "${${VERSION_COMPONENT}}" PARENT_SCOPE)
|
|
endforeach ()
|
|
|
|
set(DATASTORE_CPP_VERSION "${DATASTORE_CPP_VERSION_MAJOR}.${DATASTORE_CPP_VERSION_MINOR}.${DATASTORE_CPP_VERSION_PATCH}" PARENT_SCOPE)
|
|
endfunction()
|
|
|
|
datastore_cpp_get_version()
|
|
|
|
function(datastore_cpp_check_library_version CHECK_MODE)
|
|
## Verify that current tag matches the version
|
|
|
|
find_program (GIT git)
|
|
if (GIT)
|
|
execute_process(
|
|
COMMAND ${GIT} describe --tags
|
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
|
OUTPUT_VARIABLE GIT_DESCRIBE_DATA
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
)
|
|
|
|
regex_extract_matching_groups(
|
|
"${GIT_DESCRIBE_DATA}"
|
|
"^v([0-9]+)\\.([0-9]+)\\.([0-9]+)(\\-([0-9]+).*)?"
|
|
VERSION_FROM_GIT_DESCRIBE_MAJOR
|
|
VERSION_FROM_GIT_DESCRIBE_MINOR
|
|
VERSION_FROM_GIT_DESCRIBE_PATCH
|
|
DATASTORE_CPP_VERSION_COMMIT
|
|
)
|
|
|
|
if (NOT (VERSION_FROM_GIT_DESCRIBE_MAJOR AND VERSION_FROM_GIT_DESCRIBE_MINOR AND VERSION_FROM_GIT_DESCRIBE_PATCH))
|
|
message (${CHECK_MODE} "version obtained from `git describe` doesn't look like a valid version: \"${GIT_DESCRIBE_DATA}\"")
|
|
return ()
|
|
endif ()
|
|
|
|
set (EXPECTED_DATASTORE_CPP_VERSION "${VERSION_FROM_GIT_DESCRIBE_MAJOR}.${VERSION_FROM_GIT_DESCRIBE_MINOR}.${VERSION_FROM_GIT_DESCRIBE_PATCH}")
|
|
if (NOT "${EXPECTED_DATASTORE_CPP_VERSION}" STREQUAL ${DATASTORE_CPP_VERSION})
|
|
message(${CHECK_MODE} "update DATASTORE_CPP_VERSION_ values in version.h.\n"
|
|
"git reports version as \"${GIT_DESCRIBE_DATA}\","
|
|
" hence expecting version to be ${EXPECTED_DATASTORE_CPP_VERSION}, "
|
|
" instead got ${DATASTORE_CPP_VERSION}")
|
|
endif ()
|
|
else ()
|
|
message (${CHECK_MODE} "git is not found, can't verify library version")
|
|
endif ()
|
|
|
|
message("Version check passed: ${DATASTORE_CPP_VERSION}")
|
|
endfunction()
|
|
|
|
# datastore_cpp_check_library_version()
|