Skip to content

[CI] Sign YamlDotNet.dll (ShortcutGuide V2 dependency)#48050

Merged
LegendaryBlair merged 1 commit into
mainfrom
fix/sign-yamldotnet-shortcutguide-v2
May 22, 2026
Merged

[CI] Sign YamlDotNet.dll (ShortcutGuide V2 dependency)#48050
LegendaryBlair merged 1 commit into
mainfrom
fix/sign-yamldotnet-shortcutguide-v2

Conversation

@LegendaryBlair
Copy link
Copy Markdown
Contributor

Summary

Fixes the stable signed release pipeline failure (Dart build 147590319) at the "Verify all binaries are signed and versioned" task on both Build Release_x64 and Build Release_arm64:

Not Signed: + …\extractedMachineMsi\File\WinUI3ApplicationsFiles_File_YamlDotNet.dll

Root cause

PR #40834 (Shortcut Guide V2) added a YamlDotNet PackageReference to:

  • src/modules/ShortcutGuide/ShortcutGuide.Ui/ShortcutGuide.Ui.csproj
  • src/modules/ShortcutGuide/ShortcutGuide.IndexYmlGenerator/ShortcutGuide.IndexYmlGenerator.csproj

Both projects publish into WinUI3Apps\, so YamlDotNet.dll is harvested into the MSI by installer/PowerToysSetupVNext/generateAllFileComponents.ps1. The PR updated ESRPSigning_core.json for its own new binaries but missed this 3rd-party transitive dependency, so ESRP never signs it and .pipelines/versionAndSignCheck.ps1 correctly fails the build.

Fix

One additive line to .pipelines/ESRPSigning_core.json, placing WinUI3Apps\YamlDotNet.dll next to the other 3rd-party WinUI3Apps\ entries (Google.Apis.*, Google.GenAI.dll, ReverseMarkdown.dll, SharpCompress.dll, …).

Validation

  • git diff shows exactly one additive line.
  • File still parses as valid JSON (ConvertFrom-Json round-trip OK).
  • Both ShortcutGuide csprojs target $(Platform)\$(Configuration)\WinUI3Apps, so a single WinUI3Apps\YamlDotNet.dll entry covers all uses.

Follow-up

After merge to main, cherry-pick / merge into stable so build 147590319 can be re-queued and the 0.100 release pipeline can proceed.

