-
Notifications
You must be signed in to change notification settings - Fork 132
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
Address UX issue when building with a Portable Target RID #4419
Comments
I couldn't figure out the best area label to add to this issue. If you have write-permissions please help me learn by adding exactly one area label. |
[Triage] In discussing this, we feel the best UX is that there is a single gesture to enable portable rids in the build script (e.g. specify a portable RID). If the build system is not capable of producing a portable RID, the build should fail because the resulting assets would not be portable. |
@corngood @GGG-KILLER you folks build .NET for Nix in portable mode, right? Will this impact your .NET 9 builds for Nix? |
@omajid Thanks for the heads up. We do use portable builds, yeah. Our RID situation is pretty weird:
This probably wouldn't break us.
This would likely break us, and I'd patch it out. Looking at the existing RIDs, my only thought is to do something similar to musl: |
It's fine to build the portable configuration, but you shouldn't use a target rid that is the same as Microsoft's portable rids (cfr dotnet/aspnetcore#54031 (comment)). Similar discussion for Gentoo using portable rids in this issue: dotnet/runtime#100383.
This won't help users understand why they shouldn't set the target rid to a portable rid, and stop them from doing it.
I think we should add a separate flag/argument (like runtime's Having such a flag allows to combine the portable build configuration (which is expected to work across a larger range of distros) with a non-portable rid. When the flag is set (and perhaps some additional conditions) the build could use the portable rid as its target rid.
No. We should try to make it more clear why distro packagers mustn't use portable RIDs for their builds. |
This is why I find output-rid a better name than target-rid. target-rid sounds as if it describes the target, rather than naming it. |
In dotnet/sdk#41540 we've added an argument to the vmr build script to set the rid. The description should help avoid confusion about what happens when you set the argument.
cc @am11 |
dotnet/sdk#40843 (comment) highlights that while source-building the VMR with a portable RID implies a portable build, merely naming something doesn't automatically imbue it with the associated properties.
To achieve a functioning portable build, it necessitates a specific setup, including the use of a portable build property and building on the oldest glibc possible, such as CentOS 8 rather than CentOS 9. Without these measures, we might end up with a build that, although labeled as portable, doesn't perform as one.
Two questions then arise:
In general, in answering and addressing these questions, we will improve the UX experience of providing a portable target RID to the build.
The text was updated successfully, but these errors were encountered: