Skip to content

Commit 70d5fc0

Browse files
authored
Document minimum required versions
The libraries that opentelemetry-cpp requires have minimum required versions which are higher than the ones that are natively available on the systems being tested. By listing the exact versions of the libraries, the dependencies are clearly stated which removes the guesswork from build problems.
1 parent dbd0680 commit 70d5fc0

File tree

2 files changed

+11
-7
lines changed

2 files changed

+11
-7
lines changed

docs/dependencies.md

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ There are
66
- Internal dependencies as the part of code from external libraries
77
backported/copied in main repo.
88

9+
The minimum required versions of the third-party libraries that are required can be found in the [third_party_minimum](../install/cmake/third_party_minimum) file. The minimum supported versions are listed here for convenience but the authorative source is always the linked file.
10+
911
Both these dependencies are listed here:
1012

1113
## Internal dependencies
@@ -37,7 +39,7 @@ Both these dependencies are listed here:
3739

3840
- [OTLP/HTTP+JSON](/exporters/otlp)
3941
exporter:
40-
- [protobuf](https://github.com/protocolbuffers/protobuf): Library to
42+
- [protobuf](https://github.com/protocolbuffers/protobuf) (v3.21.6 or later): Library to
4143
serialize structured data.
4244
- OTLP messages are constructed as protobuf payloads.
4345
- `protoc` compiler is used to generate C++ stubs for proto files provided
@@ -48,17 +50,17 @@ Both these dependencies are listed here:
4850
[here](https://github.com/protocolbuffers/protobuf/blob/master/LICENSE).
4951
The code generated by protoc compiler is owned by the owner of `.proto`
5052
file.
51-
- [libcurl](https://curl.se/libcurl/) : the multiprotocol file transfer
53+
- [libcurl](https://curl.se/libcurl/) (curl-7_81_0 or later) : the multiprotocol file transfer
5254
library.
5355
- Export connects with opentelemetry collector over HTTP protocol using
5456
libcurl library
5557
- License: Inspired by `MIT/X` but not same.
5658
<https://curl.se/docs/copyright.html>
57-
- [nlohmann/json](https://github.com/nlohmann/json): JSON for Modern C++.
59+
- [nlohmann/json](https://github.com/nlohmann/json) (v3.10.5 or later): JSON for Modern C++.
5860
- protobuf serialized otlp messages are encoded in JSON format using this
5961
library.
6062
- License: `MIT License`
61-
- [zlib](https://www.zlib.net/): A Massively Spiffy Yet Delicately
63+
- [zlib](https://www.zlib.net/) (v1.2.11 or later): A Massively Spiffy Yet Delicately
6264
Unobtrusive Compression Library.
6365
- The `http_client` utilizes zlib to compress the message body and send
6466
it in gzip format.
@@ -68,7 +70,7 @@ Both these dependencies are listed here:
6870
- [OTLP/gRPC](/exporters/otlp)
6971
exporter:
7072
- `protobuf` OTLP messages are constructed as protobuf payloads.
71-
- [gRPC](https://github.com/grpc/grpc): An RPC library and framework
73+
- [gRPC](https://github.com/grpc/grpc) (v1.49.2 or later): An RPC library and framework
7274
- Exporter communicates with OTLP collector using gRPC transport mechanism.
7375
- License: `Apache License 2.0`
7476

@@ -84,7 +86,7 @@ Both these dependencies are listed here:
8486

8587
- [Prometheus](/exporters/prometheus)
8688
exporter:
87-
- [`prometheus-cpp`](https://github.com/jupp0r/prometheus-cpp) Prometheus
89+
- [`prometheus-cpp`](https://github.com/jupp0r/prometheus-cpp) (v1.1.0 or later) Prometheus
8890
Client Library for Modern C++
8991
- License: `MIT License`
9092

@@ -95,7 +97,7 @@ Both these dependencies are listed here:
9597

9698
- [Opentracing](/opentracing-shim)
9799
shim:
98-
- [`opentracing-cpp`](https://github.com/opentracing/opentracing-cpp)
100+
- [`opentracing-cpp`](https://github.com/opentracing/opentracing-cpp) (v1.6.0 or later)
99101
OpenTracing API for C++
100102
- A bridge layer implementing the OpenTracing API using the OpenTelemetry API
101103
- License: `Apache License 2.0`

install/cmake/third_party_minimum

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
# Minimum supported version git tags of third-party dependencies
55
# Format: <dependency_name>=<release_git_tag>
66

7+
# Update docs/dependencies.md whenever the minimum version of a library is modified.
8+
79
abseil=20220623.2
810
zlib=v1.2.11
911
curl=curl-7_81_0

0 commit comments

Comments
 (0)