Skip to content
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

Add test to compare public API between Microsoft-built and source-built SDKs #4795

Open
mthalman opened this issue Dec 5, 2024 · 1 comment
Labels
area-testing Improvements in CI and testing

Comments

@mthalman
Copy link
Member

mthalman commented Dec 5, 2024

A recent issue occurred in .NET 9 where the Microsoft.AspNetCore.Server.HttpSys assembly was essentially empty in the source-built SDK: dotnet/aspnetcore#59166. This was not caught prior to GA because there were no tests that validated the usage of this assembly on a source-built SDK.

We should consider defining a test, similar to the exists tests in SdkContentTests.cs, that compares the public API between the Microsoft-built and source-built SDKs. The assertion is that the APIs are identical between the two. As a general purpose test, this would apply to all assemblies and would have caught this issue well in advance of GA release.

@MichaelSimons
Copy link
Member

[Triage] It is likely that a baseline mechanism is going to be needed as there are components intentionally excluded from SB. Exclusions would likely be needed at api, class, and namespace levels to help with maintainability. There could also be some difference caused by version differences between the two builds.

@MichaelSimons MichaelSimons moved this from Backlog to 10.0 in .NET Source Build Dec 12, 2024
@MichaelSimons MichaelSimons added area-testing Improvements in CI and testing and removed area-additional-repos Adding additional contributing repos untriaged labels Dec 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-testing Improvements in CI and testing
Projects
Status: 10.0
Development

No branches or pull requests

2 participants