-
Notifications
You must be signed in to change notification settings - Fork 4.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove S.S.Permissions reference from S.C.ConfigurationManager #82259
Conversation
Tagging subscribers to this area: @dotnet/area-system-configuration Issue DetailsContributes to #64592 This PR, if approved, will replace #80347 since it is less risky by not requiring removing public members. This is possible since it turns out S.S.P does not contain the implementation of the The use of This will still be considered a breaking change, but only because a package reference was removed. The System.Configuration.ConfigurationManager .nuspec goes from:
to:
|
Added When you commit this breaking change:
Tagging @dotnet/compat for awareness of the breaking change. |
@ViktorHofer there's a package test failure like this:
coming from Arcade's Microsoft.DotNet.PackageTesting I believe. Do you know if there a suppression mechanism for that? |
That usually indicates that package is incorrectly authored. @ericstj can you please take a look? I lack knowledge of what this PR tries to achieve and I currently don't have cycles to investigate further. |
I added another commit that should address this. |
As Eric is out, please hold off merging until he is back and took a look. Just want to make sure that we understand all the implications of the change. |
This approach does leave a dangling reference to
This is because the netstandard build of S.S.P cross-compiles As mentioned earlier, the Net8.0 and Net462 builds of S.C.CM have a runtime reference instead since those types are implemented in corelib: |
src/libraries/testPackages/frameworkSettings/netstandard/settings.targets
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
...stem.Configuration.ConfigurationManager/ref/System.Configuration.ConfigurationManager.csproj
Show resolved
Hide resolved
<Project> | ||
<ItemGroup> | ||
<!-- intentional dangling ref in System.Configuration.ConfigurationManager --> | ||
<IgnoredReference Include="System.Security.Permissions" /> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Interesting -- it looks like System.Runtime.Caching is the only library that retained it's control knob to from config file:
runtime/src/libraries/System.Runtime.Caching/src/System/Runtime/Caching/MemoryCacheStatistics.cs
Line 129 in 0a15c3b
MemoryCacheSection section = ConfigurationManager.GetSection("system.runtime.caching/memoryCache") as MemoryCacheSection; |
Probably because it was viewed as a "legacy" package with a replacement in Microsoft.Extensions -- similar to System.Configuration.ConfiguratinManager itself.
Breaking change issue: dotnet/docs#36720 |
Contributes to #64592
This PR, if approved, will replace #80347 since it is less risky by not requiring removing public members. This is possible since it turns out S.S.P does not contain the implementation of the
PermissionSet
class (it's in corelib).The use of
PrivateAssets="all"
allows the reference to the S.S.P package to be removed from the netstandard version of the S.C.CM package.This will still be considered a breaking change, but only because a package reference was removed.
The System.Configuration.ConfigurationManager .nuspec goes from:
to: