From 0a64a2d92a66914e85cd7c6cdb783075a58a12c4 Mon Sep 17 00:00:00 2001 From: Dongbo Wang Date: Wed, 9 Sep 2026 09:14:03 -0700 Subject: [PATCH 1/2] Fix `LocProject.json` tests and trigger CIs on changes to `LocProject.json` (#27988) --- .../infrastructure/path-filters/action.yml | 5 ++- .../ResourceValidation/LocProject.Tests.ps1 | 32 +++++++++++++++++-- 2 files changed, 33 insertions(+), 4 deletions(-) diff --git a/.github/actions/infrastructure/path-filters/action.yml b/.github/actions/infrastructure/path-filters/action.yml index b50384f698d..18e78e9a2fd 100644 --- a/.github/actions/infrastructure/path-filters/action.yml +++ b/.github/actions/infrastructure/path-filters/action.yml @@ -112,6 +112,9 @@ runs: const globalConfigChanged = files.some(file => file === '.globalconfig' || file === 'nuget.config' || file === 'global.json'); console.log(`✓ Global config changed: ${globalConfigChanged}`); + const localizationConfigChanged = files.some(file => file === 'Localize/LocProject.json'); + console.log(`✓ Localization config changed: ${localizationConfigChanged}`); + const packagingChanged = files.some(file => file === '.github/workflows/windows-ci.yml' || file === '.github/workflows/linux-ci.yml' || @@ -128,7 +131,7 @@ runs: toolsCiPsm1Changed; console.log(`→ Packaging changed: ${packagingChanged}`); - const source = mainSourceChanged || toolsChanged || githubChanged || propsChanged || testsChanged || globalConfigChanged; + const source = mainSourceChanged || toolsChanged || githubChanged || propsChanged || testsChanged || globalConfigChanged || localizationConfigChanged; console.log(`→ Source (composite): ${source}`); core.endGroup(); diff --git a/test/powershell/engine/ResourceValidation/LocProject.Tests.ps1 b/test/powershell/engine/ResourceValidation/LocProject.Tests.ps1 index f8e77c0fb02..4f348fa2d3f 100644 --- a/test/powershell/engine/ResourceValidation/LocProject.Tests.ps1 +++ b/test/powershell/engine/ResourceValidation/LocProject.Tests.ps1 @@ -29,8 +29,18 @@ Describe "LocProject.json file validation" -Tags "CI" { $realSourceFile = Join-Path $repoRoot $sourceFile Test-Path -Path $realSourceFile | Should -BeTrue - $_.OutputPath | Should -BeExactly "$parentDir\" - $_.CopyOption | Should -BeExactly 'LangIDOnPathAndName' + + if ($sourceFile -like '*.resx') { + $_.OutputPath | Should -BeExactly "$parentDir\" + $_.CopyOption | Should -BeExactly 'LangIDOnPathAndName' + } + elseif ($sourceFile -like '*.xml') { + $_.OutputPath + "en-US" | Should -BeExactly $parentDir + $_.CopyOption | Should -BeExactly 'LangIDOnPath' + } + else { + throw "Unexpected source file type: $sourceFile" + } } } @@ -38,6 +48,21 @@ Describe "LocProject.json file validation" -Tags "CI" { $srcDir = Join-Path $repoRoot 'src' $project = $locProject.Projects[0] + $resxLocItemCount = 0 + $xmlLocItemCount = 0 + + foreach ($item in $project.LocItems) { + if ($item.SourceFile -like '*.resx') { + $resxLocItemCount++ + } + elseif ($item.SourceFile -like '*.xml') { + $xmlLocItemCount++ + } + else { + throw "Unexpected source file type: $($item.SourceFile)" + } + } + try { Push-Location -Path $srcDir $resDirs = Get-ChildItem 'resources' -Recurse -Directory | ForEach-Object FullName @@ -48,7 +73,8 @@ Describe "LocProject.json file validation" -Tags "CI" { $totalResourceCount += $count } - $project.LocItems.Count | Should -Be $totalResourceCount + $resxLocItemCount | Should -Be $totalResourceCount + $xmlLocItemCount | Should -Be 1 } finally { Pop-Location From 993e828d229f63c72eb7fd8d66d19118c015b362 Mon Sep 17 00:00:00 2001 From: Dongbo Wang Date: Wed, 9 Sep 2026 09:14:22 -0700 Subject: [PATCH 2/2] Update `metadata.json` for September releases (#27989) --- tools/metadata.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/metadata.json b/tools/metadata.json index cbcd1823c4e..c24b7fa5b6a 100644 --- a/tools/metadata.json +++ b/tools/metadata.json @@ -1,9 +1,9 @@ { - "StableReleaseTag": "v7.6.5", + "StableReleaseTag": "v7.6.6", "PreviewReleaseTag": "v7.7.0-preview.4", "ServicingReleaseTag": "v7.0.13", - "ReleaseTag": "v7.6.5", - "LTSReleaseTag": ["v7.4.19", "v7.6.5"], + "ReleaseTag": "v7.6.6", + "LTSReleaseTag": ["v7.4.20", "v7.6.6"], "NextReleaseTag": "v7.7.0-preview.5", "LTSRelease": { "PublishToChannels": false, "Package": false }, "StableRelease": { "PublishToChannels": false, "Package": false }