Skip to content

Commit 34d71f7

Browse files
committed
Remove vendored EnvironmentVariablesConfigurationProvider
- Update dependencies to use Microsoft.Extensions.Configuration.EnvironmentVariables. - Add basic E2E test to validate existing ENV VAR behaviour continues to function.
1 parent 2f6ad24 commit 34d71f7

13 files changed

Lines changed: 76 additions & 173 deletions

Directory.Packages.props

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,25 +12,29 @@
1212
-->
1313
<ItemGroup>
1414
<!-- Default to latest versions for all TFMs -->
15+
<PackageVersion Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="[10.0.0,)" />
1516
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="[10.0.0,)" />
1617
<PackageVersion Include="Microsoft.Extensions.Diagnostics.Abstractions" Version="[10.0.0,)" />
1718
<PackageVersion Include="Microsoft.Extensions.Hosting.Abstractions" Version="[10.0.0,)" />
1819
<PackageVersion Include="Microsoft.Extensions.Logging.Configuration" Version="[10.0.0,)" />
1920
</ItemGroup>
2021
<!-- Version overrides for specific netX.0 TFMs -->
2122
<ItemGroup Condition="'$(TargetFramework)' == 'net8.0'">
23+
<PackageVersion Update="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="[8.0.0,)" />
2224
<PackageVersion Update="Microsoft.Extensions.DependencyInjection.Abstractions" Version="[8.0.0,)" />
2325
<PackageVersion Update="Microsoft.Extensions.Diagnostics.Abstractions" Version="[8.0.0,)" />
2426
<PackageVersion Update="Microsoft.Extensions.Hosting.Abstractions" Version="[8.0.0,)" />
2527
<PackageVersion Update="Microsoft.Extensions.Logging.Configuration" Version="[8.0.0,)" />
2628
</ItemGroup>
2729
<ItemGroup Condition="'$(TargetFramework)' == 'net9.0'">
30+
<PackageVersion Update="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="[9.0.0,)" />
2831
<PackageVersion Update="Microsoft.Extensions.DependencyInjection.Abstractions" Version="[9.0.0,)" />
2932
<PackageVersion Update="Microsoft.Extensions.Diagnostics.Abstractions" Version="[9.0.0,)" />
3033
<PackageVersion Update="Microsoft.Extensions.Hosting.Abstractions" Version="[9.0.0,)" />
3134
<PackageVersion Update="Microsoft.Extensions.Logging.Configuration" Version="[9.0.0,)" />
3235
</ItemGroup>
3336
<ItemGroup Condition="'$(TargetFramework)' == 'net10.0'">
37+
<PackageVersion Update="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="[10.0.0,)" />
3438
<PackageVersion Update="Microsoft.Extensions.DependencyInjection.Abstractions" Version="[10.0.0,)" />
3539
<PackageVersion Update="Microsoft.Extensions.Diagnostics.Abstractions" Version="[10.0.0,)" />
3640
<PackageVersion Update="Microsoft.Extensions.Hosting.Abstractions" Version="[10.0.0,)" />

OpenTelemetry.slnx

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -161,11 +161,6 @@
161161
<File Path="src/Shared/Configuration/IConfigurationExtensionsLogger.cs" />
162162
<File Path="src/Shared/Configuration/OpenTelemetryConfigurationExtensions.cs" />
163163
</Folder>
164-
<Folder Name="/Shared/EnvironmentVariables/">
165-
<File Path="src/Shared/EnvironmentVariables/EnvironmentVariablesConfigurationProvider.cs" />
166-
<File Path="src/Shared/EnvironmentVariables/EnvironmentVariablesConfigurationSource.cs" />
167-
<File Path="src/Shared/EnvironmentVariables/EnvironmentVariablesExtensions.cs" />
168-
</Folder>
169164
<Folder Name="/Shared/Metrics/">
170165
<File Path="src/Shared/Metrics/Base2ExponentialBucketHistogramHelper.cs" />
171166
</Folder>

src/OpenTelemetry.Exporter.Zipkin/CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,12 @@ Notes](../../RELEASENOTES.md).
66

77
## Unreleased
88

