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

[ArPow] intermediate nupkg restore tooling should detect and fail if multiple <SourceBuild .../> elements exist for one upstream #2050

Open
dagood opened this issue Feb 10, 2021 · 1 comment
Labels
area-arcade Common Arcade source-build infra

Comments

@dagood
Copy link
Member

dagood commented Feb 10, 2021

If we have dependencies defined like this:

    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="6.0.0-beta.21105.5">
      <SourceBuild RepoName="arcade" ManagedOnly="true" />
    </Dependency>
    <Dependency Name="Microsoft.DotNet.ApiCompat" Version="6.0.0-beta.21105.5">
      <SourceBuild RepoName="arcade" ManagedOnly="true" />
    </Dependency>

There's a potential that the versions will diverge if one of the package names change, one of them is manually updated. And actually divergence can be intentional, for targeting packs:

    <Dependency Name="Microsoft.NETCore.App.Ref" Version="5.0.0" CoherentParentDependency="Microsoft.NET.Sdk">
      <SourceBuild RepoName="runtime" ManagedOnly="false" />
    </Dependency>
    <Dependency Name="Microsoft.NETCore.App.Runtime.win-x64" Version="5.0.2" CoherentParentDependency="Microsoft.NET.Sdk">
      <SourceBuild RepoName="runtime" ManagedOnly="false" />
    </Dependency>

Once they diverge, I think that the tooling will bring down two versions of the intermediate nupkg, which doesn't represent what source-build can actually do in a tarball.

Picking a single dependency node is how we decide what the coherent graph of repos should be.

I think the tooling should detect when a repo is set up this way, and fail pre-emptively.


For #2034, we'll probably need to restore multiple intermediate nupkgs from a single upstream, but all of them should come from a single dependency node.

@dagood dagood added the area-build Improvements in source-build's own build process label Feb 10, 2021
@dagood
Copy link
Member Author

dagood commented Feb 18, 2021

Triage: this is just a safeguard, but when this scenario happens down the road, we don't know how it will show up--if it's easy to diagnose a build break or if it will silently break the SDK. This seems like it won't be a problem in the initial work but it's worth tracking.

@dagood dagood added the triaged label Feb 18, 2021
@MichaelSimons MichaelSimons changed the title ArPow: intermediate nupkg restore tooling should detect and fail if multiple <SourceBuild .../> elements exist for one upstream [ArPow] intermediate nupkg restore tooling should detect and fail if multiple <SourceBuild .../> elements exist for one upstream May 28, 2021
@MichaelSimons MichaelSimons added area-arcade Common Arcade source-build infra and removed area-build Improvements in source-build's own build process labels Jul 12, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-arcade Common Arcade source-build infra
Projects
Status: Backlog
Development

No branches or pull requests

2 participants