Skip to content

Commit 611906e

Browse files
authored
[REMOVAL] Remove build option WITH_DEPRECATED_SDK_FACTORY (#2717)
1 parent 0a43c1f commit 611906e

25 files changed

+39
-517
lines changed

.github/workflows/iwyu.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ jobs:
4040
-DWITH_STL=CXX14 \
4141
-DCMAKE_CXX_INCLUDE_WHAT_YOU_USE="include-what-you-use;-w;-Xiwyu;--mapping_file=${TOPDIR}/.iwyu.imp;" \
4242
-DBUILD_TESTING=OFF \
43-
-DWITH_DEPRECATED_SDK_FACTORY=OFF \
4443
-DBUILD_W3CTRACECONTEXT_TEST=OFF \
4544
-DWITH_OTLP_GRPC=OFF \
4645
-DWITH_OTLP_HTTP=ON \

CHANGELOG.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,44 @@ Increment the:
1818
* [CI] Add a clang-tidy build
1919
[#3001](https://github.com/open-telemetry/opentelemetry-cpp/pull/3001)
2020

21+
* [REMOVAL] Remove build option `WITH_DEPRECATED_SDK_FACTORY`
22+
[#2717](https://github.com/open-telemetry/opentelemetry-cpp/pull/2717)
23+
24+
Breaking changes:
25+
26+
* [REMOVAL] Remove build option `WITH_DEPRECATED_SDK_FACTORY`
27+
[#2717](https://github.com/open-telemetry/opentelemetry-cpp/pull/2717)
28+
29+
* As announced in opentelemetry-cpp previous release 1.16.0,
30+
CMake option `WITH_DEPRECATED_SDK_FACTORY` was temporary,
31+
and to be removed by the next release.
32+
* This option is now removed.
33+
* Code configuring the SDK must be adjusted, as previously described:
34+
35+
* [API/SDK] Provider cleanup
36+
[#2664](https://github.com/open-telemetry/opentelemetry-cpp/pull/2664)
37+
38+
* Before this fix:
39+
* SDK factory methods such as:
40+
* opentelemetry::sdk::trace::TracerProviderFactory::Create()
41+
* opentelemetry::sdk::metrics::MeterProviderFactory::Create()
42+
* opentelemetry::sdk::logs::LoggerProviderFactory::Create()
43+
* opentelemetry::sdk::logs::EventLoggerProviderFactory::Create()
44+
45+
returned an API object (opentelemetry::trace::TracerProvider)
46+
to the caller.
47+
48+
* After this fix, these methods return an SDK level object
49+
(opentelemetry::sdk::trace::TracerProvider) to the caller.
50+
* Returning an SDK object is necessary for the application to
51+
cleanup and invoke SDK level methods, such as ForceFlush(),
52+
on a provider.
53+
* The application code that configures the SDK, by calling
54+
the various provider factories, may need adjustment.
55+
* All the examples have been updated, and in particular no
56+
longer perform static_cast do convert an API object to an SDK object.
57+
Please refer to examples for guidance on how to adjust.
58+
2159
## [1.16.1 2024-07-17]
2260

2361
* [BUILD] Add bazel missing BUILD file

CMakeLists.txt

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -159,14 +159,6 @@ message(STATUS "OPENTELEMETRY_VERSION=${OPENTELEMETRY_VERSION}")
159159

160160
option(WITH_NO_DEPRECATED_CODE "Do not include deprecated code" OFF)
161161

162-
# This option is temporary, and will be removed. Set
163-
# WITH_DEPRECATED_SDK_FACTORY=OFF to migrate to the new SDK code.
164-
option(WITH_DEPRECATED_SDK_FACTORY "Use deprecated SDK provider factory" ON)
165-
166-
if(WITH_DEPRECATED_SDK_FACTORY)
167-
message(WARNING "WITH_DEPRECATED_SDK_FACTORY=ON is temporary and deprecated")
168-
endif()
169-
170162
set(WITH_STL
171163
"OFF"
172164
CACHE STRING "Which version of the Standard Library for C++ to use")
@@ -204,13 +196,6 @@ if(NOT WITH_STL STREQUAL "OFF")
204196
endif()
205197
endif()
206198

207-
if(DEFINED WITH_OTLP)
208-
message(
209-
FATAL_ERROR
210-
"WITH_OTLP is deprecated. Please set either WITH_OTLP_GRPC=ON, WITH_OTLP_HTTP=ON, or both to ON."
211-
)
212-
endif()
213-
214199
option(WITH_OTLP_GRPC_SSL_MTLS_PREVIEW
215200
"Whether to enable mTLS support fro gRPC" OFF)
216201

@@ -294,10 +279,6 @@ option(
294279

295280
option(WITH_FUNC_TESTS "Whether to build functional tests" ON)
296281

297-
if(DEFINED WITH_LOGS_PREVIEW)
298-
message(WARNING "WITH_LOGS_PREVIEW is removed because logs signal is stable")
299-
endif()
300-
301282
option(WITH_ASYNC_EXPORT_PREVIEW "Whether to enable async export" OFF)
302283

303284
# Exemplar specs status is experimental, so behind feature flag by default

DEPRECATED.md

Lines changed: 1 addition & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -88,85 +88,7 @@ No date set yet for the Jaeger Propagator.
8888

8989
## [opentelemetry-cpp SDK]
9090

91-
### SDK ProviderFactory cleanup
92-
93-
#### Announcement (SDK ProviderFactory cleanup)
94-
95-
* Version: 1.15.0
96-
* Date: 2024-06-03
97-
* PR: [API/SDK] Provider cleanup
98-
[#2664](https://github.com/open-telemetry/opentelemetry-cpp/pull/2664)
99-
100-
This PR introduces changes to SDK ProviderFactory methods.
101-
102-
#### Motivation (SDK ProviderFactory cleanup)
103-
104-
SDK Factory methods for signal providers, such as:
105-
106-
* opentelemetry::sdk::trace::TracerProviderFactory
107-
* opentelemetry::sdk::metrics::MeterProviderFactory
108-
* opentelemetry::sdk::logs::LoggerProviderFactory
109-
* opentelemetry::sdk::logs::EventLoggerProviderFactory
110-
111-
currently returns a unique pointer on a API class.
112-
113-
This is incorrect, the proper return type should be
114-
a unique pointer on a SDK class instead.
115-
116-
#### Scope (SDK ProviderFactory cleanup)
117-
118-
All the current Create methods in:
119-
120-
* class opentelemetry::sdk::trace::TracerProviderFactory
121-
* class opentelemetry::sdk::metrics::MeterProviderFactory
122-
* class opentelemetry::sdk::logs::LoggerProviderFactory
123-
* class opentelemetry::sdk::logs::EventLoggerProviderFactory
124-
125-
are marked as deprecated, as they return an API object.
126-
127-
Instead, another set of Create methods is provided,
128-
with a different return type, an SDK object.
129-
130-
Both sets can not be exposed at the same time,
131-
as this would cause build breaks,
132-
so a compilation flag is defined to select which methods to use.
133-
134-
When OPENTELEMETRY_DEPRECATED_SDK_FACTORY is defined,
135-
the old, deprecated, methods are available.
136-
137-
When OPENTELEMETRY_DEPRECATED_SDK_FACTORY is not defined,
138-
the new methods are available.
139-
140-
The scope of this deprecation and removal,
141-
is to remove the flag OPENTELEMETRY_DEPRECATED_SDK_FACTORY itself,
142-
which implies that only the new set of Create() methods,
143-
returning an SDK object, are supported.
144-
145-
#### Mitigation (SDK ProviderFactory cleanup)
146-
147-
Build without defining flag OPENTELEMETRY_DEPRECATED_SDK_FACTORY.
148-
149-
Existing code, such as:
150-
151-
```cpp
152-
std::shared_ptr<opentelemetry::trace::TracerProvider> tracer_provider;
153-
tracer_provider = opentelemetry::sdk::trace::TracerProviderFactory::Create(...);
154-
```
155-
156-
should be adjusted to:
157-
158-
```cpp
159-
std::shared_ptr<opentelemetry::sdk::trace::TracerProvider> tracer_provider;
160-
tracer_provider = opentelemetry::sdk::trace::TracerProviderFactory::Create(...);
161-
```
162-
163-
#### Planned removal (SDK ProviderFactory cleanup)
164-
165-
Flag OPENTELEMETRY_DEPRECATED_SDK_FACTORY is introduced in release 1.16.0,
166-
to provide a migration path.
167-
168-
This flag is meant to be temporary, and short lived.
169-
Expect removal by release 1.17.0
91+
N/A
17092

17193
## [opentelemetry-cpp Exporter]
17294

api/CMakeLists.txt

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,6 @@ if(WITH_NO_DEPRECATED_CODE)
3535
INTERFACE OPENTELEMETRY_NO_DEPRECATED_CODE)
3636
endif()
3737

38-
if(WITH_DEPRECATED_SDK_FACTORY)
39-
target_compile_definitions(opentelemetry_api
40-
INTERFACE OPENTELEMETRY_DEPRECATED_SDK_FACTORY)
41-
endif()
42-
4338
if(WITH_ABSEIL)
4439
target_compile_definitions(opentelemetry_api INTERFACE HAVE_ABSEIL)
4540
target_link_libraries(

ci/do_ci.ps1

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,6 @@ switch ($action) {
135135
cmake $SRC_DIR `
136136
-DOTELCPP_MAINTAINER_MODE=ON `
137137
-DWITH_NO_DEPRECATED_CODE=ON `
138-
-DWITH_DEPRECATED_SDK_FACTORY=OFF `
139138
-DVCPKG_TARGET_TRIPLET=x64-windows `
140139
"-DCMAKE_TOOLCHAIN_FILE=$VCPKG_DIR/scripts/buildsystems/vcpkg.cmake"
141140
$exit = $LASTEXITCODE
@@ -160,7 +159,6 @@ switch ($action) {
160159
-DCMAKE_CXX_STANDARD=20 `
161160
-DOTELCPP_MAINTAINER_MODE=ON `
162161
-DWITH_NO_DEPRECATED_CODE=ON `
163-
-DWITH_DEPRECATED_SDK_FACTORY=OFF `
164162
-DVCPKG_TARGET_TRIPLET=x64-windows `
165163
"-DCMAKE_TOOLCHAIN_FILE=$VCPKG_DIR/scripts/buildsystems/vcpkg.cmake"
166164
$exit = $LASTEXITCODE

ci/do_ci.sh

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,6 @@ elif [[ "$1" == "cmake.maintainer.sync.test" ]]; then
130130
-DWITH_ASYNC_EXPORT_PREVIEW=OFF \
131131
-DOTELCPP_MAINTAINER_MODE=ON \
132132
-DWITH_NO_DEPRECATED_CODE=ON \
133-
-DWITH_DEPRECATED_SDK_FACTORY=OFF \
134133
-DWITH_OTLP_HTTP_COMPRESSION=ON \
135134
${IWYU} \
136135
"${SRC_DIR}"
@@ -153,7 +152,6 @@ elif [[ "$1" == "cmake.maintainer.async.test" ]]; then
153152
-DWITH_ASYNC_EXPORT_PREVIEW=ON \
154153
-DOTELCPP_MAINTAINER_MODE=ON \
155154
-DWITH_NO_DEPRECATED_CODE=ON \
156-
-DWITH_DEPRECATED_SDK_FACTORY=OFF \
157155
-DWITH_OTLP_HTTP_COMPRESSION=ON \
158156
${IWYU} \
159157
"${SRC_DIR}"
@@ -177,7 +175,6 @@ elif [[ "$1" == "cmake.maintainer.cpp11.async.test" ]]; then
177175
-DWITH_ASYNC_EXPORT_PREVIEW=ON \
178176
-DOTELCPP_MAINTAINER_MODE=ON \
179177
-DWITH_NO_DEPRECATED_CODE=ON \
180-
-DWITH_DEPRECATED_SDK_FACTORY=OFF \
181178
-DWITH_OTLP_HTTP_COMPRESSION=ON \
182179
"${SRC_DIR}"
183180
make -k -j $(nproc)
@@ -199,7 +196,6 @@ elif [[ "$1" == "cmake.maintainer.abiv2.test" ]]; then
199196
-DWITH_ASYNC_EXPORT_PREVIEW=OFF \
200197
-DOTELCPP_MAINTAINER_MODE=ON \
201198
-DWITH_NO_DEPRECATED_CODE=ON \
202-
-DWITH_DEPRECATED_SDK_FACTORY=OFF \
203199
-DWITH_ABI_VERSION_1=OFF \
204200
-DWITH_ABI_VERSION_2=ON \
205201
-DWITH_OTLP_HTTP_COMPRESSION=ON \

examples/logs_simple/main.cc

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -44,13 +44,8 @@ void InitTracer()
4444
auto exporter = trace_exporter::OStreamSpanExporterFactory::Create();
4545
auto processor = trace_sdk::SimpleSpanProcessorFactory::Create(std::move(exporter));
4646

47-
#ifdef OPENTELEMETRY_DEPRECATED_SDK_FACTORY
48-
std::shared_ptr<opentelemetry::trace::TracerProvider> provider =
49-
opentelemetry::sdk::trace::TracerProviderFactory::Create(std::move(processor));
50-
#else
5147
std::shared_ptr<opentelemetry::sdk::trace::TracerProvider> provider =
5248
opentelemetry::sdk::trace::TracerProviderFactory::Create(std::move(processor));
53-
#endif /* OPENTELEMETRY_DEPRECATED_SDK_FACTORY */
5449

5550
// Set the global trace provider
5651
const std::shared_ptr<trace_api::TracerProvider> &api_provider = provider;
@@ -70,13 +65,8 @@ void InitLogger()
7065
std::unique_ptr<logs_sdk::LogRecordExporter>(new logs_exporter::OStreamLogRecordExporter);
7166
auto processor = logs_sdk::SimpleLogRecordProcessorFactory::Create(std::move(exporter));
7267

73-
#ifdef OPENTELEMETRY_DEPRECATED_SDK_FACTORY
74-
std::shared_ptr<opentelemetry::logs::LoggerProvider> provider(
75-
opentelemetry::sdk::logs::LoggerProviderFactory::Create(std::move(processor)));
76-
#else
7768
std::shared_ptr<opentelemetry::sdk::logs::LoggerProvider> provider(
7869
opentelemetry::sdk::logs::LoggerProviderFactory::Create(std::move(processor)));
79-
#endif /* OPENTELEMETRY_DEPRECATED_SDK_FACTORY */
8070

8171
// Set the global logger provider
8272
const std::shared_ptr<logs_api::LoggerProvider> &api_provider = provider;

examples/metrics_simple/metrics_ostream.cc

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -57,12 +57,7 @@ void InitMetrics(const std::string &name)
5757
auto reader =
5858
metrics_sdk::PeriodicExportingMetricReaderFactory::Create(std::move(exporter), options);
5959

60-
#ifdef OPENTELEMETRY_DEPRECATED_SDK_FACTORY
61-
auto u_provider = opentelemetry::sdk::metrics::MeterProviderFactory::Create();
62-
auto *provider = static_cast<opentelemetry::sdk::metrics::MeterProvider *>(u_provider.get());
63-
#else
6460
auto provider = opentelemetry::sdk::metrics::MeterProviderFactory::Create();
65-
#endif /* OPENTELEMETRY_DEPRECATED_SDK_FACTORY */
6661

6762
provider->AddMetricReader(std::move(reader));
6863

@@ -118,11 +113,7 @@ void InitMetrics(const std::string &name)
118113
provider->AddView(std::move(histogram_instrument_selector), std::move(histogram_meter_selector),
119114
std::move(histogram_view));
120115

121-
#ifdef OPENTELEMETRY_DEPRECATED_SDK_FACTORY
122-
std::shared_ptr<opentelemetry::metrics::MeterProvider> api_provider(std::move(u_provider));
123-
#else
124116
std::shared_ptr<opentelemetry::metrics::MeterProvider> api_provider(std::move(provider));
125-
#endif /* OPENTELEMETRY_DEPRECATED_SDK_FACTORY */
126117

127118
metrics_api::Provider::SetMeterProvider(api_provider);
128119
}

examples/otlp/file_log_main.cc

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -46,13 +46,8 @@ namespace
4646
opentelemetry::exporter::otlp::OtlpFileExporterOptions opts;
4747
opentelemetry::exporter::otlp::OtlpFileLogRecordExporterOptions log_opts;
4848

49-
#ifdef OPENTELEMETRY_DEPRECATED_SDK_FACTORY
50-
std::shared_ptr<opentelemetry::trace::TracerProvider> tracer_provider;
51-
std::shared_ptr<opentelemetry::logs::LoggerProvider> logger_provider;
52-
#else
5349
std::shared_ptr<opentelemetry::sdk::trace::TracerProvider> tracer_provider;
5450
std::shared_ptr<opentelemetry::sdk::logs::LoggerProvider> logger_provider;
55-
#endif /* OPENTELEMETRY_DEPRECATED_SDK_FACTORY */
5651

5752
void InitTracer()
5853
{
@@ -71,11 +66,7 @@ void CleanupTracer()
7166
// We call ForceFlush to prevent to cancel running exportings, It's optional.
7267
if (tracer_provider)
7368
{
74-
#ifdef OPENTELEMETRY_DEPRECATED_SDK_FACTORY
75-
static_cast<opentelemetry::sdk::trace::TracerProvider *>(tracer_provider.get())->ForceFlush();
76-
#else
7769
tracer_provider->ForceFlush();
78-
#endif /* OPENTELEMETRY_DEPRECATED_SDK_FACTORY */
7970
}
8071

8172
tracer_provider.reset();
@@ -99,11 +90,7 @@ void CleanupLogger()
9990
// We call ForceFlush to prevent to cancel running exportings, It's optional.
10091
if (logger_provider)
10192
{
102-
#ifdef OPENTELEMETRY_DEPRECATED_SDK_FACTORY
103-
static_cast<opentelemetry::sdk::logs::LoggerProvider *>(logger_provider.get())->ForceFlush();
104-
#else
10593
logger_provider->ForceFlush();
106-
#endif /* OPENTELEMETRY_DEPRECATED_SDK_FACTORY */
10794
}
10895

10996
logger_provider.reset();

0 commit comments

Comments
 (0)