9+
* Dropped the vendored `EnvironmentVariablesConfigurationProvider` copy; the
10+
provider is now sourced transitively from the
11+
`Microsoft.Extensions.Configuration.EnvironmentVariables` package referenced
12+
by `OpenTelemetry`. No public API or behavioural change.
13+
([#7146](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7146))
14+
915
## 1.15.3
1016

1117
Released 2026-Apr-21

src/OpenTelemetry.Exporter.Zipkin/OpenTelemetry.Exporter.Zipkin.csproj

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
<Compile Include="$(RepoRoot)\src\Shared\Guard.cs" Link="Includes\Guard.cs" />
1616
<Compile Include="$(RepoRoot)\src\Shared\ResourceSemanticConventions.cs" Link="Includes\ResourceSemanticConventions.cs" />
1717
<Compile Include="$(RepoRoot)\src\Shared\ActivityHelperExtensions.cs" Link="Includes\ActivityHelperExtensions.cs" />
18-
<Compile Include="$(RepoRoot)\src\Shared\EnvironmentVariables\*.cs" Link="Includes\EnvironmentVariables\%(Filename).cs" />
1918
<Compile Include="$(RepoRoot)\src\Shared\ExceptionExtensions.cs" Link="Includes\ExceptionExtensions.cs" />
2019
<Compile Include="$(RepoRoot)\src\Shared\Shims\Lock.cs" Link="Includes\Shims\Lock.cs" />
2120
<Compile Include="$(RepoRoot)\src\Shared\Options\*.cs" Link="Includes\Options\%(Filename).cs" />

src/OpenTelemetry/CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,13 @@ Notes](../../RELEASENOTES.md).
66

77
## Unreleased
88

9+
* Replaced the vendored copy of
10+
`EnvironmentVariablesConfigurationProvider` with a direct
11+
`Microsoft.Extensions.Configuration.EnvironmentVariables` package dependency.
12+
Consumers gain automatic pickup of upstream bug fixes and security patches;
13+
no public API or behavioural change.
14+
([#7146](hhttps://github.com/open-telemetry/opentelemetry-dotnet/pull/7146))
15+
916
## 1.15.3
1017

1118
Released 2026-Apr-21

src/OpenTelemetry/OpenTelemetry.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
</PropertyGroup>
99

1010
<ItemGroup>
11+
<PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" />
1112
<PackageReference Include="Microsoft.Extensions.Diagnostics.Abstractions" />
1213
<PackageReference Include="Microsoft.Extensions.Logging.Configuration" />
1314
</ItemGroup>
@@ -19,7 +20,6 @@
1920
<ItemGroup>
2021
<Compile Include="$(RepoRoot)\src\Shared\AssemblyVersionExtensions.cs" Link="Includes\AssemblyVersionExtensions.cs" />
2122
<Compile Include="$(RepoRoot)\src\Shared\Configuration\*.cs" Link="Includes\Configuration\%(Filename).cs" />
22-
<Compile Include="$(RepoRoot)\src\Shared\EnvironmentVariables\*.cs" Link="Includes\EnvironmentVariables\%(Filename).cs" />
2323
<Compile Include="$(RepoRoot)\src\Shared\MathHelper.cs" Link="Includes\MathHelper.cs" />
2424
<Compile Include="$(RepoRoot)\src\Shared\Options\*.cs" Link="Includes\Options\%(Filename).cs" />
2525
<Compile Include="$(RepoRoot)\src\Shared\ResourceSemanticConventions.cs" Link="Includes\ResourceSemanticConventions.cs" />

src/Shared/EnvironmentVariables/EnvironmentVariablesConfigurationProvider.cs

Lines changed: 0 additions & 85 deletions
This file was deleted.

src/Shared/EnvironmentVariables/EnvironmentVariablesConfigurationSource.cs

Lines changed: 0 additions & 29 deletions
This file was deleted.

src/Shared/EnvironmentVariables/EnvironmentVariablesExtensions.cs

Lines changed: 0 additions & 52 deletions
This file was deleted.
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
// Copyright The OpenTelemetry Authors
2+
// SPDX-License-Identifier: Apache-2.0
3+
4+
using OpenTelemetry.Tests;
5+
using OpenTelemetry.Trace;
6+
using Xunit;
7+
8+
namespace OpenTelemetry.Resources.Tests;
9+
10+
[Collection(EnvVarsCollectionDefinition.Name)]
11+
public sealed class EnvironmentVariableResourceIntegrationTests
12+
{
13+
[Fact]
14+
public void TracerProvider_PopulatesResourceFromEnvironmentVariables()
15+
{
16+
// End-to-end smoke for the env-var > IConfiguration > Resource chain used by
17+
// ResourceBuilderExtensions.AddEnvironmentVariableDetector. Drives real OTEL
18+
// spec variables through ResourceBuilder.CreateDefault and reads the live
19+
// Resource off the built TracerProvider. Catches any regression that breaks
20+
// the pipeline between Environment and the SDK's exported resource.
21+
using (new EnvironmentVariableScope("OTEL_SERVICE_NAME", "e2e-env-var-service"))
22+
using (new EnvironmentVariableScope("OTEL_RESOURCE_ATTRIBUTES", "deployment.environment=test,region=eu-west"))
23+
{
24+
using var tracerProvider = Sdk.CreateTracerProviderBuilder().Build();
25+
26+
var attributes = tracerProvider.GetResource().Attributes;
27+
28+
Assert.Contains(new KeyValuePair<string, object>("service.name", "e2e-env-var-service"), attributes);
29+
Assert.Contains(new KeyValuePair<string, object>("deployment.environment", "test"), attributes);
30+
Assert.Contains(new KeyValuePair<string, object>("region", "eu-west"), attributes);
31+
}
32+
}
33+
}

0 commit comments

Comments
 (0)