When building a tarball with arcade-powered source-build, we have to build at least a linux-x64 and osx-x64 tarball to validate what we aim to support. In practice, we also have to build intermediate nupkgs for non-portable RIDs like fedora.32-x64, ubuntu.20.04-x64, etc., because the non-portable infra can also be brittle and we want to validate that.
However, many repos build only managed code. If we assume that testing on a single platform (a Linux distro) is sufficient, then we can just build that once and use the same intermediate nupkg for all builds.
The problem is: how does a downstream repo know if its upstream is managed-only or not? This info is required to calculate the right ID for the intermediate nuget package.
We should encode this in Version.Details.xml and read it during intermediate nupkg restore. Right now we have an element that we can change to include this (nobody uses this schema yet):
We could teach Darc/BAR to auto-update this value. But I don't see why this value would flip routinely (if at all), so I don't think we should bother with that as part of the initial work.
Capability implemented by https://github.com/dotnet/arcade/pull/6197. It hasn't been particularly well validated through real usage, but we can handle any problems that come up as new issues.
When building a tarball with arcade-powered source-build, we have to build at least a
linux-x64
andosx-x64
tarball to validate what we aim to support. In practice, we also have to build intermediate nupkgs for non-portable RIDs likefedora.32-x64
,ubuntu.20.04-x64
, etc., because the non-portable infra can also be brittle and we want to validate that.However, many repos build only managed code. If we assume that testing on a single platform (a Linux distro) is sufficient, then we can just build that once and use the same intermediate nupkg for all builds.
The problem is: how does a downstream repo know if its upstream is managed-only or not? This info is required to calculate the right ID for the intermediate nuget package.
We should encode this in
Version.Details.xml
and read it during intermediate nupkg restore. Right now we have an element that we can change to include this (nobody uses this schema yet):We could teach Darc/BAR to auto-update this value. But I don't see why this value would flip routinely (if at all), so I don't think we should bother with that as part of the initial work.
/cc @dseefeld @crummel