diff --git a/.github/actions/spell-check/expect.txt b/.github/actions/spell-check/expect.txt index aac8998ed4..e4002c1774 100644 --- a/.github/actions/spell-check/expect.txt +++ b/.github/actions/spell-check/expect.txt @@ -1025,6 +1025,7 @@ Metacharacter metadatamatters Metadatas metafile +Metacharacter mfc Mgmt Microwaved @@ -1071,7 +1072,7 @@ mouseutils MOVESIZEEND MOVESIZESTART MRM -MRT +Mrt mru MSAL msc diff --git a/.pipelines/v2/release.yml b/.pipelines/v2/release.yml index a9799dc031..d3adc45f04 100644 --- a/.pipelines/v2/release.yml +++ b/.pipelines/v2/release.yml @@ -91,6 +91,7 @@ extends: official: true codeSign: true runTests: false + buildTests: false signingIdentity: serviceName: $(SigningServiceName) appId: $(SigningAppId) diff --git a/.pipelines/v2/templates/job-build-project.yml b/.pipelines/v2/templates/job-build-project.yml index fb321f6f2f..e41bfbc0ad 100644 --- a/.pipelines/v2/templates/job-build-project.yml +++ b/.pipelines/v2/templates/job-build-project.yml @@ -258,6 +258,7 @@ jobs: -restore -graph /p:RestorePackagesConfig=true /p:CIBuild=true + /p:BuildTests=${{ parameters.buildTests }} /bl:$(LogOutputDirectory)\build-0-main.binlog ${{ parameters.additionalBuildOptions }} $(MSBuildCacheParameters) diff --git a/.pipelines/v2/templates/pipeline-ci-build.yml b/.pipelines/v2/templates/pipeline-ci-build.yml index 0ef570d0c8..a56c575399 100644 --- a/.pipelines/v2/templates/pipeline-ci-build.yml +++ b/.pipelines/v2/templates/pipeline-ci-build.yml @@ -59,6 +59,7 @@ stages: enableMsBuildCaching: ${{ parameters.enableMsBuildCaching }} msBuildCacheIsReadOnly: ${{ parameters.msBuildCacheIsReadOnly }} runTests: ${{ parameters.runTests }} + buildTests: true useVSPreview: ${{ parameters.useVSPreview }} useLatestWinAppSDK: ${{ parameters.useLatestWinAppSDK }} ${{ if eq(parameters.useLatestWinAppSDK, true) }}: @@ -78,7 +79,9 @@ stages: ${{ else }}: name: SHINE-OSS-L ${{ if eq(parameters.useVSPreview, true) }}: - demands: ImageOverride -equals SHINE-VS17-Preview + demands: ImageOverride -equals SHINE-VS18-Preview + ${{ else }}: + demands: ImageOverride -equals SHINE-VS18-Latest buildConfigurations: [Release] official: false codeSign: false diff --git a/.pipelines/verifyNoticeMdAgainstNugetPackages.ps1 b/.pipelines/verifyNoticeMdAgainstNugetPackages.ps1 index af9ab8ff6f..a5cf73e6e9 100644 --- a/.pipelines/verifyNoticeMdAgainstNugetPackages.ps1 +++ b/.pipelines/verifyNoticeMdAgainstNugetPackages.ps1 @@ -90,9 +90,15 @@ if ($noticeMatch.Success) { $currentNoticePackageList = "" } +# Test-only packages that are allowed to be in NOTICE.md but not in the build +# (e.g., when BuildTests=false, these packages won't appear in the NuGet list) +$allowedExtraPackages = @( + "- Moq" +) + if (!$noticeFile.Trim().EndsWith($returnList.Trim())) { - Write-Host -ForegroundColor Red "Notice.md does not match NuGet list." + Write-Host -ForegroundColor Yellow "Notice.md does not exactly match NuGet list. Analyzing differences..." # Show detailed differences $generatedPackages = $returnList -split "`r`n|`n" | Where-Object { $_.Trim() -ne "" } | Sort-Object @@ -105,7 +111,7 @@ if (!$noticeFile.Trim().EndsWith($returnList.Trim())) # Find packages in proj file list but not in NOTICE.md $missingFromNotice = $generatedPackages | Where-Object { $noticePackages -notcontains $_ } if ($missingFromNotice.Count -gt 0) { - Write-Host -ForegroundColor Red "MissingFromNotice:" + Write-Host -ForegroundColor Red "MissingFromNotice (ERROR - these must be added to NOTICE.md):" foreach ($pkg in $missingFromNotice) { Write-Host -ForegroundColor Red " $pkg" } @@ -114,10 +120,23 @@ if (!$noticeFile.Trim().EndsWith($returnList.Trim())) # Find packages in NOTICE.md but not in proj file list $extraInNotice = $noticePackages | Where-Object { $generatedPackages -notcontains $_ } - if ($extraInNotice.Count -gt 0) { - Write-Host -ForegroundColor Yellow "ExtraInNotice:" - foreach ($pkg in $extraInNotice) { - Write-Host -ForegroundColor Yellow " $pkg" + + # Filter out allowed extra packages (test-only dependencies) + $unexpectedExtra = $extraInNotice | Where-Object { $allowedExtraPackages -notcontains $_ } + $allowedExtra = $extraInNotice | Where-Object { $allowedExtraPackages -contains $_ } + + if ($allowedExtra.Count -gt 0) { + Write-Host -ForegroundColor Green "ExtraInNotice (OK - allowed test-only packages):" + foreach ($pkg in $allowedExtra) { + Write-Host -ForegroundColor Green " $pkg" + } + Write-Host "" + } + + if ($unexpectedExtra.Count -gt 0) { + Write-Host -ForegroundColor Red "ExtraInNotice (ERROR - unexpected packages in NOTICE.md):" + foreach ($pkg in $unexpectedExtra) { + Write-Host -ForegroundColor Red " $pkg" } Write-Host "" } @@ -127,10 +146,17 @@ if (!$noticeFile.Trim().EndsWith($returnList.Trim())) Write-Host " Proj file list has $($generatedPackages.Count) packages" Write-Host " NOTICE.md has $($noticePackages.Count) packages" Write-Host " MissingFromNotice: $($missingFromNotice.Count) packages" - Write-Host " ExtraInNotice: $($extraInNotice.Count) packages" + Write-Host " ExtraInNotice (allowed): $($allowedExtra.Count) packages" + Write-Host " ExtraInNotice (unexpected): $($unexpectedExtra.Count) packages" Write-Host "" - exit 1 + # Fail if there are missing packages OR unexpected extra packages + if ($missingFromNotice.Count -gt 0 -or $unexpectedExtra.Count -gt 0) { + Write-Host -ForegroundColor Red "FAILED: NOTICE.md mismatch detected." + exit 1 + } else { + Write-Host -ForegroundColor Green "PASSED: NOTICE.md matches (with allowed test-only packages)." + } } exit 0 diff --git a/Cpp.Build.props b/Cpp.Build.props index 4b8a206306..5acfbdee1a 100644 --- a/Cpp.Build.props +++ b/Cpp.Build.props @@ -2,6 +2,12 @@ + + + false + false + + diff --git a/Directory.Build.props b/Directory.Build.props index e7b415cbca..99379ecefc 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -19,6 +19,39 @@ $(Platform) + + + <_ProjectName>$(MSBuildProjectName) + + <_IsSkippedTestProject Condition="$(_ProjectName.EndsWith('Test'))">true + <_IsSkippedTestProject Condition="$(_ProjectName.EndsWith('Tests'))">true + + <_IsSkippedTestProject Condition="$(_ProjectName.StartsWith('UnitTests-'))">true + <_IsSkippedTestProject Condition="$(_ProjectName.StartsWith('UITest-'))">true + + <_IsSkippedTestProject Condition="$(MSBuildProjectDirectory.Contains('\Tests\'))">true + + + + false + false + false + false + disable + + false + false + false + false + + $(Version).0 https://github.com/microsoft/PowerToys @@ -30,7 +63,9 @@ <_PropertySheetDisplayName>PowerToys.Root.Props $(MsbuildThisFileDirectory)\Cpp.Build.props - + + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/Directory.Build.targets b/Directory.Build.targets index ab9bad297e..9efab5a9a5 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -28,4 +28,41 @@ $(NoWarn);CS8305;SA1500;CA1852 - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/modules/cmdpal/Core/Microsoft.CmdPal.Core.ViewModels/Microsoft.CmdPal.Core.ViewModels.csproj b/src/modules/cmdpal/Core/Microsoft.CmdPal.Core.ViewModels/Microsoft.CmdPal.Core.ViewModels.csproj index 4ace6c5783..6e1b224ecd 100644 --- a/src/modules/cmdpal/Core/Microsoft.CmdPal.Core.ViewModels/Microsoft.CmdPal.Core.ViewModels.csproj +++ b/src/modules/cmdpal/Core/Microsoft.CmdPal.Core.ViewModels/Microsoft.CmdPal.Core.ViewModels.csproj @@ -1,5 +1,9 @@  + + + false + diff --git a/src/modules/cmdpal/extensionsdk/Microsoft.CommandPalette.Extensions.Toolkit/Microsoft.CommandPalette.Extensions.Toolkit.csproj b/src/modules/cmdpal/extensionsdk/Microsoft.CommandPalette.Extensions.Toolkit/Microsoft.CommandPalette.Extensions.Toolkit.csproj index bce6dc1016..0e72a8a51a 100644 --- a/src/modules/cmdpal/extensionsdk/Microsoft.CommandPalette.Extensions.Toolkit/Microsoft.CommandPalette.Extensions.Toolkit.csproj +++ b/src/modules/cmdpal/extensionsdk/Microsoft.CommandPalette.Extensions.Toolkit/Microsoft.CommandPalette.Extensions.Toolkit.csproj @@ -84,7 +84,13 @@ IL2081;$(WarningsNotAsErrors) - + + + + + + +