Skip to content

Conversation

shuaiyuanxx
Copy link
Contributor

@shuaiyuanxx shuaiyuanxx commented Sep 10, 2025

Summary of the Pull Request

This pull request primarily updates project dependencies to newer versions, especially for the Windows App SDK and related packages, and improves the build pipeline's logic for selecting MSIX packages. These changes ensure compatibility with the latest SDK features and provide more robust package selection during builds.

PR Checklist

  • Closes: #xxx
  • Communication: I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected
  • Tests: Added/updated and all pass
  • Localization: All end-user-facing strings can be localized
  • Dev docs: Added/updated
  • New binaries: Added on the required places
  • Documentation updated: If checked, please file a pull request on our docs repo and link it here: #xxx

Detailed Description of the Pull Request / Additional comments

Dependency and SDK upgrades:

  • Upgraded Microsoft.WindowsAppSDK and related packages (Base, Foundation, WinUI, Runtime, DWrite, InteractiveExperiences, Widgets, AI) to version 1.8.x in all relevant project files, including Directory.Packages.props, .vcxproj, .csproj, and packages.config files. This also involved updating import paths and error checks for the new package structure. [1] [2] [3] [4] [5] [6] [7] [8]
  • Updated Microsoft.Web.WebView2 to version 1.0.3179.45 and Microsoft.Windows.SDK.BuildTools to 10.0.26100.4948 in Directory.Packages.props. [1] [2]

Build and packaging improvements:

  • Enhanced the MSIX package selection logic in the build pipeline (job-build-project.yml) to prioritize platform-specific packages (x64/arm64) and provide clearer logging and error handling when no packages are found.
  • Modified Microsoft.CmdPal.UI.csproj to disable Appx bundling and set a specific test directory for Appx packages during CI builds, improving build output organization.

These updates help ensure the project stays current with the latest SDKs and improves reliability and transparency in the build process.

Validation Steps Performed

Signed-off-by: Shawn Yuan <[email protected]>
Signed-off-by: Shawn Yuan <[email protected]>
Signed-off-by: Shawn Yuan <[email protected]>
Signed-off-by: Shawn Yuan <[email protected]>
Signed-off-by: Shawn Yuan <[email protected]>
Signed-off-by: Shawn Yuan <[email protected]>
Signed-off-by: Shawn Yuan <[email protected]>
Signed-off-by: Shawn Yuan <[email protected]>
Signed-off-by: Shawn Yuan <[email protected]>
Signed-off-by: Shawn Yuan <[email protected]>
@shuaiyuanxx
Copy link
Contributor Author

/azp run

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@shuaiyuanxx
Copy link
Contributor Author

/azp run

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

}

if ($Packages.Count -gt 0) {
# Priority: Look for platform-specific MSIX (x64/arm64) first, then fallback to any

Check failure

Code scanning / check-spelling

Forbidden Pattern Error

fallback matches a line_forbidden.patterns entry: "\\bfallback(?= to)\\b". (forbidden-pattern)

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

@lei9444
Copy link
Contributor

lei9444 commented Sep 12, 2025

/azp run

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

This comment has been minimized.

@shuaiyuanxx shuaiyuanxx changed the title Shawn/test new win app sdk Upgrade WinAppSDK to 1.8 official release Sep 12, 2025
@shuaiyuanxx shuaiyuanxx requested a review from Copilot September 12, 2025 07:20
Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR upgrades the Windows App SDK from version 1.7 to the official 1.8 release across the PowerToys codebase. The upgrade introduces modular WindowsAppSDK packages and updates related dependencies.

Key changes:

  • Upgrades Microsoft.WindowsAppSDK from 1.7.250513003 to 1.8.250907003
  • Introduces granular WindowsAppSDK component packages (Base, Foundation, WinUI, Runtime, DWrite, InteractiveExperiences, Widgets, AI)
  • Updates WebView2 and Windows SDK Build Tools to newer versions
  • Enhances CI pipeline to handle multiple MSIX packages

Reviewed Changes

Copilot reviewed 12 out of 12 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/modules/powerrename/PowerRenameUILib/packages.config Updates WindowsAppSDK to 1.8 and adds new component packages
src/modules/powerrename/PowerRenameUILib/PowerRenameUI.vcxproj Updates project imports and error checking for new WindowsAppSDK structure
src/modules/cmdpal/extensionsdk/Microsoft.CommandPalette.Extensions/packages.config Adds new WindowsAppSDK packages and dependencies
src/modules/cmdpal/extensionsdk/Microsoft.CommandPalette.Extensions/Microsoft.CommandPalette.Extensions.vcxproj Updates WasdkNuget path reference
src/modules/cmdpal/Microsoft.Terminal.UI/packages.config Adds WindowsAppSDK component packages
src/modules/cmdpal/Microsoft.Terminal.UI/Microsoft.Terminal.UI.vcxproj Updates project with new WindowsAppSDK imports and error checking
src/modules/cmdpal/Microsoft.CmdPal.UI/Microsoft.CmdPal.UI.csproj Adds CI build configuration for MSIX packaging
src/modules/cmdpal/ExtensionTemplate/TemplateCmdPalExtension/Directory.Packages.props Updates WindowsAppSDK version reference
src/modules/MeasureTool/MeasureToolCore/packages.config Updates WindowsAppSDK to 1.8 and adds component packages
src/modules/MeasureTool/MeasureToolCore/PowerToys.MeasureToolCore.vcxproj Updates project imports and error checking for WindowsAppSDK 1.8
Directory.Packages.props Updates global package versions for WebView2, Windows SDK Build Tools, and WindowsAppSDK
.pipelines/v2/templates/job-build-project.yml Enhances CmdPal MSIX package detection logic for CI builds

Comment on lines +10 to +12



Copy link
Preview

Copilot AI Sep 12, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] Remove the unnecessary empty lines between imports to maintain consistency with the rest of the project file formatting.

Copilot uses AI. Check for mistakes.

<Error Condition="!Exists('..\..\..\..\packages\Microsoft.WindowsAppSDK.Runtime.1.8.250907003\build\native\Microsoft.WindowsAppSDK.Runtime.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.WindowsAppSDK.Runtime.1.8.250907003\build\native\Microsoft.WindowsAppSDK.Runtime.props'))" />
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.WindowsAppSDK.Runtime.1.8.250907003\build\native\Microsoft.WindowsAppSDK.Runtime.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.WindowsAppSDK.Runtime.1.8.250907003\build\native\Microsoft.WindowsAppSDK.Runtime.targets'))" />
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.WindowsAppSDK.DWrite.1.8.25090401\build\Microsoft.WindowsAppSDK.DWrite.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.WindowsAppSDK.DWrite.1.8.25090401\build\Microsoft.WindowsAppSDK.DWrite.props'))" />
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.WindowsAppSDK.DWrite.1.8.25090401\build\Microsoft.WindowsAppSDK.DWrite.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.WindowsAppSDK.DWrite.1.8.25090401\build\Microsoft.WindowsAppSDK.DWrite.targets'))" />
Copy link
Preview

Copilot AI Sep 12, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] Remove the trailing whitespace at the end of this line to maintain code cleanliness.

Suggested change
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.WindowsAppSDK.DWrite.1.8.25090401\build\Microsoft.WindowsAppSDK.DWrite.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.WindowsAppSDK.DWrite.1.8.25090401\build\Microsoft.WindowsAppSDK.DWrite.targets'))" />
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.WindowsAppSDK.DWrite.1.8.25090401\build\Microsoft.WindowsAppSDK.DWrite.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.WindowsAppSDK.DWrite.1.8.25090401\build\Microsoft.WindowsAppSDK.DWrite.targets'))" />

Copilot uses AI. Check for mistakes.

This comment has been minimized.

This comment has been minimized.

@lei9444
Copy link
Contributor

lei9444 commented Sep 13, 2025

/azp run

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

Copy link

@check-spelling-bot Report

🔴 Please review

See the 📂 files view, the 📜action log, or 📝 job summary for details.

❌ Errors, Warnings, and Notices Count
⚠️ binary-file 4
ℹ️ candidate-pattern 2
❌ forbidden-pattern 1
⚠️ non-alpha-in-dictionary 1

See ❌ Event descriptions for more information.

These words are not needed and should be removed advancedpasteui advancedpasteuishortcut allpc fff hotkeylockmachine hotkeyreconnect hotkeyswitch hotkeytoggleeasymouse imagetotext imagetotextshortcut LOCKMACHINE measuretool mousepointercrosshairs pasteashtmlfile pasteashtmlfileshortcut pasteasjson pasteasjsonshortcut pasteasmarkdown pasteasmarkdownshortcut pasteasplaintext pasteasplaintextshortcut pasteaspngfile pasteaspngfileshortcut pasteastxtfile pasteastxtfileshortcut powerocr projitems reparenthotkey thumbnailhotkey TOGGLEEASYMOUSE transcodetomp Tru

Some files were automatically ignored 🙈

These sample patterns would exclude them:

^\Qsrc/modules/peek/Peek.UITests/TestAssets/4.qoi\E$
^src/modules/powerrename/PowerRenameUITest/testItems/

You should consider adding them to:

.github/actions/spell-check/excludes.txt

File matching is via Perl regular expressions.

To check these files, more of their words need to be in the dictionary than not. You can use patterns.txt to exclude portions, add items to the dictionary (e.g. by adding them to allow.txt), or fix typos.

To update file exclusions and remove the previously acknowledged and now absent words, you could run the following commands

... in a clone of the [email protected]:microsoft/PowerToys.git repository
on the shawn/testNewWinAppSDK branch (ℹ️ how do I use this?):

curl -s -S -L 'https://raw.githubusercontent.com/check-spelling/check-spelling/c635c2f3f714eec2fcf27b643a1919b9a811ef2e/apply.pl' |
perl - 'https://github.com/microsoft/PowerToys/actions/runs/17708338367/attempts/1' &&
git commit -m 'Update check-spelling metadata'
Forbidden patterns 🙅 (1)

In order to address this, you could change the content to not match the forbidden patterns (comments before forbidden patterns may help explain why they're forbidden), add patterns for acceptable instances, or adjust the forbidden patterns themselves.

These forbidden patterns matched content:

Should be fall back

\bfallback(?= to)\b
Pattern suggestions ✂️ (2)

You could add these patterns to .github/actions/spell-check/patterns.txt:

# Automatically suggested patterns

# hit-count: 1 file-count: 1
# marker to ignore all code on line
^.*/\* #no-spell-check-line \*/.*$

# hit-count: 1 file-count: 1
# marker to ignore all code on line
^.*\bno-spell-check(?:-line|)(?:\s.*|)$

Alternatively, if a pattern suggestion doesn't make sense for this project, add a #
to the beginning of the line in the candidates file with the pattern to stop suggesting it.

If the flagged items are 🤯 false positives

If items relate to a ...

  • binary file (or some other file you wouldn't want to check at all).

    Please add a file path to the excludes.txt file matching the containing file.

    File paths are Perl 5 Regular Expressions - you can test yours before committing to verify it will match your files.

    ^ refers to the file's path from the root of the repository, so ^README\.md$ would exclude README.md (on whichever branch you're using).

  • well-formed pattern.

    If you can write a pattern that would match it,
    try adding it to the patterns.txt file.

    Patterns are Perl 5 Regular Expressions - you can test yours before committing to verify it will match your lines.

    Note that patterns can't match multiline strings.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants