Skip to content

Commit b89a6d3

Browse files
committed
Merge remote-tracking branch 'upstream/release/5.0' into internal/release/5.0
2 parents cb28516 + 29cd71c commit b89a6d3

File tree

5 files changed

+202
-9
lines changed

5 files changed

+202
-9
lines changed

eng/Version.Details.xml

+6-6
Original file line numberDiff line numberDiff line change
@@ -313,17 +313,17 @@
313313
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri>
314314
<Sha>2f740adc1457e8a28c1c072993b66f515977eb51</Sha>
315315
</Dependency>
316-
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="5.0.0-beta.21160.3">
316+
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="5.0.0-beta.21262.2">
317317
<Uri>https://github.com/dotnet/arcade</Uri>
318-
<Sha>670382be6a978ba401c21c57ba44311199d2682a</Sha>
318+
<Sha>dad4f3c62e24b94b1514427674af8ca899cddd5f</Sha>
319319
</Dependency>
320-
<Dependency Name="Microsoft.DotNet.Build.Tasks.Installers" Version="5.0.0-beta.21160.3">
320+
<Dependency Name="Microsoft.DotNet.Build.Tasks.Installers" Version="5.0.0-beta.21262.2">
321321
<Uri>https://github.com/dotnet/arcade</Uri>
322-
<Sha>670382be6a978ba401c21c57ba44311199d2682a</Sha>
322+
<Sha>dad4f3c62e24b94b1514427674af8ca899cddd5f</Sha>
323323
</Dependency>
324-
<Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="5.0.0-beta.21160.3">
324+
<Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="5.0.0-beta.21262.2">
325325
<Uri>https://github.com/dotnet/arcade</Uri>
326-
<Sha>670382be6a978ba401c21c57ba44311199d2682a</Sha>
326+
<Sha>dad4f3c62e24b94b1514427674af8ca899cddd5f</Sha>
327327
</Dependency>
328328
</ToolsetDependencies>
329329
</Dependencies>

eng/Versions.props

+1-1
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@
136136
<MicrosoftEntityFrameworkCorePackageVersion>5.0.7</MicrosoftEntityFrameworkCorePackageVersion>
137137
<MicrosoftEntityFrameworkCoreDesignPackageVersion>5.0.7</MicrosoftEntityFrameworkCoreDesignPackageVersion>
138138
<!-- Packages from dotnet/arcade -->
139-
<MicrosoftDotNetBuildTasksInstallersPackageVersion>5.0.0-beta.21160.3</MicrosoftDotNetBuildTasksInstallersPackageVersion>
139+
<MicrosoftDotNetBuildTasksInstallersPackageVersion>5.0.0-beta.21262.2</MicrosoftDotNetBuildTasksInstallersPackageVersion>
140140
</PropertyGroup>
141141
<!--
142142

eng/common/generate-locproject.ps1

+110
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
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\tools.ps1
14+
15+
Import-Module -Name (Join-Path $PSScriptRoot 'native\CommonLibrary.psm1')
16+
17+
$exclusionsFilePath = "$SourcesDirectory\Localize\LocExclusions.json"
18+
$exclusions = @{ Exclusions = @() }
19+
if (Test-Path -Path $exclusionsFilePath)
20+
{
21+
$exclusions = Get-Content "$exclusionsFilePath" | ConvertFrom-Json
22+
}
23+
24+
Push-Location "$SourcesDirectory" # push location for Resolve-Path -Relative to work
25+
26+
# Template files
27+
$jsonFiles = @()
28+
$jsonFiles += Get-ChildItem -Recurse -Path "$SourcesDirectory" | Where-Object { $_.FullName -Match "\.template\.config\\localize\\en\..+\.json" } # .NET templating pattern
29+
$jsonFiles += Get-ChildItem -Recurse -Path "$SourcesDirectory" | Where-Object { $_.FullName -Match "en\\strings\.json" } # current winforms pattern
30+
31+
$xlfFiles = @()
32+
33+
$allXlfFiles = Get-ChildItem -Recurse -Path "$SourcesDirectory\*\*.xlf"
34+
$langXlfFiles = @()
35+
if ($allXlfFiles) {
36+
$null = $allXlfFiles[0].FullName -Match "\.([\w-]+)\.xlf" # matches '[langcode].xlf'
37+
$firstLangCode = $Matches.1
38+
$langXlfFiles = Get-ChildItem -Recurse -Path "$SourcesDirectory\*\*.$firstLangCode.xlf"
39+
}
40+
$langXlfFiles | ForEach-Object {
41+
$null = $_.Name -Match "(.+)\.[\w-]+\.xlf" # matches '[filename].[langcode].xlf'
42+
43+
$destinationFile = "$($_.Directory.FullName)\$($Matches.1).xlf"
44+
$xlfFiles += Copy-Item "$($_.FullName)" -Destination $destinationFile -PassThru
45+
}
46+
47+
$locFiles = $jsonFiles + $xlfFiles
48+
49+
$locJson = @{
50+
Projects = @(
51+
@{
52+
LanguageSet = $LanguageSet
53+
LocItems = @(
54+
$locFiles | ForEach-Object {
55+
$outputPath = "$(($_.DirectoryName | Resolve-Path -Relative) + "\")"
56+
$continue = $true
57+
foreach ($exclusion in $exclusions.Exclusions) {
58+
if ($outputPath.Contains($exclusion))
59+
{
60+
$continue = $false
61+
}
62+
}
63+
$sourceFile = ($_.FullName | Resolve-Path -Relative)
64+
if (!$CreateNeutralXlfs -and $_.Extension -eq '.xlf') {
65+
Remove-Item -Path $sourceFile
66+
}
67+
if ($continue)
68+
{
69+
if ($_.Directory.Name -eq 'en' -and $_.Extension -eq '.json') {
70+
return @{
71+
SourceFile = $sourceFile
72+
CopyOption = "LangIDOnPath"
73+
OutputPath = "$($_.Directory.Parent.FullName | Resolve-Path -Relative)\"
74+
}
75+
}
76+
else {
77+
return @{
78+
SourceFile = $sourceFile
79+
CopyOption = "LangIDOnName"
80+
OutputPath = $outputPath
81+
}
82+
}
83+
}
84+
}
85+
)
86+
}
87+
)
88+
}
89+
90+
$json = ConvertTo-Json $locJson -Depth 5
91+
Write-Host "LocProject.json generated:`n`n$json`n`n"
92+
Pop-Location
93+
94+
if (!$UseCheckedInLocProjectJson) {
95+
New-Item "$SourcesDirectory\Localize\LocProject.json" -Force # Need this to make sure the Localize directory is created
96+
Set-Content "$SourcesDirectory\Localize\LocProject.json" $json
97+
}
98+
else {
99+
New-Item "$SourcesDirectory\Localize\LocProject-generated.json" -Force # Need this to make sure the Localize directory is created
100+
Set-Content "$SourcesDirectory\Localize\LocProject-generated.json" $json
101+
102+
if ((Get-FileHash "$SourcesDirectory\Localize\LocProject-generated.json").Hash -ne (Get-FileHash "$SourcesDirectory\Localize\LocProject.json").Hash) {
103+
Write-PipelineTelemetryError -Category "OneLocBuild" -Message "Existing LocProject.json differs from generated LocProject.json. Download LocProject-generated.json and compare them."
104+
105+
exit 1
106+
}
107+
else {
108+
Write-Host "Generated LocProject.json and current LocProject.json are identical."
109+
}
110+
}
+83
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
parameters:
2+
# Optional: dependencies of the job
3+
dependsOn: ''
4+
5+
# Optional: A defined YAML pool - https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=vsts&tabs=schema#pool
6+
pool:
7+
vmImage: vs2017-win2016
8+
9+
CeapexPat: $(dn-bot-ceapex-package-r) # PAT for the loc AzDO instance https://dev.azure.com/ceapex
10+
GithubPat: $(BotAccount-dotnet-bot-repo-PAT)
11+
12+
SourcesDirectory: $(Build.SourcesDirectory)
13+
CreatePr: true
14+
AutoCompletePr: false
15+
UseCheckedInLocProjectJson: false
16+
LanguageSet: VS_Main_Languages
17+
LclSource: lclFilesInRepo
18+
LclPackageId: ''
19+
RepoType: gitHub
20+
condition: ''
21+
22+
jobs:
23+
- job: OneLocBuild
24+
25+
dependsOn: ${{ parameters.dependsOn }}
26+
27+
displayName: OneLocBuild
28+
29+
pool: ${{ parameters.pool }}
30+
31+
variables:
32+
- group: OneLocBuildVariables # Contains the CeapexPat and GithubPat
33+
- name: _GenerateLocProjectArguments
34+
value: -SourcesDirectory ${{ parameters.SourcesDirectory }}
35+
-LanguageSet "${{ parameters.LanguageSet }}"
36+
-CreateNeutralXlfs
37+
- ${{ if eq(parameters.UseCheckedInLocProjectJson, 'true') }}:
38+
- name: _GenerateLocProjectArguments
39+
value: ${{ variables._GenerateLocProjectArguments }} -UseCheckedInLocProjectJson
40+
41+
42+
steps:
43+
- task: Powershell@2
44+
inputs:
45+
filePath: $(Build.SourcesDirectory)/eng/common/generate-locproject.ps1
46+
arguments: $(_GenerateLocProjectArguments)
47+
displayName: Generate LocProject.json
48+
condition: ${{ parameters.condition }}
49+
50+
- task: OneLocBuild@2
51+
displayName: OneLocBuild
52+
env:
53+
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
54+
inputs:
55+
locProj: Localize/LocProject.json
56+
outDir: $(Build.ArtifactStagingDirectory)
57+
lclSource: ${{ parameters.LclSource }}
58+
lclPackageId: ${{ parameters.LclPackageId }}
59+
isCreatePrSelected: ${{ parameters.CreatePr }}
60+
${{ if eq(parameters.CreatePr, true) }}:
61+
isAutoCompletePrSelected: ${{ parameters.AutoCompletePr }}
62+
packageSourceAuth: patAuth
63+
patVariable: ${{ parameters.CeapexPat }}
64+
${{ if eq(parameters.RepoType, 'gitHub') }}:
65+
repoType: ${{ parameters.RepoType }}
66+
gitHubPatVariable: "${{ parameters.GithubPat }}"
67+
condition: ${{ parameters.condition }}
68+
69+
- task: PublishBuildArtifacts@1
70+
displayName: Publish Localization Files
71+
inputs:
72+
PathtoPublish: '$(Build.ArtifactStagingDirectory)/loc'
73+
PublishLocation: Container
74+
ArtifactName: Loc
75+
condition: ${{ parameters.condition }}
76+
77+
- task: PublishBuildArtifacts@1
78+
displayName: Publish LocProject.json
79+
inputs:
80+
PathtoPublish: '$(Build.SourcesDirectory)/Localize/'
81+
PublishLocation: Container
82+
ArtifactName: Loc
83+
condition: ${{ parameters.condition }}

global.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
},
3131
"msbuild-sdks": {
3232
"Yarn.MSBuild": "1.15.2",
33-
"Microsoft.DotNet.Arcade.Sdk": "5.0.0-beta.21160.3",
34-
"Microsoft.DotNet.Helix.Sdk": "5.0.0-beta.21160.3"
33+
"Microsoft.DotNet.Arcade.Sdk": "5.0.0-beta.21262.2",
34+
"Microsoft.DotNet.Helix.Sdk": "5.0.0-beta.21262.2"
3535
}
3636
}

0 commit comments

Comments
 (0)