Skip to content

Conversation

@dotnet-maestro
Copy link
Contributor

@dotnet-maestro dotnet-maestro bot commented Feb 24, 2023

This pull request updates the following dependencies

Coherency Updates

The following updates ensure that dependencies with a CoherentParentDependency
attribute were produced in a build used as input to the parent dependency's build.
See Dependency Description Format

  • Coherency Updates:
    • Microsoft.DotNet.XliffTasks: from 1.0.0-beta.23116.1 to 1.0.0-beta.23172.1 (parent: Microsoft.DotNet.Arcade.Sdk)

From https://github.com/dotnet/arcade

  • Subscription: 3d9043af-0e17-4eb5-f3e3-08d8e97c775d
  • Build: 20230323.3
  • Date Produced: March 24, 2023 1:19:11 AM UTC
  • Commit: e3d501e3e78ab724254e6797473e34f787674857
  • Branch: refs/heads/main

…223.2

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.XUnitExtensions
 From Version 8.0.0-beta.23120.1 -> To Version 8.0.0-beta.23123.2

Dependency coherency updates

Microsoft.DotNet.XliffTasks
 From Version 1.0.0-beta.23116.1 -> To Version 1.0.0-beta.23121.1 (parent: Microsoft.DotNet.Arcade.Sdk
@nagilson
Copy link
Member

nagilson commented Feb 24, 2023

@jkoritzinsky @RussKie Please forward to the correct path to fix these introduced type errors. Ty

@jkoritzinsky
Copy link
Member

This looks like it's due to the global.json change to update the SDK interfering with an analyzer.

@jkoritzinsky
Copy link
Member

cc: @dotnet/roslyn-analysis

…227.1

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.XUnitExtensions
 From Version 8.0.0-beta.23120.1 -> To Version 8.0.0-beta.23127.1

Dependency coherency updates

Microsoft.DotNet.XliffTasks
 From Version 1.0.0-beta.23116.1 -> To Version 1.0.0-beta.23124.1 (parent: Microsoft.DotNet.Arcade.Sdk
…228.1

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.XUnitExtensions
 From Version 8.0.0-beta.23120.1 -> To Version 8.0.0-beta.23128.1

Dependency coherency updates

Microsoft.DotNet.XliffTasks
 From Version 1.0.0-beta.23116.1 -> To Version 1.0.0-beta.23124.1 (parent: Microsoft.DotNet.Arcade.Sdk
…301.4

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.XUnitExtensions
 From Version 8.0.0-beta.23120.1 -> To Version 8.0.0-beta.23151.4

Dependency coherency updates

Microsoft.DotNet.XliffTasks
 From Version 1.0.0-beta.23116.1 -> To Version 1.0.0-beta.23128.1 (parent: Microsoft.DotNet.Arcade.Sdk
…302.1

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.XUnitExtensions
 From Version 8.0.0-beta.23120.1 -> To Version 8.0.0-beta.23152.1

Dependency coherency updates

Microsoft.DotNet.XliffTasks
 From Version 1.0.0-beta.23116.1 -> To Version 1.0.0-beta.23151.1 (parent: Microsoft.DotNet.Arcade.Sdk
…303.1

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.XUnitExtensions
 From Version 8.0.0-beta.23120.1 -> To Version 8.0.0-beta.23153.1

Dependency coherency updates

Microsoft.DotNet.XliffTasks
 From Version 1.0.0-beta.23116.1 -> To Version 1.0.0-beta.23151.1 (parent: Microsoft.DotNet.Arcade.Sdk
@lewing
Copy link
Member

lewing commented Mar 5, 2023

cc @buyaa-n

@buyaa-n
Copy link
Contributor

buyaa-n commented Mar 6, 2023

That regression is looks fixed with dotnet/roslyn-analyzers#6476, but not made .NET 8 preview 1, not sure if we can insert the fix into preview 1 SDK ...

@nagilson
Copy link
Member

nagilson commented Mar 6, 2023

@buyaa-n Sorry to say fellow Dreamworks character, but it is much too late to insert into preview 1. Preview 2 you could do! But ATM this is targeted towards main which is now Preview 3. If you want it for preview 2 you will need to request that to change the branch.

@buyaa-n
Copy link
Contributor

buyaa-n commented Mar 6, 2023

but it is much too late to insert into preview 1

I was hoping this is an attempt to insert it into preview 1. Anyway, this is a regression introduced in preview 1, so it would be perfect if that could happen.

this is targeted towards main which is now Preview 3

Hm, the fix merged on Feb 3rd, so I was assuming it made it in preview 2 (there is no preview branches, everything goes to main)

@nagilson
Copy link
Member

nagilson commented Mar 6, 2023

@buyaa-n For this PR in particular: Is this a change that needed to flow into the SDK, the VS preview 1, or the installer?

If you want to take a preview 1 change for the SDK, you will have to get servicing approval. For the SDK main was Preview 2 on Feb 3. But if you want to merge this PR into main it will go into preview 3.

@buyaa-n
Copy link
Contributor

buyaa-n commented Mar 6, 2023

For this PR in particular: Is this a change that needed to flow into the SDK, the VS preview 1, or the installer?

Let me try to explain my point again, I just saw this failure today and see this regression is introduced early in preview 1 but fixed after preview 1 release. I see there is several people reported this failure and referenced the fix. For this PR probably just suppressing the warning will be fine but as the regression is introduced in preview 1, I am worried more customers might be affected with this after started consuming preview 1 SDK. Therefore, it is preferable to be fixed in SDK preview 1, but I am not sure if that could happen (not sure if there is servicing release for previews and if there will be any before preview 2). Please let me know what you think @stephentoub @ViktorHofer @jmarolf @mavasani @jeffhandley

@nagilson
Copy link
Member

nagilson commented Mar 6, 2023

not sure if there is servicing release for previews and if there will be any before preview 2

Thank you for explaining. We do servicing releases for previews, including .NET 8 Preview 1. But it needs to be considered a high-priority fix and go through a QB.

@buyaa-n
Copy link
Contributor

buyaa-n commented Mar 7, 2023

Thanks for info, let's see what the leads say about servicing, I see the fix is included in SDK preview 2. The regressed analyzer is at info level, and it is set at warning in this repo

dotnet_diagnostic.CA2009.severity = warning

To unblock the PR you can lower this into none or suppress the warning at project/file level which ever preferable and works

…306.4

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.XUnitExtensions
 From Version 8.0.0-beta.23120.1 -> To Version 8.0.0-beta.23156.4

Dependency coherency updates

Microsoft.DotNet.XliffTasks
 From Version 1.0.0-beta.23116.1 -> To Version 1.0.0-beta.23151.1 (parent: Microsoft.DotNet.Arcade.Sdk
@mmitche
Copy link
Member

mmitche commented Mar 7, 2023

@buyaa-n We have a candidate preview2 build. If we updated to that here, would that resolve the issue?

@buyaa-n
Copy link
Contributor

buyaa-n commented Mar 7, 2023

It should, not sure from which preview version the fix added but I saw the fix in the build 8.0.100-preview.2.23153.6

@jeffhandley
Copy link
Member

@buyaa-n As for folks affected by the issue in Preview 1, could you add an entry into the Known Issues? That generally suffices for previews rather than trying to service them.

This would be the first entry in the .NET SDK section. 🙂
https://github.com/dotnet/core/blob/main/release-notes/8.0/known-issues.md

@mmitche
Copy link
Member

mmitche commented Mar 8, 2023

/azp run

@mmitche
Copy link
Member

mmitche commented Mar 8, 2023

Rerunning after build fix.

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@mmitche
Copy link
Member

mmitche commented Mar 8, 2023

�[m�[37m      /root/helix/work/workitem/e/testExecutionDirectory/Publish60Host---0200F604_2/Client/BlazorWasmHosted60.Client.csproj : error NU1102: Unable to find package Microsoft.NETCore.App.Runtime.Mono.browser-wasm with version (= 6.0.15) [/root/helix/work/workitem/e/testExecutionDirectory/Publish60Host---0200F604_2/Server/BlazorWasmHosted60.Server.csproj]
�[m�[37m      /root/helix/work/workitem/e/testExecutionDirectory/Publish60Host---0200F604_2/Client/BlazorWasmHosted60.Client.csproj : error NU1102:   - Found 1562 version(s) in dotnet7 [ Nearest version: 7.0.0-alpha.1.21417.28 ] [/root/helix/work/workitem/e/testExecutionDirectory/Publish60Host---0200F604_2/Server/BlazorWasmHosted60.Server.csproj] 

@marcpopMSFT Any idea why the preview2 build would be dependent on the browser-wasm packages from the same month?

This reverts commit d5d6bbf.
@lewing
Copy link
Member

lewing commented Mar 23, 2023

@lewing Are you sure this is what is happening on CI where it starts from a clean folder? When I clean the .dotnet folder and the artifacts\bin\redist folder, and do a build of this PR, then all of the real workloads go in the 8.0.100-preview.1 folder. There's only a test workload that goes in 8.0.100.

did you recreate the problem? How did you install the workload in the redist sdk? It is definitely an issue with the baseline manifests and I was able to cause it locally with an older sdk in .dotnet and had multiple manifest directories as I mentioned.

@dsplaisted
Copy link
Member

I hadn't tried installing a workload, I just verified that all the manifests in the redist SDK were preview.1 versions. It sounded to me like the issue that you hit is that if you have built a branch that used the 8.0.100 workloads, and then try to switch to the branch with 8.0.100-preview.1, that you will get both copies of some of the manifests. But if you start with a clean enlistment, then you will only get 8.0.100-preview.1 workloads. So it sounds like the error you hit wasn't the same one that is happening in CI.

You can run eng\dogfood.cmd to go to a dogfood environment where the redist SDK will be on the path. After cleaning up the folders with the 8.0.100 versions and rebuilding, I was able to install the maui and wasm-tools workloads successfully. (I didn't try using them though.)

My understanding is that the issue here is that there are some tests that need to be updated to target .NET 8, since only the .NET 8 blazor workloads will be installed when testing.

@lewing
Copy link
Member

lewing commented Mar 23, 2023

I hadn't tried installing a workload, I just verified that all the manifests in the redist SDK were preview.1 versions. It sounded to me like the issue that you hit is that if you have built a branch that used the 8.0.100 workloads, and then try to switch to the branch with 8.0.100-preview.1, that you will get both copies of some of the manifests. But if you start with a clean enlistment, then you will only get 8.0.100-preview.1 workloads. So it sounds like the error you hit wasn't the same one that is happening in CI.

You can run eng\dogfood.cmd to go to a dogfood environment where the redist SDK will be on the path. After cleaning up the folders with the 8.0.100 versions and rebuilding, I was able to install the maui and wasm-tools workloads successfully. (I didn't try using them though.)

My understanding is that the issue here is that there are some tests that need to be updated to target .NET 8, since only the .NET 8 blazor workloads will be installed when testing.

they are targetting net8, something is causing the wasm-tools-net7 workload workload to trigger for a net8 target which makes sense if they are both there

@lewing
Copy link
Member

lewing commented Mar 23, 2023

The issue is that once sdk\artifacts\bin\redist\Debug\dotnet\dotnet.exe workload install wasm-tools is run for the test other conflicting manifests are installed

 ls  C:\Users\lewing\sdk\artifacts\bin\redist\Debug\dotnet\sdk-manifests\8.0.100\


    Directory: C:\Users\lewing\sdk\artifacts\bin\redist\Debug\dotnet\sdk-manifests\8.0.100


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----         3/23/2023   3:51 PM                Microsoft.NET.Sdk.TestWorkload
d-----         3/23/2023   4:19 PM                microsoft.net.workload.emscripten.net6
d-----         3/23/2023   4:19 PM                microsoft.net.workload.emscripten.net7
d-----         3/23/2023   4:19 PM                microsoft.net.workload.mono.toolchain.net6
d-----         3/23/2023   4:19 PM                microsoft.net.workload.mono.toolchain.net7

once they are there, the test fails. If I remove the 8.0.100 directory after install that everything works

@dsplaisted
Copy link
Member

OK, here's what I think is happening:

  • The AoT job yaml runs dotnet workload install wasm-tools on the redist
  • This results in a workload manifest update
  • The redist is versioned as 8.0.100-dev, which is special cased in the workload feature band logic. So the feature band for the redist is 8.0.100, even though the product being built is for 8.0.100-preview.1
  • The workload manifest update logic first looks for the latest manifest in the SDK's current feature band. If that isn't found, then it falls back to the feature band from the currently installed manifest. So in this case it would first look for an 8.0.100 manifest, and then fall back to looking for the latest 8.0.100-preview.1 manifest.
  • For Microsoft.NET.Workload.Emscripten.net6, Microsoft.NET.Workload.Emscripten.net7, Microsoft.NET.Workload.Mono.Toolchain.net6, and Microsoft.NET.Workload.Mono.Toolchain.net7, it is finding 8.0.100 versions of these manifests on the feed and installing them. However, these are actually the older alpha versions of those manifests rather than the newer preview.1 versions.
  • The old manifests have issues preventing the test from passing (Specifically the net7 WorkloadManifest.targets imports the net7 packs if the target framework version is greater than OR EQUAL TO 7.0).

Possibilities for fixing:

  • Remove the 8.0.100 manifests from the feeds. If possible this would really be the best / easiest solution
  • Use --skip-manifest-update when installing blazor-wasm workload. This would mean tests would run against the baseline manifests instead of against the latest manifests in the feed, which would be a big change in when we get test coverage
  • Change the versioning we use for the test redist so that it matches the actual target preview band. This could be pretty expensive, I don't know what kind of things this would impact.

@lewing
Copy link
Member

lewing commented Mar 23, 2023

but it isn't just the tests that would need to install wasm-tools-net7, it is everyone that uses the dotnet8 feed and wasm-tools (not really a huge problem but still a mess).

@lewing
Copy link
Member

lewing commented Mar 23, 2023

would unlisting the packages work? do the internal feeds support that?

@lewing
Copy link
Member

lewing commented Mar 23, 2023

@mmitche can we unlist the non-prerelease version named packages?

@marcpopMSFT
Copy link
Member

unlisting is probably better if we can. We originally had skip-manifest update but then there was a regression in the workloads and that had to be undone to fix the tests: 512b80e

We could switch back to skip updates but I imagine at some point in the future we'd face needing newer versions of the workloads again.

…323.3

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.XUnitExtensions
 From Version 8.0.0-beta.23120.1 -> To Version 8.0.0-beta.23173.3

Dependency coherency updates

Microsoft.DotNet.XliffTasks
 From Version 1.0.0-beta.23116.1 -> To Version 1.0.0-beta.23172.1 (parent: Microsoft.DotNet.Arcade.Sdk
@lewing
Copy link
Member

lewing commented Mar 24, 2023

@mmitche appears to own the feed, does anyone else have sufficient permissions to unlist?

@mmitche
Copy link
Member

mmitche commented Mar 24, 2023

Do you have a specific list of packages and versions? Is this a one-time unlist?

@lewing
Copy link
Member

lewing commented Mar 24, 2023

I think it is basically any unstable version of

Microsoft.NET.Workload.Mono.Toolchain.net6.Manifest-8.0.100.8.0.0*
Microsoft.NET.Workload.Mono.Toolchain.net7.Manifest-8.0.100.8.0.0*

that has been published so far. It is a one time event but those will be real packages once we switch to stable branding. The key difference is that we want to keep all the Manifest-8.0.100-preview* packs

@dsplaisted @steveisok does that look correct to you?

@dsplaisted
Copy link
Member

I thought there were also some emscripten manifests with the same issue. But I went to try to repro the issue (by doing a workload manifest update on the redist), and it looks like it didn't repro anymore. Were the packages already unlisted?

Also, there may be corresponding MSI NuGet packages with identitities like Microsoft.NET.Workload.Mono.Toolchain.net6.Manifest-8.0.100.Msi.x64. Those should probably also be unlisted.

@mmitche
Copy link
Member

mmitche commented Mar 24, 2023

I thought there were also some emscripten manifests with the same issue. But I went to try to repro the issue (by doing a workload manifest update on the redist), and it looks like it didn't repro anymore. Were the packages already unlisted?

Also, there may be corresponding MSI NuGet packages with identitities like Microsoft.NET.Workload.Mono.Toolchain.net6.Manifest-8.0.100.Msi.x64. Those should probably also be unlisted.

I haven't unlisted anything yet.

@mmitche
Copy link
Member

mmitche commented Mar 24, 2023

Reference in new issue

Which part of this is the package name and which is the version?

I think you mean to essentially unlist all versions of:

image

@dsplaisted
Copy link
Member

I think you mean to essentially unlist all versions of:

image

That is correct, but there are also more. I think we want to unlist all packages where the package ID starts with any of the following, but doesn't include .preview.1:

  • Microsoft.NET.Workload.Emscripten.net6.Manifest-8.0.100
  • Microsoft.NET.Workload.Emscripten.net7.Manifest-8.0.100
  • Microsoft.NET.Workload.Mono.ToolChain.net6.Manifest-8.0.100
  • Microsoft.NET.Workload.Mono.ToolChain.net7.Manifest-8.0.100

I believe this should be a one-time unlist, hopefully aren't currently producing any more packages like this.

@mmitche
Copy link
Member

mmitche commented Mar 24, 2023

Agh, the maximum unlist batch size is 100. The latter two packages ahve over 400 versions. A lot of clicking.

@lewing
Copy link
Member

lewing commented Mar 24, 2023

Agh, the maximum unlist batch size is 100. The latter two packages ahve over 400 versions. A lot of clicking.

Sorry for the pain, thanks for taking care of this.

@lewing lewing closed this Mar 24, 2023
@lewing lewing reopened this Mar 24, 2023
@lewing lewing enabled auto-merge (squash) March 24, 2023 19:49
@lewing
Copy link
Member

lewing commented Mar 24, 2023

hmm it looks like unlisting broke all builds until this lands

@dsplaisted
Copy link
Member

hmm it looks like unlisting broke all builds until this lands

Yikes! Hope it merges quickly. If needed, I think we could re-list the latest version of each unlisted package, then disable the failing tests to merge the change. Then once the change has flowed through we could unlist the packages again and re-enable the tests.

@lewing lewing merged commit f0f8334 into main Mar 24, 2023
@lewing lewing deleted the darc-main-e8ffa198-1a88-4c1d-9f77-31a0816b6c21 branch March 24, 2023 20:10
@mmitche
Copy link
Member

mmitche commented Mar 24, 2023

Alright I think I got it.

@lewing
Copy link
Member

lewing commented Mar 24, 2023

we'll want the arcade bump (that bumps the sdk) in release/8.0-preview3

lewing pushed a commit that referenced this pull request Mar 27, 2023
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Noah Gilson <noahgilson@microsoft.com>
Co-authored-by: Matt Mitchell <mmitche@microsoft.com>
Co-authored-by: Buyaa Namnan <bunamnan@microsoft.com>
Co-authored-by: Marc Paine <marcpop@microsoft.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants