-
Notifications
You must be signed in to change notification settings - Fork 39
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
Support manifest lists and use the publish RID to pick the most relevant manifest from the list #247
Conversation
13cb072
to
5209f49
Compare
de27e05
to
a0f806c
Compare
a0f806c
to
3510ea2
Compare
fe22c0a
to
82b4793
Compare
82b4793
to
08c09df
Compare
d1036ee
to
da69e11
Compare
This is ready for review. We read manifest lists, convert the available platform-specific manifests to equivalent RIDs and extract those slices of the RID graph, and then find the most-applicable base image for the RID the user specified for the build. If there is no match, we emit an error with the valid values. It works for linux-x64, linux-arm, and linux-amr64 on my local testing with a local Docker daemon. The only thing I don't like is the hard-coded path for the RuntimeGraphFilePath in the tests - right now we pin to the 7.0.100 SDK but ideally we'd be able to get that from the runtime environment somehow. |
@vijayrkn as a side effect of this change, the VS side of the integration that forces linux-x64 could be lifted. We'll have to talk about the exact mechanism though - perhaps package version is enough to feature-gate that logic? |
Test.Microsoft.NET.Build.Containers.Filesystem/CreateNewImageTests.cs
Outdated
Show resolved
Hide resolved
We don't do anything too complicated so 'most recent'-ish should be fine.
Test.Microsoft.NET.Build.Containers.Filesystem/RegistryTests.cs
Outdated
Show resolved
Hide resolved
This ensures that valid-but-meaninless in this context RIDs (like unix, any, base, etc.) are not take into consideration for compatibility
Is this available to test in a build? |
Yes! Version 0.3.2 is available on NuGet right now, and the documentation in this repo has been updated to match it. We've also got release notes up here. Try it out and let us know what you think. I'll be working with our friends in the docs org to update our pages on learn.microsoft.com over this week. |
The basic idea is:
This does not enable creating manifest lists for a project, just enables users to trust that the
-r
parameter to publish will do the right thing.TODO: