Skip to content

Commit 6ceb9fc

Browse files
authored
Merge pull request #8977 from dotnet/darc-release/8.0.3xx-31d12254-deb7-4eb7-974c-209d5e12b0f1
[release/8.0.3xx] Update dependencies from dotnet/arcade
2 parents 65b878f + 8e6e8a9 commit 6ceb9fc

39 files changed

+2599
-9
lines changed

eng/Version.Details.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@
1717
</Dependency>
1818
</ProductDependencies>
1919
<ToolsetDependencies>
20-
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="8.0.0-beta.25214.7">
20+
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="8.0.0-beta.25230.1">
2121
<Uri>https://github.com/dotnet/arcade</Uri>
22-
<Sha>c487e860d456cda2580600ad81fd425d3bba21f7</Sha>
22+
<Sha>4246a31e5de9de87f760218c4f588cebf4661f45</Sha>
2323
<SourceBuild RepoName="arcade" ManagedOnly="true" />
2424
</Dependency>
2525
<Dependency Name="Microsoft.DotNet.XliffTasks" Version="1.0.0-beta.23475.1" CoherentParentDependency="Microsoft.DotNet.Arcade.Sdk">

eng/common/templates-official/job/source-index-stage1.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
parameters:
22
runAsPublic: false
3-
sourceIndexUploadPackageVersion: 2.0.0-20240502.12
4-
sourceIndexProcessBinlogPackageVersion: 1.0.1-20240129.2
3+
sourceIndexUploadPackageVersion: 2.0.0-20250425.2
4+
sourceIndexProcessBinlogPackageVersion: 1.0.1-20250425.2
55
sourceIndexPackageSource: https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json
66
sourceIndexBuildCommand: powershell -NoLogo -NoProfile -ExecutionPolicy Bypass -Command "eng/common/build.ps1 -restore -build -binarylog -ci"
77
preSteps: []

eng/common/templates-official/jobs/source-build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ parameters:
1414
# This is the default platform provided by Arcade, intended for use by a managed-only repo.
1515
defaultManagedPlatform:
1616
name: 'Managed'
17-
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream8'
17+
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream-9-amd64'
1818

1919
# Defines the platforms on which to run build jobs. One job is created for each platform, and the
2020
# object in this array is sent to the job template as 'platform'. If no platforms are specified,

eng/common/templates/job/source-index-stage1.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
parameters:
22
runAsPublic: false
3-
sourceIndexUploadPackageVersion: 2.0.0-20240502.12
4-
sourceIndexProcessBinlogPackageVersion: 1.0.1-20240129.2
3+
sourceIndexUploadPackageVersion: 2.0.0-20250425.2
4+
sourceIndexProcessBinlogPackageVersion: 1.0.1-20250425.2
55
sourceIndexPackageSource: https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json
66
sourceIndexBuildCommand: powershell -NoLogo -NoProfile -ExecutionPolicy Bypass -Command "eng/common/build.ps1 -restore -build -binarylog -ci"
77
preSteps: []

eng/common/templates/jobs/source-build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ parameters:
1414
# This is the default platform provided by Arcade, intended for use by a managed-only repo.
1515
defaultManagedPlatform:
1616
name: 'Managed'
17-
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream8'
17+
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream-9-amd64'
1818

1919
# Defines the platforms on which to run build jobs. One job is created for each platform, and the
2020
# object in this array is sent to the job template as 'platform'. If no platforms are specified,

global.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@
33
"dotnet": "8.0.115"
44
},
55
"msbuild-sdks": {
6-
"Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.25214.7"
6+
"Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.25230.1"
77
}
88
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"RetryCountLimit": 1,
3+
"RetryByAnyError": false
4+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
@{
2+
IncludeRules=@('PSAvoidUsingCmdletAliases',
3+
'PSAvoidUsingWMICmdlet',
4+
'PSAvoidUsingPositionalParameters',
5+
'PSAvoidUsingInvokeExpression',
6+
'PSUseDeclaredVarsMoreThanAssignments',
7+
'PSUseCmdletCorrectly',
8+
'PSStandardDSCFunctionsInResource',
9+
'PSUseIdenticalMandatoryParametersForDSC',
10+
'PSUseIdenticalParametersForDSC')
11+
}

