React to APICompat changes enabling reverse APICompat for facades#37375
React to APICompat changes enabling reverse APICompat for facades#37375ericstj merged 8 commits intodotnet:masterfrom
Conversation
|
@ViktorHofer @safern : tests tab shows no failures, yet the send to helix step is reporting a failure. Might be something amiss in the AZDO test integration. |
|
Can you point me to the AzDO build? Usually that happens when the work item starts to fail. We mentioned that in the mail that I sent out earlier this week. |
| @@ -0,0 +1,3 @@ | |||
| Compat issues with assembly System.Utf8String.Experimental: | |||
| MembersMustExist : Member 'System.Utf8String.Substring(System.Index)' does not exist in the reference but it does exist in the implementation. | |||
There was a problem hiding this comment.
There was a problem hiding this comment.
Unless it was meant to be removed as part of dotnet/coreclr#24036. cc @tarekgh
There was a problem hiding this comment.
@ahsonkhan yes this method is removed. callers can use Utf8String[Index.GetOffset(Length)..] instead.
There was a problem hiding this comment.
It is still present in the implementation, thus the baseline. https://github.com/dotnet/coreclr/blob/c2e71fd5e711ca150e238741015a1a0229606793/src/System.Private.CoreLib/src/System/Utf8String.Manipulation.cs#L31
|
Removing NO MERGE. This is now ready to go. FYI: this means we now will run reverse API compat on all implmentation assemblies (including partial facades) so it may mean more things to fix in the coreclr ingestion PRs. |
|
@ViktorHofer looks like this might be failing due to dotnet/arcade#2402 |
|
Oh right. Let me fix that. |
|
Fixed, the host was missing. This is a workaround, I would have expected the RemoteExecutor/build file to deal with copying the host to the output dir. Seems like depproj files don't import such. |
That's what I thought. It seemed to me like restore didn't even write this to the generated targets file, so it might be an issue with the naming convention in the package. Here's what I see in the assets file: "targets": {
".NETCoreApp,Version=v3.0": {
"Microsoft.DotNet.RemoteExecutor/1.0.0-beta.19256.12": {
"type": "package",
"dependencies": {
"xunit.assert": "2.4.1-pre.build.4059"
},
"compile": {
"lib/netcoreapp2.1/Microsoft.DotNet.RemoteExecutor.dll": {}
},
"runtime": {
"lib/netcoreapp2.1/Microsoft.DotNet.RemoteExecutor.dll": {}
},
"build": {
"build/_._": {}
}
},Maybe something is adding ExcludeAssets? |
|
NIT: looks like you ran a msbuild /bl and checked in the msbuild.ProjectImports.zip by mistake on the AsyncInterfaces src directory 😆 |
joperezr
left a comment
There was a problem hiding this comment.
Left a few minor comments but this LGTM. From the build errors looks like you are still missing a baseline in System.Threading.Tasks.
Yeah, this is do to @stephentoub's rename from this morning 51478cf. We can baseline them until we get a build from CoreCLR with them removed. |
| @@ -0,0 +1,17 @@ | |||
| Compat issues with assembly System.Runtime.Intrinsics: | |||
| CannotRemoveAttribute : Attribute 'System.CLSCompliantAttribute' exists on 'System.Runtime.Intrinsics.X86.Aes' in the implementation but not the reference. | |||
There was a problem hiding this comment.
Is CLSCompliantAttribute meaningful? If so, we should just add it...
There was a problem hiding this comment.
It needs to be consistent. I believe the problem is that CoreLib sets CLSCompliant on assembly level then turns if off on individual types. Your reference assembly sets it as false on the assembly so it doesn't need to disable it on individual types.
Sorry, did I somehow break something in master? |
|
@stephentoub nope, just broke this PR between the time I tested locally and when the CI hit it. No worries. @ViktorHofer your test host change is still broken. The problem is that it's referenced by test projects via the |
That surprises me as the Remote Executor lib assembly is binary identical even though it cross-compiles. |
The references are different. .NETCoreApp is System.Runtime based and the System.Runtime assembly version is higher than the facades included in netstandard projects. |
|
All tests are failing with: This appears to be a result of arcade changes, but I haven't isolated the change. I'm going to dial back this PR to only the API compat update. We'll need to further investigate what's causing this, but we can do so in the Arcade ingestion PR. |
|
@jkoritzinsky it looks like your change dotnet/coreclr@796776c is causing CoreFx tests to fail when run on nano. It appear that this is due to https://github.com/dotnet/arcade/blob/ce8e852e418ca52d28e562f9697fbb926d0b0bb1/src/Microsoft.DotNet.XUnitConsoleRunner/src/Program.cs#L8. |
This partially reverts commit ee80061. I'm keeping the baseline changes which will be needed when we get a new update.
This can be removed when get a new CoreCLR That's currently blocked due to regressions in tests.
|
Only failure is network test. |
…otnet/corefx#37375) * React to APICompat changes enabling reverse APICompat for facades * Fix UAP and NETFX reverse APICompat issues * Fix reverse APICompat baseline for allconfigurations build * Manually update to latest APICompat * Manually update to latest CoreCLR and fix issues * Baseline System.Threading.Tasks * Revert "Manually update to latest CoreCLR and fix issues" This partially reverts commit dotnet/corefx@ee80061. I'm keeping the baseline changes which will be needed when we get a new update. * Temporarily baseline DiagnosticCounter API gaps This can be removed when get a new CoreCLR That's currently blocked due to regressions in tests. Commit migrated from dotnet/corefx@0353437
I made changes to API Compat that enable it for partial facades, this is the result. We'll want to look through these baselines before RTM to understand if anything here needs to be exposed.
For things that need to be exposed that can happen in separate PRs since it may require API review + test additions.
NO MERGE - this is using a private build of API compat.