From 2127320e402b3f89deb796b3a66c41db5ca67e2a Mon Sep 17 00:00:00 2001 From: Viktor Hofer Date: Tue, 13 May 2025 12:40:18 +0200 Subject: [PATCH] Move to standardized RID & OS & ARCH control set --- .vsts-ci.yml | 17 ++--- Directory.Build.props | 69 ++++++++++++------- eng/Badge.proj | 3 +- .../templates/jobs/sdk-job-matrix.yml | 10 +-- .../templates/variables/sdk-defaults.yml | 1 - .../Microsoft.DotNet.Cli.Utils.csproj | 2 +- ...crosoft.DotNet.InternalAbstractions.csproj | 2 +- src/Cli/dotnet/dotnet.csproj | 2 +- src/Layout/Directory.Build.props | 42 +++-------- src/Layout/Directory.Build.targets | 6 +- .../VS.Redist.Common.NetCore.Templates.proj | 2 +- .../redist/targets/BundledTemplates.targets | 8 +-- src/Layout/redist/targets/Crossgen.targets | 8 +-- .../redist/targets/Directory.Build.targets | 4 +- .../redist/targets/GenerateArchives.targets | 6 +- .../targets/GenerateBundledVersions.targets | 16 ++--- .../redist/targets/GenerateLayout.targets | 8 +-- .../redist/targets/GenerateMSIs.targets | 2 +- .../redist/targets/RestoreLayout.targets | 6 +- 19 files changed, 97 insertions(+), 117 deletions(-) diff --git a/.vsts-ci.yml b/.vsts-ci.yml index d6421f73acc2..91c0819c40b2 100644 --- a/.vsts-ci.yml +++ b/.vsts-ci.yml @@ -193,28 +193,25 @@ extends: - categoryName: Official publishArgument: $(_publishArgument) officialBuildProperties: $(_officialBuildProperties) - osProperties: $(linuxOsPortableProperties) runTests: false - categoryName: Official targetArchitecture: arm runtimeIdentifier: linux-arm publishArgument: $(_publishArgument) officialBuildProperties: $(_officialBuildProperties) - osProperties: $(linuxOsPortableProperties) runTests: false - categoryName: Official targetArchitecture: arm64 runtimeIdentifier: linux-arm64 publishArgument: $(_publishArgument) officialBuildProperties: $(_officialBuildProperties) - osProperties: $(linuxOsPortableProperties) runTests: false ### PORTABLE ### - categoryName: Portable # Do not publish zips and tarballs. The linux-x64 binaries are already published by Official. publishArgument: $(_publishArgument) /p:PublishBinariesAndBadge=false officialBuildProperties: $(_officialBuildProperties) - osProperties: $(linuxOsPortableProperties) /p:BuildSdkDeb=true + osProperties: /p:BuildSdkDeb=true runTests: false - categoryName: Portable targetArchitecture: arm64 @@ -222,14 +219,14 @@ extends: # Do not publish zips and tarballs. The linux-arm64 binaries are already published by Official. publishArgument: $(_publishArgument) /p:PublishBinariesAndBadge=false officialBuildProperties: $(_officialBuildProperties) - osProperties: $(linuxOsPortableProperties) /p:BuildSdkDeb=true + osProperties: /p:BuildSdkDeb=true runTests: false - categoryName: Portable container: centosStream9 # Do not publish zips and tarballs. The linux-x64 binaries are already published by Official. publishArgument: $(_publishArgument) /p:PublishBinariesAndBadge=false officialBuildProperties: $(_officialBuildProperties) - osProperties: $(linuxOsPortableProperties) /p:IsRPMBasedDistro=true + osProperties: /p:IsRPMBasedDistro=true runTests: false - categoryName: Portable container: centosStream9 @@ -238,7 +235,7 @@ extends: # Do not publish zips and tarballs. The linux-arm64 binaries are already published by Official. publishArgument: $(_publishArgument) /p:PublishBinariesAndBadge=false officialBuildProperties: $(_officialBuildProperties) - osProperties: $(linuxOsPortableProperties) /p:IsRPMBasedDistro=true + osProperties: /p:IsRPMBasedDistro=true runTests: false ### MUSL ### - categoryName: Musl @@ -246,8 +243,6 @@ extends: runtimeIdentifier: linux-musl-x64 publishArgument: $(_publishArgument) officialBuildProperties: $(_officialBuildProperties) - # Use HostOSName when running on alpine. - osProperties: /p:HostOSName=linux-musl # SBOM generation is not supported for alpine. enableSbom: false runTests: false @@ -257,21 +252,18 @@ extends: runtimeIdentifier: linux-musl-arm publishArgument: $(_publishArgument) officialBuildProperties: $(_officialBuildProperties) - osProperties: /p:OSName=linux-musl runTests: false - categoryName: Musl targetArchitecture: arm64 runtimeIdentifier: linux-musl-arm64 publishArgument: $(_publishArgument) officialBuildProperties: $(_officialBuildProperties) - osProperties: /p:OSName=linux-musl runTests: false ### PGO ### - categoryName: PGO pgoInstrument: true publishArgument: $(_publishArgument) officialBuildProperties: $(_officialBuildProperties) - osProperties: $(linuxOsPortableProperties) runTests: false - categoryName: PGO pgoInstrument: true @@ -279,7 +271,6 @@ extends: runtimeIdentifier: linux-arm64 publishArgument: $(_publishArgument) officialBuildProperties: $(_officialBuildProperties) - osProperties: $(linuxOsPortableProperties) runTests: false ############### MACOS ############### diff --git a/Directory.Build.props b/Directory.Build.props index 4a2421dd53a4..49e015c2d7d7 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -1,32 +1,55 @@ - - - $([System.Runtime.InteropServices.RuntimeInformation]::ProcessArchitecture.ToString().ToLowerInvariant()) - $(BuildArchitecture) - $(BuildArchitecture) - $(BuildArchitecture) - $(BuildArchitecture) - x64 - enable + + + linux + osx + freebsd + netbsd + illumos + solaris + haiku + windows + $(BuildOS) + $(TargetOS) - - + + + $([System.Runtime.InteropServices.RuntimeInformation]::ProcessArchitecture.ToString().ToLowerInvariant) + + $(BuildArchitecture) + + $(TargetArchitecture) + - - true - win - osx - freebsd - illumos - linux - - $(TargetRid.Substring(0, $(TargetRid.LastIndexOf('-')))) - $(HostOSName) + + + $(__DistroRid) + $([System.Runtime.InteropServices.RuntimeInformation]::RuntimeIdentifier) + win-$([System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture.ToString().ToLowerInvariant) + + $(BuildRid.Substring(0, $(BuildRid.LastIndexOf('-'))))-$(TargetArchitecture) + $(TargetRid) + + false + true + + $(__PortableTargetOS)-$(TargetArchitecture) + freebsd-$(TargetArchitecture) + osx-$(TargetArchitecture) + linux-$(TargetArchitecture) + linux-musl-$(TargetArchitecture) + win-$(TargetArchitecture) + + $(PortableRid) + + + $([MSBuild]::NormalizeDirectory('$(MSBuildThisFileDirectory)', 'src')) https://github.com/dotnet/sdk @@ -38,8 +61,6 @@ true false net10.0 - - net10.0 $(NetCurrent) $(SdkTargetFramework) net8.0 @@ -62,6 +83,8 @@ true true + + enable diff --git a/eng/Badge.proj b/eng/Badge.proj index 7e3108caf761..f895b6e065c9 100644 --- a/eng/Badge.proj +++ b/eng/Badge.proj @@ -8,8 +8,7 @@ - $(OSName.Replace('-', '_'))_$(TargetArchitecture) - linux_$(TargetArchitecture) + $(TargetRid.Replace('-', '_')) $(ArtifactsShippingPackagesDir)$(VersionBadgeMoniker)_$(Configuration)_version_badge.svg $(MSBuildThisFileDirectory)version_badge.svg diff --git a/eng/pipelines/templates/jobs/sdk-job-matrix.yml b/eng/pipelines/templates/jobs/sdk-job-matrix.yml index 778441d1176a..e6fc8bba2bab 100644 --- a/eng/pipelines/templates/jobs/sdk-job-matrix.yml +++ b/eng/pipelines/templates/jobs/sdk-job-matrix.yml @@ -21,17 +21,14 @@ parameters: ### LINUX ### linuxJobParameterSets: - categoryName: TestBuild - osProperties: $(linuxOsPortableProperties) - categoryName: TestBuild targetArchitecture: arm64 runtimeIdentifier: linux-arm64 - osProperties: $(linuxOsPortableProperties) # Don't run the tests on arm64. Only perform the build itself. runTests: false - categoryName: ContainerBased container: ubuntu2204DebPkg helixTargetContainer: $(helixTargetContainerPrefix)ubuntu-22.04-helix-amd64 - osProperties: $(linuxOsPortableProperties) # Skipping all container-based testing for now. # See: https://github.com/dotnet/sdk/issues/40935 runTests: false @@ -39,21 +36,19 @@ parameters: container: fedora39 # No fedora Helix container is available, so use the ubuntu one instead. helixTargetContainer: $(helixTargetContainerPrefix)ubuntu-22.04-helix-amd64 - osProperties: $(linuxOsPortableProperties) # Skipping all container-based testing for now. # See: https://github.com/dotnet/sdk/issues/40935 runTests: false - categoryName: ContainerBased container: centosStream9 helixTargetContainer: $(helixTargetContainerPrefix)centos-stream9-helix - osProperties: /p:OSName=linux # Skipping all container-based testing for now. # See: https://github.com/dotnet/sdk/issues/40935 runTests: false - categoryName: ContainerBased container: debian12Amd64 helixTargetContainer: $(helixTargetContainerPrefix)debian-11-helix-amd64 - osProperties: /p:OSName=linux /p:BuildSdkDeb=true + osProperties: /p:BuildSdkDeb=true # Skipping all container-based testing for now. # See: https://github.com/dotnet/sdk/issues/40935 runTests: false @@ -61,15 +56,12 @@ parameters: container: alpine319WithNode helixTargetContainer: $(helixTargetContainerPrefix)alpine-3.18-helix-amd64 runtimeIdentifier: linux-musl-x64 - # Use HostOSName when running on alpine. - osProperties: /p:HostOSName=linux-musl # SBOM generation is not supported for alpine. enableSbom: false # Skipping all container-based testing for now. # See: https://github.com/dotnet/sdk/issues/40935 runTests: false - categoryName: TemplateEngine - osProperties: $(linuxOsPortableProperties) testProjects: $(Build.SourcesDirectory)/test/Microsoft.TemplateEngine.Cli.UnitTests/Microsoft.TemplateEngine.Cli.UnitTests.csproj;$(Build.SourcesDirectory)/test/dotnet-new.IntegrationTests/dotnet-new.IntegrationTests.csproj publishXunitResults: true ### MACOS ### diff --git a/eng/pipelines/templates/variables/sdk-defaults.yml b/eng/pipelines/templates/variables/sdk-defaults.yml index f9097cfc211a..c9f0d4d04fdb 100644 --- a/eng/pipelines/templates/variables/sdk-defaults.yml +++ b/eng/pipelines/templates/variables/sdk-defaults.yml @@ -1,7 +1,6 @@ variables: ############### BUILD ############### buildConfiguration: Release - linuxOsPortableProperties: /p:OSName=linux /p:IsLinuxPortable=true helixTargetContainerPrefix: '@mcr.microsoft.com/dotnet-buildtools/prereqs:' ############### ARCADE ############### diff --git a/src/Cli/Microsoft.DotNet.Cli.Utils/Microsoft.DotNet.Cli.Utils.csproj b/src/Cli/Microsoft.DotNet.Cli.Utils/Microsoft.DotNet.Cli.Utils.csproj index 7ec4f221145b..5950776d8778 100644 --- a/src/Cli/Microsoft.DotNet.Cli.Utils/Microsoft.DotNet.Cli.Utils.csproj +++ b/src/Cli/Microsoft.DotNet.Cli.Utils/Microsoft.DotNet.Cli.Utils.csproj @@ -10,7 +10,7 @@ true MicrosoftAspNetCore true - true + true true true diff --git a/src/Cli/Microsoft.DotNet.InternalAbstractions/Microsoft.DotNet.InternalAbstractions.csproj b/src/Cli/Microsoft.DotNet.InternalAbstractions/Microsoft.DotNet.InternalAbstractions.csproj index 57a1d10f3c31..04cd2d6ce81f 100644 --- a/src/Cli/Microsoft.DotNet.InternalAbstractions/Microsoft.DotNet.InternalAbstractions.csproj +++ b/src/Cli/Microsoft.DotNet.InternalAbstractions/Microsoft.DotNet.InternalAbstractions.csproj @@ -7,7 +7,7 @@ true MicrosoftAspNetCore true - true + true git true diff --git a/src/Cli/dotnet/dotnet.csproj b/src/Cli/dotnet/dotnet.csproj index f6b9b0a7015d..2232cc817e53 100644 --- a/src/Cli/dotnet/dotnet.csproj +++ b/src/Cli/dotnet/dotnet.csproj @@ -6,7 +6,7 @@ Exe MicrosoftAspNetCore true - true + true dotnet5.4 Microsoft.DotNet.Cli $(DefineConstants);EXCLUDE_ASPNETCORE diff --git a/src/Layout/Directory.Build.props b/src/Layout/Directory.Build.props index cc25a289be19..7cedd9531e84 100644 --- a/src/Layout/Directory.Build.props +++ b/src/Layout/Directory.Build.props @@ -3,11 +3,6 @@ - - $(__DistroRid) - $([System.Runtime.InteropServices.RuntimeInformation]::RuntimeIdentifier) - win-$([System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture.ToString().ToLowerInvariant) - true true true @@ -15,58 +10,39 @@ .tar.gz - .zip + .zip - .msi - .pkg + .msi + .pkg .deb .rpm - .exe - $(InstallerExtension) + .exe + $(InstallerExtension) $(InstallerExtension) $(InstallerExtension) - .exe - - - $(OSName)-$(TargetArchitecture) - $(TargetRid) - - $(OSName) - $(PortableOSName)-$(TargetArchitecture) - $(PortableRid) + .exe true true - true - + true - true true true - - - true true $(HostRid) - $(OSName)-$(TargetArchitecture) + $(TargetOS)-$(TargetArchitecture) $(HostRid.Replace('mariner.2.0', 'cm.2')) $(NetRuntimeRid) - $(ProductMonikerRid) - linux-$(TargetArchitecture) + $(TargetRid) diff --git a/src/Layout/Directory.Build.targets b/src/Layout/Directory.Build.targets index c1e2f454cbe6..eafcdbdcbac4 100644 --- a/src/Layout/Directory.Build.targets +++ b/src/Layout/Directory.Build.targets @@ -14,15 +14,15 @@ $(FullNugetVersion).$(VersionSuffixDateStamp).$(VersionSuffixBuildOfTheDay) -pgo - dotnet-sdk-internal$(PgoTerm)-$(Version)-$(ProductMonikerRid) - dotnet-sdk$(PgoTerm)-$(Version)-$(ProductMonikerRid) + dotnet-sdk-internal$(PgoTerm)-$(Version)-$(TargetRid) + dotnet-sdk$(PgoTerm)-$(Version)-$(TargetRid) $(ArtifactNameWithVersionSdk)$(InstallerExtension) $(ArtifactsNonShippingPackagesDir)$(SdkMSIInstallerFileName) $(DownloadsFolder)$(SdkMSIInstallerFileName) - $(ArtifactsNonShippingPackagesDir)dotnet-sdkplaceholder-$(FullNugetVersion)-$(ProductMonikerRid)$(InstallerExtension) + $(ArtifactsNonShippingPackagesDir)dotnet-sdkplaceholder-$(FullNugetVersion)-$(TargetRid)$(InstallerExtension) diff --git a/src/Layout/VS.Redist.Common.NetCore.Templates/VS.Redist.Common.NetCore.Templates.proj b/src/Layout/VS.Redist.Common.NetCore.Templates/VS.Redist.Common.NetCore.Templates.proj index 99aa4dc84a26..ee45b04623f7 100644 --- a/src/Layout/VS.Redist.Common.NetCore.Templates/VS.Redist.Common.NetCore.Templates.proj +++ b/src/Layout/VS.Redist.Common.NetCore.Templates/VS.Redist.Common.NetCore.Templates.proj @@ -17,7 +17,7 @@ - + diff --git a/src/Layout/redist/targets/BundledTemplates.targets b/src/Layout/redist/targets/BundledTemplates.targets index d244ad99887f..70cedc1b7ebc 100644 --- a/src/Layout/redist/targets/BundledTemplates.targets +++ b/src/Layout/redist/targets/BundledTemplates.targets @@ -31,7 +31,7 @@ @@ -40,7 +40,7 @@ - $(ArtifactsNonShippingPackagesDir)%(TemplatesComponents.TemplateBaseFilename)-$(FullNugetVersion)-$(ProductMonikerRid)$(InstallerExtension) + $(ArtifactsNonShippingPackagesDir)%(TemplatesComponents.TemplateBaseFilename)-$(FullNugetVersion)-$(TargetRid)$(InstallerExtension) @@ -56,7 +56,7 @@ - + @@ -74,7 +74,7 @@ DestinationFiles="$(RedistInstallerLayoutPath)templates\$(CurrentTemplateInstallPath)\$([System.String]::Copy('%(Filename)%(Extension)').ToLowerInvariant())" /> - + diff --git a/src/Layout/redist/targets/Crossgen.targets b/src/Layout/redist/targets/Crossgen.targets index b80892ad82c3..b20d22129bc7 100644 --- a/src/Layout/redist/targets/Crossgen.targets +++ b/src/Layout/redist/targets/Crossgen.targets @@ -7,8 +7,8 @@ '$(TargetArchitecture)' != 'ppc64le' and '$(DotNetBuildUseMonoRuntime)' != 'true'">true - $(HostOSName)-$(BuildArchitecture) - + + $(HostOS)-$(BuildArchitecture) microsoft.netcore.app.crossgen2.$(Crossgen2Rid) @@ -194,8 +194,8 @@ - - + + diff --git a/src/Layout/redist/targets/Directory.Build.targets b/src/Layout/redist/targets/Directory.Build.targets index fcd0fb99122d..e7f905739b15 100644 --- a/src/Layout/redist/targets/Directory.Build.targets +++ b/src/Layout/redist/targets/Directory.Build.targets @@ -24,7 +24,7 @@ - - + + diff --git a/src/Layout/redist/targets/GenerateArchives.targets b/src/Layout/redist/targets/GenerateArchives.targets index b9f9526fae55..46aafe645ed1 100644 --- a/src/Layout/redist/targets/GenerateArchives.targets +++ b/src/Layout/redist/targets/GenerateArchives.targets @@ -13,15 +13,15 @@ - + + Include="$(TargetRid)" /> + Include="$(TargetRid)" /> + Include="$(TargetRid)" /> + Include="$(TargetRid)" /> <_ExcludedKnownRuntimeIdentiferPlatforms Include="tizen.4.0.0;tizen.5.0.0" Condition="'$(DotNetBuildSourceOnly)' != 'true'" /> - <_ExcludedKnownRuntimeIdentiferPlatforms Include="tizen.4.0.0" Condition="'$(DotNetBuildSourceOnly)' == 'true' and !$(ProductMonikerRid.StartsWith('tizen.4.0.0-'))" /> - <_ExcludedKnownRuntimeIdentiferPlatforms Include="tizen.5.0.0" Condition="'$(DotNetBuildSourceOnly)' == 'true' and !$(ProductMonikerRid.StartsWith('tizen.5.0.0-'))" /> + <_ExcludedKnownRuntimeIdentiferPlatforms Include="tizen.4.0.0" Condition="'$(DotNetBuildSourceOnly)' == 'true' and !$(TargetRid.StartsWith('tizen.4.0.0-'))" /> + <_ExcludedKnownRuntimeIdentiferPlatforms Include="tizen.5.0.0" Condition="'$(DotNetBuildSourceOnly)' == 'true' and !$(TargetRid.StartsWith('tizen.5.0.0-'))" /> - Dotnet SDK Bundle Installer $(CliProductBandVersion) $(ProductMonikerRid) + Dotnet SDK Bundle Installer $(CliProductBandVersion) $(TargetRid) diff --git a/src/Layout/redist/targets/RestoreLayout.targets b/src/Layout/redist/targets/RestoreLayout.targets index cbd361c5fbb5..f33028221ee6 100644 --- a/src/Layout/redist/targets/RestoreLayout.targets +++ b/src/Layout/redist/targets/RestoreLayout.targets @@ -2,7 +2,7 @@ - -internal + -internal $(TargetArchitecture) aarch64 @@ -37,7 +37,7 @@ netstandard-targeting-pack-$(NETStandardLibraryRefPackageVersion)-osx-x64$(InstallerExtension) $(ArtifactNameWithVersionSdk)$(InstallerExtension) - dotnet-$(VersionMajor)$(VersionMinor)templates-$(FullNugetVersion)-$(ProductMonikerRid)$(InstallerExtension) + dotnet-$(VersionMajor)$(VersionMinor)templates-$(FullNugetVersion)-$(TargetRid)$(InstallerExtension) dotnet-runtime-$(MicrosoftNETCoreAppRuntimePackageVersion)-$(SharedFrameworkRid)$(ArchiveExtension) dotnet-runtime$(PgoTerm)-$(VSRedistCommonNetCoreSharedFrameworkx64100PackageVersion)-$(SharedFrameworkRid)$(ArchiveExtension) @@ -48,7 +48,7 @@ x64 aarch64 - aspnetcore-runtime-$(MicrosoftAspNetCoreAppRuntimePackageVersion)-$(AspNetCoreInstallerRid)$(InstallerExtension) + aspnetcore-runtime-$(MicrosoftAspNetCoreAppRuntimePackageVersion)-$(AspNetCoreInstallerRid)$(InstallerExtension) aspnetcore-runtime-$(VSRedistCommonAspNetCoreSharedFrameworkx64100PackageVersion)-$(AspNetCoreInstallerRid)$(InstallerExtension) aspnetcore-targeting-pack-$(MicrosoftAspNetCoreAppRefPackageVersion)-$(AspNetCoreInstallerRid)$(InstallerExtension) aspnetcore-targeting-pack-$(MicrosoftAspNetCoreAppRefInternalPackageVersion)-$(AspNetCoreInstallerRid)$(InstallerExtension)