src/arcade/eng/common/README.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# Don't touch this folder
2+
3+
uuuuuuuuuuuuuuuuuuuu
4+
u" uuuuuuuuuuuuuuuuuu "u
5+
u" u$$$$$$$$$$$$$$$$$$$$u "u
6+
u" u$$$$$$$$$$$$$$$$$$$$$$$$u "u
7+
u" u$$$$$$$$$$$$$$$$$$$$$$$$$$$$u "u
8+
u" u$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$u "u
9+
u" u$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$u "u
10+
$ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $
11+
$ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $
12+
$ $$$" ... "$... ...$" ... "$$$ ... "$$$ $
13+
$ $$$u `"$$$$$$$ $$$ $$$$$ $$ $$$ $$$ $
14+
$ $$$$$$uu "$$$$ $$$ $$$$$ $$ """ u$$$ $
15+
$ $$$""$$$ $$$$ $$$u "$$$" u$$ $$$$$$$$ $
16+
$ $$$$....,$$$$$..$$$$$....,$$$$..$$$$$$$$ $
17+
$ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $
18+
"u "$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$" u"
19+
"u "$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$" u"
20+
"u "$$$$$$$$$$$$$$$$$$$$$$$$$$$$" u"
21+
"u "$$$$$$$$$$$$$$$$$$$$$$$$" u"
22+
"u "$$$$$$$$$$$$$$$$$$$$" u"
23+
"u """""""""""""""""" u"
24+
""""""""""""""""""""
25+
26+
!!! Changes made in this directory are subject to being overwritten by automation !!!
27+
28+
The files in this directory are shared by all Arcade repos and managed by automation. If you need to make changes to these files, open an issue or submit a pull request to https://github.com/dotnet/arcade first.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
diff -u -r a/usr/lib/libc.so b/usr/lib/libc.so
2+
--- a/usr/lib/libc.so 2016-12-30 23:00:08.284951863 +0900
3+
+++ b/usr/lib/libc.so 2016-12-30 23:00:32.140951815 +0900
4+
@@ -2,4 +2,4 @@
5+
Use the shared library, but some functions are only in
6+
the static library, so try that secondarily. */
7+
OUTPUT_FORMAT(elf32-littlearm)
8+
-GROUP ( /lib/libc.so.6 /usr/lib/libc_nonshared.a AS_NEEDED ( /lib/ld-linux-armhf.so.3 ) )
9+
+GROUP ( libc.so.6 libc_nonshared.a AS_NEEDED ( ld-linux-armhf.so.3 ) )
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
diff -u -r a/usr/lib/libc.so b/usr/lib/libc.so
2+
--- a/usr/lib/libc.so 2016-12-30 23:00:08.284951863 +0900
3+
+++ b/usr/lib/libc.so 2016-12-30 23:00:32.140951815 +0900
4+
@@ -2,4 +2,4 @@
5+
Use the shared library, but some functions are only in
6+
the static library, so try that secondarily. */
7+
OUTPUT_FORMAT(elf32-littlearm)
8+
-GROUP ( /lib/libc.so.6 /usr/lib/libc_nonshared.a AS_NEEDED ( /lib/ld-linux.so.3 ) )
9+
+GROUP ( libc.so.6 libc_nonshared.a AS_NEEDED ( ld-linux.so.3 ) )
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
@echo off
2+
powershell -ExecutionPolicy ByPass -NoProfile -command "& """%~dp0dotnet-install.ps1""" %*"
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
[CmdletBinding(PositionalBinding=$false)]
2+
Param(
3+
[string] $verbosity = 'minimal',
4+
[string] $architecture = '',
5+
[string] $version = 'Latest',
6+
[string] $runtime = 'dotnet',
7+
[string] $RuntimeSourceFeed = '',
8+
[string] $RuntimeSourceFeedKey = ''
9+
)
10+
11+
. $PSScriptRoot\tools.ps1
12+
13+
$dotnetRoot = Join-Path $RepoRoot '.dotnet'
14+
15+
$installdir = $dotnetRoot
16+
try {
17+
if ($architecture -and $architecture.Trim() -eq 'x86') {
18+
$installdir = Join-Path $installdir 'x86'
19+
}
20+
InstallDotNet $installdir $version $architecture $runtime $true -RuntimeSourceFeed $RuntimeSourceFeed -RuntimeSourceFeedKey $RuntimeSourceFeedKey
21+
}
22+
catch {
23+
Write-Host $_.ScriptStackTrace
24+
Write-PipelineTelemetryError -Category 'InitializeToolset' -Message $_
25+
ExitWithExitCode 1
26+
}
27+
28+
ExitWithExitCode 0
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
param(
2+
[string] $token
3+
)
4+
5+
6+
. $PSScriptRoot\pipeline-logging-functions.ps1
7+
8+
# Write-PipelineSetVariable will no-op if a variable named $ci is not defined
9+
# Since this script is only ever called in AzDO builds, just universally set it
10+
$ci = $true
11+
12+
Write-PipelineSetVariable -Name 'VSS_NUGET_ACCESSTOKEN' -Value $token -IsMultiJobVariable $false
13+
Write-PipelineSetVariable -Name 'VSS_NUGET_URI_PREFIXES' -Value 'https://dnceng.pkgs.visualstudio.com/;https://pkgs.dev.azure.com/dnceng/;https://devdiv.pkgs.visualstudio.com/;https://pkgs.dev.azure.com/devdiv/' -IsMultiJobVariable $false
Lines changed: 189 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,189 @@
1+
Param(
2+
[Parameter(Mandatory=$true)][string] $SourcesDirectory, # Directory where source files live; if using a Localize directory it should live in here
3+
[string] $LanguageSet = 'VS_Main_Languages', # Language set to be used in the LocProject.json
4+
[switch] $UseCheckedInLocProjectJson, # When set, generates a LocProject.json and compares it to one that already exists in the repo; otherwise just generates one
5+
[switch] $CreateNeutralXlfs # Creates neutral xlf files. Only set to false when running locally
6+
)
7+
8+
# Generates LocProject.json files for the OneLocBuild task. OneLocBuildTask is described here:
9+
# https://ceapex.visualstudio.com/CEINTL/_wiki/wikis/CEINTL.wiki/107/Localization-with-OneLocBuild-Task
10+
11+
Set-StrictMode -Version 2.0
12+
$ErrorActionPreference = "Stop"
13+
. $PSScriptRoot\pipeline-logging-functions.ps1
14+
15+
$exclusionsFilePath = "$SourcesDirectory\eng\Localize\LocExclusions.json"
16+
$exclusions = @{ Exclusions = @() }
17+
if (Test-Path -Path $exclusionsFilePath)
18+
{
19+
$exclusions = Get-Content "$exclusionsFilePath" | ConvertFrom-Json
20+
}
21+
22+
Push-Location "$SourcesDirectory" # push location for Resolve-Path -Relative to work
23+
24+
# Template files
25+
$jsonFiles = @()
26+
$jsonTemplateFiles = Get-ChildItem -Recurse -Path "$SourcesDirectory" | Where-Object { $_.FullName -Match "\.template\.config\\localize\\.+\.en\.json" } # .NET templating pattern
27+
$jsonTemplateFiles | ForEach-Object {
28+
$null = $_.Name -Match "(.+)\.[\w-]+\.json" # matches '[filename].[langcode].json
29+
30+
$destinationFile = "$($_.Directory.FullName)\$($Matches.1).json"
31+
$jsonFiles += Copy-Item "$($_.FullName)" -Destination $destinationFile -PassThru
32+
}
33+
34+
$jsonWinformsTemplateFiles = Get-ChildItem -Recurse -Path "$SourcesDirectory" | Where-Object { $_.FullName -Match "en\\strings\.json" } # current winforms pattern
35+
36+
$wxlFiles = Get-ChildItem -Recurse -Path "$SourcesDirectory" | Where-Object { $_.FullName -Match "\\.+\.wxl" -And -Not( $_.Directory.Name -Match "\d{4}" ) } # localized files live in four digit lang ID directories; this excludes them
37+
if (-not $wxlFiles) {
38+
$wxlEnFiles = Get-ChildItem -Recurse -Path "$SourcesDirectory" | Where-Object { $_.FullName -Match "\\1033\\.+\.wxl" } # pick up en files (1033 = en) specifically so we can copy them to use as the neutral xlf files
39+
if ($wxlEnFiles) {
40+
$wxlFiles = @()
41+
$wxlEnFiles | ForEach-Object {
42+
$destinationFile = "$($_.Directory.Parent.FullName)\$($_.Name)"
43+
$wxlFiles += Copy-Item "$($_.FullName)" -Destination $destinationFile -PassThru
44+
}
45+
}
46+
}
47+
48+
$macosHtmlEnFiles = Get-ChildItem -Recurse -Path "$SourcesDirectory" | Where-Object { $_.FullName -Match "en\.lproj\\.+\.html$" } # add installer HTML files
49+
$macosHtmlFiles = @()
50+
if ($macosHtmlEnFiles) {
51+
$macosHtmlEnFiles | ForEach-Object {
52+
$destinationFile = "$($_.Directory.Parent.FullName)\$($_.Name)"
53+
$macosHtmlFiles += Copy-Item "$($_.FullName)" -Destination $destinationFile -PassThru
54+
}
55+
}
56+
57+
$xlfFiles = @()
58+
59+
$allXlfFiles = Get-ChildItem -Recurse -Path "$SourcesDirectory\*\*.xlf"
60+
$langXlfFiles = @()
61+
if ($allXlfFiles) {
62+
$null = $allXlfFiles[0].FullName -Match "\.([\w-]+)\.xlf" # matches '[langcode].xlf'
63+
$firstLangCode = $Matches.1
64+
$langXlfFiles = Get-ChildItem -Recurse -Path "$SourcesDirectory\*\*.$firstLangCode.xlf"
65+
}
66+
$langXlfFiles | ForEach-Object {
67+
$null = $_.Name -Match "(.+)\.[\w-]+\.xlf" # matches '[filename].[langcode].xlf
68+
69+
$destinationFile = "$($_.Directory.FullName)\$($Matches.1).xlf"
70+
$xlfFiles += Copy-Item "$($_.FullName)" -Destination $destinationFile -PassThru
71+
}
72+
73+
$locFiles = $jsonFiles + $jsonWinformsTemplateFiles + $xlfFiles
74+
75+
$locJson = @{
76+
Projects = @(
77+
@{
78+
LanguageSet = $LanguageSet
79+
LocItems = @(
80+
$locFiles | ForEach-Object {
81+
$outputPath = "$(($_.DirectoryName | Resolve-Path -Relative) + "\")"
82+
$continue = $true
83+
foreach ($exclusion in $exclusions.Exclusions) {
84+
if ($_.FullName.Contains($exclusion))
85+
{
86+
$continue = $false
87+
}
88+
}
89+
$sourceFile = ($_.FullName | Resolve-Path -Relative)
90+
if (!$CreateNeutralXlfs -and $_.Extension -eq '.xlf') {
91+
Remove-Item -Path $sourceFile
92+
}
93+
if ($continue)
94+
{
95+
if ($_.Directory.Name -eq 'en' -and $_.Extension -eq '.json') {
96+
return @{
97+
SourceFile = $sourceFile
98+
CopyOption = "LangIDOnPath"
99+
OutputPath = "$($_.Directory.Parent.FullName | Resolve-Path -Relative)\"
100+
}
101+
} else {
102+
return @{
103+
SourceFile = $sourceFile
104+
CopyOption = "LangIDOnName"
105+
OutputPath = $outputPath
106+
}
107+
}
108+
}
109+
}
110+
)
111+
},
112+
@{
113+
LanguageSet = $LanguageSet
114+
CloneLanguageSet = "WiX_CloneLanguages"
115+
LssFiles = @( "wxl_loc.lss" )
116+
LocItems = @(
117+
$wxlFiles | ForEach-Object {
118+
$outputPath = "$($_.Directory.FullName | Resolve-Path -Relative)\"
119+
$continue = $true
120+
foreach ($exclusion in $exclusions.Exclusions) {
121+
if ($_.FullName.Contains($exclusion)) {
122+
$continue = $false
123+
}
124+
}
125+
$sourceFile = ($_.FullName | Resolve-Path -Relative)
126+
if ($continue)
127+
{
128+
return @{
129+
SourceFile = $sourceFile
130+
CopyOption = "LangIDOnPath"
131+
OutputPath = $outputPath
132+
}
133+
}
134+
}
135+
)
136+
},
137+
@{
138+
LanguageSet = $LanguageSet
139+
CloneLanguageSet = "VS_macOS_CloneLanguages"
140+
LssFiles = @( ".\eng\common\loc\P22DotNetHtmlLocalization.lss" )
141+
LocItems = @(
142+
$macosHtmlFiles | ForEach-Object {
143+
$outputPath = "$($_.Directory.FullName | Resolve-Path -Relative)\"
144+
$continue = $true
145+
foreach ($exclusion in $exclusions.Exclusions) {
146+
if ($_.FullName.Contains($exclusion)) {
147+
$continue = $false
148+
}
149+
}
150+
$sourceFile = ($_.FullName | Resolve-Path -Relative)
151+
$lciFile = $sourceFile + ".lci"
152+
if ($continue) {
153+
$result = @{
154+
SourceFile = $sourceFile
155+
CopyOption = "LangIDOnPath"
156+
OutputPath = $outputPath
157+
}
158+
if (Test-Path $lciFile -PathType Leaf) {
159+
$result["LciFile"] = $lciFile
160+
}
161+
return $result
162+
}
163+
}
164+
)
165+
}
166+
)
167+
}
168+
169+
$json = ConvertTo-Json $locJson -Depth 5
170+
Write-Host "LocProject.json generated:`n`n$json`n`n"
171+
Pop-Location
172+
173+
if (!$UseCheckedInLocProjectJson) {
174+
New-Item "$SourcesDirectory\eng\Localize\LocProject.json" -Force # Need this to make sure the Localize directory is created
175+
Set-Content "$SourcesDirectory\eng\Localize\LocProject.json" $json
176+
}
177+
else {
178+
New-Item "$SourcesDirectory\eng\Localize\LocProject-generated.json" -Force # Need this to make sure the Localize directory is created
179+
Set-Content "$SourcesDirectory\eng\Localize\LocProject-generated.json" $json
180+
181+
if ((Get-FileHash "$SourcesDirectory\eng\Localize\LocProject-generated.json").Hash -ne (Get-FileHash "$SourcesDirectory\eng\Localize\LocProject.json").Hash) {
182+
Write-PipelineTelemetryError -Category "OneLocBuild" -Message "Existing LocProject.json differs from generated LocProject.json. Download LocProject-generated.json and compare them."
183+
184+
exit 1
185+
}
186+
else {
187+
Write-Host "Generated LocProject.json and current LocProject.json are identical."
188+
}
189+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
Param(
2+
[Parameter(Mandatory=$true)][string] $ManifestDirPath # Manifest directory where sbom will be placed
3+
)
4+
5+
. $PSScriptRoot\pipeline-logging-functions.ps1
6+
7+
# Normally - we'd listen to the manifest path given, but 1ES templates will overwrite if this level gets uploaded directly
8+
# with their own overwriting ours. So we create it as a sub directory of the requested manifest path.
9+
$ArtifactName = "${env:SYSTEM_STAGENAME}_${env:AGENT_JOBNAME}_SBOM"
10+
$SafeArtifactName = $ArtifactName -replace '["/:<>\\|?@*"() ]', '_'
11+
$SbomGenerationDir = Join-Path $ManifestDirPath $SafeArtifactName
12+
13+
Write-Host "Artifact name before : $ArtifactName"
14+
Write-Host "Artifact name after : $SafeArtifactName"
15+
16+
Write-Host "Creating dir $ManifestDirPath"
17+
18+
# create directory for sbom manifest to be placed
19+
if (!(Test-Path -path $SbomGenerationDir))
20+
{
21+
New-Item -ItemType Directory -path $SbomGenerationDir
22+
Write-Host "Successfully created directory $SbomGenerationDir"
23+
}
24+
else{
25+
Write-PipelineTelemetryError -category 'Build' "Unable to create sbom folder."
26+
}
27+
28+
Write-Host "Updating artifact name"
29+
Write-Host "##vso[task.setvariable variable=ARTIFACT_NAME]$SafeArtifactName"
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
@echo off
2+
powershell -NoProfile -NoLogo -ExecutionPolicy ByPass -command "& """%~dp0init-tools-native.ps1""" %*"
3+
exit /b %ErrorLevel%

0 commit comments

Comments
 (0)