Shortcut Guide V2 (#40834) added a YamlDotNet PackageReference to ShortcutGuide.Ui and ShortcutGuide.IndexYmlGenerator. The resulting WinUI3Apps\YamlDotNet.dll is harvested into the MSI but was missing from ESRPSigning_core.json, causing the 'Verify all binaries are signed and versioned' task on the Signed Release pipeline to fail with: Not Signed: WinUI3ApplicationsFiles_File_YamlDotNet.dll

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copy link
Copy Markdown
Contributor

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

Adds the missing ESRP signing entry for the YamlDotNet.dll dependency that gets published into WinUI3Apps\ (via ShortcutGuide V2 projects) and then harvested into the MSI, causing the release pipeline “Verify all binaries are signed and versioned” step to fail.

Changes:

  • Include WinUI3Apps\YamlDotNet.dll in .pipelines/ESRPSigning_core.json so ESRP signs it alongside other WinUI3Apps\ third-party dependencies.

@github-actions
Copy link
Copy Markdown

@check-spelling-bot Report

🔴 Please review

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

Unrecognized words (4)

DWRITE
LWIN
VCENTER
VREDRAW

These words are not needed and should be removed ABlocked AClient AColumn ACR ADate ADifferent AHybrid ALarger AModifier ANull AOklab APeriod ARandom ARemapped ASingle ASUS bck BNumber BOklab BVal BValue CAtl CCom CContext CDeclaration CElems Chunghwa CImage CMock CPower CSearch CSettings CSOT CStyle CTest CVal CVirtual DArchitectures DComposition defaulttonearest diu DSVG dwrite EAccess EFile EInvalid ENot EProvider ESettings eurochange FErase FInc FMask FNumber FRestore GNumber GValue Hann HHmmssfff Hostx HPhysical HSpeed HSync HVal HValue HWP IPREVIEW ITHUMBNAIL IVO kdc LExit LPCFHOOKPROC LPrivate LReader LUMA LVal lwin MMdd MRT MSHCTX MSHLFLAGS Nanjing newcolor NLog oldcolor outsourced PBlob PElems PHL pinboard PStr PToy QDS RAlt RAquadrant rectp RKey RNumber scanled suntimes Tianma UBreak UCallback UError UFlags UHash UMax UMin unsubscribes UOffset UType vcenter VDesktop vredraw VSpeed VSync WBounds WClass workerw WReserved XAxis XButton XDeployment XDimension XDocument XElement XFile XIncrement XLoc XNamespace XPels XPixel XPos XResource XSpeed XStr XTimer YAxis YDimension YIncrement YPels YPos YResolution YSpeed YStr YTimer

To accept these unrecognized words as correct and remove the previously acknowledged and now absent words, you could run the following commands

... in a clone of the git@github.com:microsoft/PowerToys.git repository
on the fix/sign-yamldotnet-shortcutguide-v2 branch (ℹ️ how do I use this?):

curl -s -S -L 'https://raw.githubusercontent.com/check-spelling/check-spelling/cfb6f7e75bbfc89c71eaa30366d0c166f1bd9c8c/apply.pl' |
perl - 'https://github.com/microsoft/PowerToys/actions/runs/26275415129/attempts/1' &&
git commit -m 'Update check-spelling metadata'

OR

To have the bot accept them for you, comment in the PR quoting the following line:
@check-spelling-bot apply updates.

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.

niels9001 pushed a commit that referenced this pull request May 22, 2026
…ytonic resource (#48054)

## Summary

Fixes the **"Build PowerToys main project"** failure on every PR/CI
build off current `main` (e.g. Dart build
[`147597426`](https://microsoft.visualstudio.com/Dart/_build/results?buildId=147597426)):

```
WINAPPSDKGENERATEPROJECTPRIFILE: Error PRI175: Processing Resources failed with error: Duplicate Entry.
WINAPPSDKGENERATEPROJECTPRIFILE: Error PRI277: Conflicting values for resource
                                  'Resources/QuickAccent_SelectedLanguage_Greek_Polytonic'
```

## Root cause

`src/settings-ui/Settings.UI/Strings/en-us/Resources.resw` contained two
`<data name="QuickAccent_SelectedLanguage_Greek_Polytonic">` entries:

- Line 3597 — original, added by #47021 (*"[PowerAccent] adding greek
polytonic"*), placed in the alphabetized QuickAccent block.
- Line 6175 — duplicate, appended at the file tail by #47211 (*"[Quick
Accent] Move language data to PowerAccent.Common library, refactor"*).

The two entries are byte-identical (same value `Greek Polytonic`, same
`xml:space="preserve"`). The WinAppSDK PRI generator (`MakePri`) rejects
duplicates, so every build off current `main` fails before reaching the
compile step.

## Fix

Remove the tail duplicate (3-line block right before `</root>`). Keeps
the original entry in its alphabetized location.

## Validation

- `git diff` shows exactly 3 deleted lines.
- `[xml](Get-Content … -Raw)` round-trip succeeds — file is still
well-formed XML.
- `Select-String` count of
`QuickAccent_SelectedLanguage_Greek_Polytonic` in the file is now **1**
(was 2).
- Only `en-us` has this key (other localized `.resw` files are populated
later via Touchdown), so no other file needs touching.

## Note

Discovered while investigating a CI failure unrelated to my other PR
#48050 (signing of `WinUI3Apps\YamlDotNet.dll`). Both fixes are needed
for the 0.100 release pipeline; this PR unblocks PR builds off `main`,
and #48050 unblocks the signed release pipeline once both are merged to
`main` and the next `main → stable` sync happens.

Co-authored-by: Copilot <Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@LegendaryBlair
Copy link
Copy Markdown
Contributor Author

/azp run

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 1 pipeline(s).

@LegendaryBlair LegendaryBlair enabled auto-merge (squash) May 22, 2026 15:15
@LegendaryBlair LegendaryBlair merged commit 1d0917d into main May 22, 2026
20 of 23 checks passed
@LegendaryBlair LegendaryBlair deleted the fix/sign-yamldotnet-shortcutguide-v2 branch May 22, 2026 15:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants