From fdaeaeb11a3f19b65e7568fbbb03fef56b39e046 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Thu, 18 Mar 2021 20:16:04 -0400 Subject: [PATCH] [main] Update dependencies from dotnet/arcade dotnet/icu (#49820) * Update dependencies from https://github.com/dotnet/arcade build 20210317.3 Microsoft.DotNet.XUnitExtensions , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk , Microsoft.DotNet.Build.Tasks.Packaging , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.ApiCompat , Microsoft.DotNet.GenAPI , Microsoft.DotNet.GenFacades , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SharedFramework.Sdk From Version 6.0.0-beta.21166.5 -> To Version 6.0.0-beta.21167.3 * Update dependencies from https://github.com/dotnet/icu build 20210317.1 Microsoft.NETCore.Runtime.ICU.Transport From Version 6.0.0-preview.3.21165.1 -> To Version 6.0.0-preview.3.21167.1 * Revert changes to publish-using-darc.ps1 Workaround still needed for https://github.com/dotnet/arcade/issues/6987 Co-authored-by: dotnet-maestro[bot] Co-authored-by: Ricardo Arenas --- eng/Version.Details.xml | 68 +++++++-------- eng/Versions.props | 26 +++--- eng/common/generate-locproject.ps1 | 101 +++++++++++++++++++++++ eng/common/templates/job/onelocbuild.yml | 75 +++++++++++++++++ global.json | 8 +- 5 files changed, 227 insertions(+), 51 deletions(-) create mode 100644 eng/common/generate-locproject.ps1 create mode 100644 eng/common/templates/job/onelocbuild.yml diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 056e272882bd7..de7fdf63825c4 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,74 +1,74 @@ - + https://github.com/dotnet/icu - 9ffb5011f22ed30f09edba7b88309d83d1d99682 + 4515910c7f374fe3332677b3a1b8321072d7f8de - + https://github.com/dotnet/arcade - b80229ca3c7bae93ff9b4a50807c7efb0518e771 + 0ca849f0b71866b007fedaaa938cee63f8d056a6 - + https://github.com/dotnet/arcade - b80229ca3c7bae93ff9b4a50807c7efb0518e771 + 0ca849f0b71866b007fedaaa938cee63f8d056a6 - + https://github.com/dotnet/arcade - b80229ca3c7bae93ff9b4a50807c7efb0518e771 + 0ca849f0b71866b007fedaaa938cee63f8d056a6 - + https://github.com/dotnet/arcade - b80229ca3c7bae93ff9b4a50807c7efb0518e771 + 0ca849f0b71866b007fedaaa938cee63f8d056a6 - + https://github.com/dotnet/arcade - b80229ca3c7bae93ff9b4a50807c7efb0518e771 + 0ca849f0b71866b007fedaaa938cee63f8d056a6 - + https://github.com/dotnet/arcade - b80229ca3c7bae93ff9b4a50807c7efb0518e771 + 0ca849f0b71866b007fedaaa938cee63f8d056a6 - + https://github.com/dotnet/arcade - b80229ca3c7bae93ff9b4a50807c7efb0518e771 + 0ca849f0b71866b007fedaaa938cee63f8d056a6 - + https://github.com/dotnet/arcade - b80229ca3c7bae93ff9b4a50807c7efb0518e771 + 0ca849f0b71866b007fedaaa938cee63f8d056a6 - + https://github.com/dotnet/arcade - b80229ca3c7bae93ff9b4a50807c7efb0518e771 + 0ca849f0b71866b007fedaaa938cee63f8d056a6 - + https://github.com/dotnet/arcade - b80229ca3c7bae93ff9b4a50807c7efb0518e771 + 0ca849f0b71866b007fedaaa938cee63f8d056a6 - + https://github.com/dotnet/arcade - b80229ca3c7bae93ff9b4a50807c7efb0518e771 + 0ca849f0b71866b007fedaaa938cee63f8d056a6 - + https://github.com/dotnet/arcade - b80229ca3c7bae93ff9b4a50807c7efb0518e771 + 0ca849f0b71866b007fedaaa938cee63f8d056a6 - + https://github.com/dotnet/arcade - b80229ca3c7bae93ff9b4a50807c7efb0518e771 + 0ca849f0b71866b007fedaaa938cee63f8d056a6 - + https://github.com/dotnet/arcade - b80229ca3c7bae93ff9b4a50807c7efb0518e771 + 0ca849f0b71866b007fedaaa938cee63f8d056a6 - + https://github.com/dotnet/arcade - b80229ca3c7bae93ff9b4a50807c7efb0518e771 + 0ca849f0b71866b007fedaaa938cee63f8d056a6 - + https://github.com/dotnet/arcade - b80229ca3c7bae93ff9b4a50807c7efb0518e771 + 0ca849f0b71866b007fedaaa938cee63f8d056a6 https://dev.azure.com/dnceng/internal/_git/dotnet-optimization diff --git a/eng/Versions.props b/eng/Versions.props index d51c5f002c2a8..7c323618b946d 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -49,18 +49,18 @@ 3.9.0-5.final 3.9.0-5.final - 6.0.0-beta.21166.5 - 6.0.0-beta.21166.5 - 6.0.0-beta.21166.5 - 6.0.0-beta.21166.5 - 6.0.0-beta.21166.5 - 6.0.0-beta.21166.5 - 2.5.1-beta.21166.5 - 6.0.0-beta.21166.5 - 6.0.0-beta.21166.5 - 6.0.0-beta.21166.5 - 6.0.0-beta.21166.5 - 6.0.0-beta.21166.5 + 6.0.0-beta.21167.3 + 6.0.0-beta.21167.3 + 6.0.0-beta.21167.3 + 6.0.0-beta.21167.3 + 6.0.0-beta.21167.3 + 6.0.0-beta.21167.3 + 2.5.1-beta.21167.3 + 6.0.0-beta.21167.3 + 6.0.0-beta.21167.3 + 6.0.0-beta.21167.3 + 6.0.0-beta.21167.3 + 6.0.0-beta.21167.3 5.9.0-preview.2 @@ -157,7 +157,7 @@ 6.0.100-preview.2.21167.1 - 6.0.0-preview.3.21165.1 + 6.0.0-preview.3.21167.1 9.0.1-alpha.1.21165.1 9.0.1-alpha.1.21165.1 diff --git a/eng/common/generate-locproject.ps1 b/eng/common/generate-locproject.ps1 new file mode 100644 index 0000000000000..9e2f7ad98bf0b --- /dev/null +++ b/eng/common/generate-locproject.ps1 @@ -0,0 +1,101 @@ +Param( + [Parameter(Mandatory=$true)][string] $SourcesDirectory, # Directory where source files live; if using a Localize directory it should live in here + [string] $LanguageSet = 'VS_Main_Languages', # Language set to be used in the LocProject.json + [switch] $UseCheckedInLocProjectJson, # When set, generates a LocProject.json and compares it to one that already exists in the repo; otherwise just generates one + [switch] $CreateNeutralXlfs # Creates neutral xlf files. Only set to false when running locally +) + +# Generates LocProject.json files for the OneLocBuild task. OneLocBuildTask is described here: +# https://ceapex.visualstudio.com/CEINTL/_wiki/wikis/CEINTL.wiki/107/Localization-with-OneLocBuild-Task + +Set-StrictMode -Version 2.0 +$ErrorActionPreference = "Stop" +. $PSScriptRoot\tools.ps1 + +Import-Module -Name (Join-Path $PSScriptRoot 'native\CommonLibrary.psm1') + +$exclusionsFilePath = "$SourcesDirectory\Localize\LocExclusions.json" +$exclusions = @{ Exclusions = @() } +if (Test-Path -Path $exclusionsFilePath) +{ + $exclusions = Get-Content "$exclusionsFilePath" | ConvertFrom-Json +} + +Push-Location "$SourcesDirectory" # push location for Resolve-Path -Relative to work + +# Template files +$jsonFiles = @() +$jsonFiles += Get-ChildItem -Recurse -Path "$SourcesDirectory" | Where-Object { $_.FullName -Match "\.template\.config\\localize\\en\..+\.json" } # .NET templating pattern +$jsonFiles += Get-ChildItem -Recurse -Path "$SourcesDirectory" | Where-Object { $_.FullName -Match "en\\strings\.json" } # current winforms pattern + +$xlfFiles = @() + +$allXlfFiles = Get-ChildItem -Recurse -Path "$SourcesDirectory\*\*.xlf" +$langXlfFiles = @() +if ($allXlfFiles) { + $null = $allXlfFiles[0].FullName -Match "\.([\w-]+)\.xlf" # matches '[langcode].xlf' + $firstLangCode = $Matches.1 + $langXlfFiles = Get-ChildItem -Recurse -Path "$SourcesDirectory\*\*.$firstLangCode.xlf" +} +$langXlfFiles | ForEach-Object { + $null = $_.Name -Match "([^.]+)\.[\w-]+\.xlf" # matches '[filename].[langcode].xlf' + + $destinationFile = "$($_.Directory.FullName)\$($Matches.1).xlf" + $xlfFiles += Copy-Item "$($_.FullName)" -Destination $destinationFile -PassThru +} + +$locFiles = $jsonFiles + $xlfFiles + +$locJson = @{ + Projects = @( + @{ + LanguageSet = $LanguageSet + LocItems = @( + $locFiles | ForEach-Object { + $outputPath = "Localize\$(($_.DirectoryName | Resolve-Path -Relative) + "\")" + $continue = $true + foreach ($exclusion in $exclusions.Exclusions) { + if ($outputPath.Contains($exclusion)) + { + $continue = $false + } + } + $sourceFile = ($_.FullName | Resolve-Path -Relative) + if (!$CreateNeutralXlfs -and $_.Extension -eq '.xlf') { + Remove-Item -Path $sourceFile + } + if ($continue) + { + return @{ + SourceFile = $sourceFile + CopyOption = "LangIDOnName" + OutputPath = $outputPath + } + } + } + ) + } + ) +} + +$json = ConvertTo-Json $locJson -Depth 5 +Write-Host "(NETCORE_ENGINEERING_TELEMETRY=Build) LocProject.json generated:`n`n$json`n`n" +Pop-Location + +if (!$UseCheckedInLocProjectJson) { + New-Item "$SourcesDirectory\Localize\LocProject.json" -Force # Need this to make sure the Localize directory is created + Set-Content "$SourcesDirectory\Localize\LocProject.json" $json +} +else { + New-Item "$SourcesDirectory\Localize\LocProject-generated.json" -Force # Need this to make sure the Localize directory is created + Set-Content "$SourcesDirectory\Localize\LocProject-generated.json" $json + + if ((Get-FileHash "$SourcesDirectory\Localize\LocProject-generated.json").Hash -ne (Get-FileHash "$SourcesDirectory\Localize\LocProject.json").Hash) { + Write-PipelineTaskError -Type "warning" -Message "Existing LocProject.json differs from generated LocProject.json. Download LocProject-generated.json and compare them." + + exit 1 + } + else { + Write-Host "Generated LocProject.json and current LocProject.json are identical." + } +} \ No newline at end of file diff --git a/eng/common/templates/job/onelocbuild.yml b/eng/common/templates/job/onelocbuild.yml new file mode 100644 index 0000000000000..6abc041cd1c84 --- /dev/null +++ b/eng/common/templates/job/onelocbuild.yml @@ -0,0 +1,75 @@ +parameters: + # Optional: dependencies of the job + dependsOn: '' + + # Optional: A defined YAML pool - https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=vsts&tabs=schema#pool + pool: + vmImage: vs2017-win2016 + + CeapexPat: $(dn-bot-ceapex-package-r) # PAT for the loc AzDO instance https://dev.azure.com/ceapex + GithubPat: $(BotAccount-dotnet-bot-repo-PAT) + + SourcesDirectory: $(Build.SourcesDirectory) + CreatePr: true + UseCheckedInLocProjectJson: false + LanguageSet: VS_Main_Languages + LclSource: lclFilesInRepo + LclPackageId: '' + RepoType: gitHub + +jobs: +- job: OneLocBuild + + dependsOn: ${{ parameters.dependsOn }} + + displayName: OneLocBuild + + pool: ${{ parameters.pool }} + + variables: + - group: OneLocBuildVariables # Contains the CeapexPat and GithubPat + - name: _GenerateLocProjectArguments + value: -SourcesDirectory ${{ parameters.SourcesDirectory }} + -LanguageSet "${{ parameters.LanguageSet }}" + -CreateNeutralXlfs + - ${{ if eq(parameters.UseCheckedInLocProjectJson, 'true') }}: + - name: _GenerateLocProjectArguments + value: ${{ variables._GenerateLocProjectArguments }} -UseCheckedInLocProjectJson + + + steps: + - task: Powershell@2 + inputs: + filePath: $(Build.SourcesDirectory)/eng/common/generate-locproject.ps1 + arguments: $(_GenerateLocProjectArguments) + displayName: Generate LocProject.json + + - task: OneLocBuild@2 + displayName: OneLocBuild + inputs: + locProj: Localize/LocProject.json + outDir: $(Build.ArtifactStagingDirectory) + lclSource: ${{ parameters.LclSource }} + lclPackageId: ${{ parameters.LclPackageId }} + isCreatePrSelected: ${{ parameters.CreatePr }} + repoType: ${{ parameters.RepoType }} + gitHubPatVariable: "${{ parameters.GithubPat }}" + packageSourceAuth: patAuth + patVariable: ${{ parameters.CeapexPat }} + condition: always() + + - task: PublishBuildArtifacts@1 + displayName: Publish Localization Files + inputs: + PathtoPublish: '$(Build.ArtifactStagingDirectory)/loc' + PublishLocation: Container + ArtifactName: Loc + condition: always() + + - task: PublishBuildArtifacts@1 + displayName: Publish LocProject.json + inputs: + PathtoPublish: '$(Build.SourcesDirectory)/Localize/' + PublishLocation: Container + ArtifactName: Loc + condition: always() \ No newline at end of file diff --git a/global.json b/global.json index 5c813a95eff0e..8f2623491d842 100644 --- a/global.json +++ b/global.json @@ -12,10 +12,10 @@ "python3": "3.7.1" }, "msbuild-sdks": { - "Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk": "6.0.0-beta.21166.5", - "Microsoft.DotNet.Arcade.Sdk": "6.0.0-beta.21166.5", - "Microsoft.DotNet.Helix.Sdk": "6.0.0-beta.21166.5", - "Microsoft.DotNet.SharedFramework.Sdk": "6.0.0-beta.21166.5", + "Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk": "6.0.0-beta.21167.3", + "Microsoft.DotNet.Arcade.Sdk": "6.0.0-beta.21167.3", + "Microsoft.DotNet.Helix.Sdk": "6.0.0-beta.21167.3", + "Microsoft.DotNet.SharedFramework.Sdk": "6.0.0-beta.21167.3", "Microsoft.Build.NoTargets": "2.0.17", "Microsoft.Build.Traversal": "2.1.1", "Microsoft.NET.Sdk.IL": "6.0.0-preview.3.21157.6"