-
Notifications
You must be signed in to change notification settings - Fork 10.3k
Make types in Microsoft.AspNetCore.DataProtection.KeyManagement.Internal internal #54712
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
Comments
Thank you for submitting this for API review. This will be reviewed by @dotnet/aspnet-api-review at the next meeting of the ASP.NET Core API Review group. Please ensure you take a look at the API review process documentation and ensure that:
|
How does this fit with the API Compat policy of "Never remove/break a public API, and put back anything we removed in the past."? |
I guess I'm struggling to see the harm in removing an undocumented type you can't instantiate, subtype, or access the members of. But, yes, it would technically be a violation of our ironclad guarantee against breaking changes. |
Does our compat guarantee require that they continue to function as they do now or just that they continue to exist? If I made copies in Microsoft.AspNetCore.DataProtection.KeyManagement (no ".Internal") and left these orphaned, would that suffice? Motivating example: I introduced a new interface to avoid breaking the existing |
Related: can I mark these types as |
API rejected. Bend over backwards to not change things. |
Background and Motivation
IInternalXmlKeyManager and ICacheableKeyRingProvider are explicitly test hooks and the other types are implementation details. They aren't included in our public API documentation since they aren't intended for external consumption.
PR: #54707
Proposed API
Usage Examples
Alternative Designs
Risks
There's very little reason to implement any of these interfaces, since the test hooks that accept them are internal. There's very little reason to invoke them, since the members of the returned objects are internal. It is, however, not impossible that people are using them. Furthermore, I don't actually know why they were public in the first place.
The text was updated successfully, but these errors were encountered: