-
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.DirectoryServices #82453
Conversation
Added When you commit this breaking change:
Tagging @dotnet/compat for awareness of the breaking change. |
Tagging subscribers to this area: @dotnet/area-system-directoryservices, @jay98014 Issue DetailsContributes to #64592. The approach is mostly based on ericstj@3426ddd which is described at #64592 (comment). Basically, the 5 types in S.DS that depend on types from S.S.P are being moved to S.S.P in order to remove the unwanted dependency from S.DS to S.S.P. Those 5 types are either obsolete or used only in parameters in obsolete CAS-related methods. This will still be considered a breaking change, and may require in rare cases (if the obsolete types are used) an extra reference to S.S.P. The System.DirectoryServices.nuspec goes from:
to
See also #82259 which removes the S.S.P dependency from S.Configuration.ConfigurationManager.
|
src/libraries/System.DirectoryServices/ref/System.DirectoryServices.csproj
Show resolved
Hide resolved
...ries/System.Security.Permissions/src/System/DirectoryServices/DirectoryServicesPermission.cs
Outdated
Show resolved
Hide resolved
src/libraries/System.DirectoryServices/src/System.DirectoryServices.csproj
Outdated
Show resolved
Hide resolved
src/libraries/System.Security.Permissions/src/CompatibilitySuppressions.xml
Outdated
Show resolved
Hide resolved
<?xml version="1.0" encoding="utf-8"?> | ||
<!-- https://learn.microsoft.com/en-us/dotnet/fundamentals/package-validation/diagnostic-ids --> | ||
<Suppressions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> | ||
<Suppression> |
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.
These errors are all saying that you are missing the type-forwards from the implementation assembly.
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.
The forwards were added; the "baseline" suppressions are still necessary.
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.
They should not be necessary. API Compat should not raise the error if the type is forwarded - it should see that forward and compare the forwarded definition.
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.
@ViktorHofer looks like something is going wrong with APICompat following type forwards. I pulled this branch and reproduced it. I can inspect the assemblies and I see that the new S.DS has a type forward for these types in S.S.P and the types exist there.
@steveharter please file an issue for this and merge with the suppression.
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.
src/libraries/System.DirectoryServices/ref/System.DirectoryServices.manual.cs
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 though we need to find out why APICompat doesn't follow the forward. That can be handled separately.
Logged #83551 for CI failures:
Other failures appear related to #83482. |
Breaking change issue: dotnet/docs#36724 |
Contributes to #64592.
The approach is mostly based on ericstj@3426ddd which is described at #64592 (comment). Basically, there are 5 types in S.DS that depend on types from S.S.P and this PR moves those to S.S.P so that the unwanted dependency from S.DS to S.S.P is removed. Those 5 types are either obsolete (CAS-related) or used only in parameters in those obsolete methods so they would not normally be referenced \ used.
This is considered a breaking change and may require in rare cases an extra reference to S.S.P (if any of the 5 types are referenced).
The System.DirectoryServices.nuspec goes from:
to
See also #82259 which removes the S.S.P dependency from System.Configuration.ConfigurationManager.
Details: