I think this problem affects coherency scenarios only. Basically what happens is this:
When the update goes through and does coherency updates, it needs to build a graph. This graph needs to find the assets that contribute. The primary identifiers are: name+version+sha. In cases of conflict (multiple assets match), the latest asset is chosen.
In this case, the latest happens to be the internal/ branch build, which won't have been published to a public location. This means that a couple things could happen:
<Dependency Name="Microsoft.NETCore.App.Internal" Version="3.0.3-servicing-20064-01" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64"> <- If Microsoft.NETCore.App.Runtime.win-x64 is identified as the internal build version, this dependency will be updated to an internal build version
If the internal build was published to another location or not published at all, we could end with a nuget.config with wrong (pointing to internal) or missing feeds.
There aren't great solutions to this. Except:
/cc @riarenas
Can I vote for option 1?
You can. I'm hoping to make a strong case for it.
Please oh please yes
@mmitche What do you think we should do with this? I think there was some more talk / work to be done with stable versions for .Net 6
Leave it for now. I think we're going to go for option 1.
Using strict CPD will solve this
Most helpful comment
Leave it for now. I think we're going to go for option 1.