opentelemetry-cpp 1.17 support
On conda-forge a PR was opened to rebuild cpptango with opentelemetry 1.17.
Build is failing. See full logs:
2024-10-15T05:07:43.1951668Z /home/conda/feedstock_root/build_artifacts/cpptango_1728968675512/work/src/common/telemetry/telemetry.cpp: In member function 'void Tango::telemetry::InterfaceImplementation::init_tracer_provider()':
2024-10-15T05:07:43.1962052Z /home/conda/feedstock_root/build_artifacts/cpptango_1728968675512/work/src/common/telemetry/telemetry.cpp:534:107: error: no match for 'operator=' (operand types are 'opentelemetry::v1::nostd::shared_ptr<opentelemetry::v1::trace::TracerProvider>' and 'std::unique_ptr<opentelemetry::v1::sdk::trace::TracerProvider>')
2024-10-15T05:07:43.1963309Z 534 | provider = opentelemetry::sdk::trace::TracerProviderFactory::Create(std::move(processor), resource);
2024-10-15T05:07:43.1964070Z | ^
2024-10-15T05:07:43.1964842Z In file included from /home/conda/feedstock_root/build_artifacts/cpptango_1728968675512/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/include/opentelemetry/trace/span_context.h:8,
2024-10-15T05:07:43.1965782Z from /home/conda/feedstock_root/build_artifacts/cpptango_1728968675512/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/include/opentelemetry/trace/span.h:13,
2024-10-15T05:07:43.1966551Z from /home/conda/feedstock_root/build_artifacts/cpptango_1728968675512/work/src/common/telemetry/telemetry.cpp:14:
2024-10-15T05:07:43.1968108Z /home/conda/feedstock_root/build_artifacts/cpptango_1728968675512/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/include/opentelemetry/nostd/shared_ptr.h:120:15: note: candidate: 'opentelemetry::v1::nostd::shared_ptr<T>& opentelemetry::v1::nostd::shared_ptr<T>::operator=(opentelemetry::v1::nostd::shared_ptr<T>&&) [with T = opentelemetry::v1::trace::TracerProvider]'
2024-10-15T05:07:43.1969787Z 120 | shared_ptr &operator=(shared_ptr &&other) noexcept
2024-10-15T05:07:43.1970134Z | ^~~~~~~~
2024-10-15T05:07:43.2000047Z
See opentelemetry-cpp CHANGELOG:
SDK factory methods such as:
opentelemetry::sdk::trace::TracerProviderFactory::Create() opentelemetry::sdk::metrics::MeterProviderFactory::Create() opentelemetry::sdk::logs::LoggerProviderFactory::Create() opentelemetry::sdk::logs::EventLoggerProviderFactory::Create()
returned an API object (opentelemetry::trace::TracerProvider) to the caller.
After this fix, these methods return an SDK level object (opentelemetry::sdk::trace::TracerProvider) to the caller.
Edited by Benjamin Bertrand