dotnet / install-scripts

MIT License
130 stars 71 forks source link

Community-supported platforms runtime and sdk installation via dotnet-install #501

Open am11 opened 2 months ago

am11 commented 2 months ago

There are several community-supported platforms: linux-{musl-}s390x, linux-{musl-}ppc64le, linux-{musl-}riscv64, linux-{musl-}loongarch64, freebsd-x64, freebsd-arm64, illumos-x64 and haiku-x64.

We have cross-build images for all of them in https://github.com/dotnet/dotnet-buildtools-prereqs-docker, and some of them are used in the CI. The steps are pretty much the same for cross build.

Are there plans to support their SDK installation via aka.ms links https://github.com/dotnet/install-scripts/blob/2ed8ccefca85fe9e17360639f39b2bbfadb35bf5/src/dotnet-install.sh#L1255? e.g.

existing official: aka_ms_link="https://aka.ms/dotnet"
+community: aka_ms_link="https://aka.ms/dotnet-community"

(just like how distros typically provide "community" packages https://pkgs.alpinelinux.org/package/edge/community/aarch64/dotnet8-sdk)

am11 commented 2 months ago

cc @jkotas @baronfel @akoeplinger https://github.com/dotnet/install-scripts/pull/480#pullrequestreview-2133819661

jkotas commented 2 months ago

I do not expect Microsoft to host a download site for community-supported platform binaries.

We have cross-build images for all of them in https://github.com/dotnet/dotnet-buildtools-prereqs-docker, and some of them are used in the CI. The steps are pretty much the same for cross build.

From Microsoft point of view, these cross-build images are test-only assets.

am11 commented 2 months ago

@jkotas, if community is responsible for maintaining the breakage, is integration with dotnet-install.sh still the right place to draw the line? e.g. dotnet-install.sh --enable-community ... gives a clear "it's unofficial" type of message.

Currently folks are creating artifacts and uploading to GitHub releases. In the end, they - too - are stored in Azure Blobs storage minus the inconvenience to not be able to obtain it via dotnet-install.sh.

It doesn't have to be aka.ms link, it could be a link provided by responsible team to enable this flow.

jkotas commented 2 months ago

The download site structure expected by dotnet-install.sh script is tightly coupled with the Microsoft .NET release management infrastructure that supports many different scenarios. dotnet-install.sh script grew into 2000+ lines to handle it all. I have doubts that the community supported ports would be interested to re-creating the download site structure expected by the dotnet-install.sh script. If a community supported port has a need for a download script, I think it is probably better for them to roll their own simple script.

It doesn't have to be aka.ms link

The script assumes that it is talking to aka.ms site and expects it to return redirect URLs. It is not a simple download a file from this URL.

jkotas commented 2 months ago

In any case, this discussion would be probably better suited for https://github.com/dotnet/install-scripts/ repo where the dotnet-install.sh script lives.

am11 commented 2 months ago

dotnet-install is used in runtime build, which is why integration with this script is interesting and I opened the issue there. Actual functionality is really not that much, it's just the way it is written is too verbose.

NikolaMilosavljevic commented 1 month ago

[Triage] @leecow @rbhanda can you help move this issue to dotnet/install-scripts repo?

YuliiaKovalova commented 1 month ago

@baronfel please share your vision on this request.