dotnet / sdk

Core functionality needed to create .NET Core projects, that is shared between Visual Studio and CLI
https://dot.net/core
MIT License
2.66k stars 1.06k forks source link

NuGet Runtime pack for community-supported architectures #42248

Open driver1998 opened 1 month ago

driver1998 commented 1 month ago

Is your feature request related to a problem? Please describe.

.NET now has a few community-supported platforms: linux-riscv64, linux-loongarch64, etc.

And to properly support cross-publishing in .NET SDK, we need to get runtime packages from NuGet, otherwise publish will fail.

Hosting these packages on self-hosted repos are certainly an option, but is it possible now for maintainers to push those to NuGet.org under their own account? (Not as Microsoft because they won't be supported by Microsoft to begin with).

That way we can get a consistent publish experience.

marcpopMSFT commented 1 month ago

Adding @richlander @MichaelSimons for a policy discussion around these other architectures.

richlander commented 1 month ago

This has been a problem for a long time. I think the gap here is a design.

Hosting these packages on self-hosted repos are certainly an option, but is it possible now for maintainers to push those to NuGet.org under their own account? (Not as Microsoft because they won't be supported by Microsoft to begin with).

I think this description captures the problem pretty well.

@omajid @jkotas @baronfel

omajid commented 1 month ago

This also affects .NET on IBM platforms (eg, linux-ppc64le, linux-s390x)

cc @uweigand @Swapnali911

omajid commented 1 month ago

is it possible now for maintainers to push those to NuGet.org under their own account?

AFAIK, the answer is currently no. The prefexes are reserved by Microsoft on nuget.org, and no one else can publish to the prefixes. Publishing under another prefix makes it non-trivial to consume, if it's possible at all.

richlander commented 1 month ago

Right. A design would need to enable publishing the various packs under arbitrary names and to provide a registration mechanism, likely via a NuGet package (or something equivalent).