Skip to content

[CI] Sign PowerAccent.Common.dll (new managed library from #47211)#48058

Open
LegendaryBlair wants to merge 1 commit into
mainfrom
fix/sign-poweraccent-common-dll
Open

[CI] Sign PowerAccent.Common.dll (new managed library from #47211)#48058
LegendaryBlair wants to merge 1 commit into
mainfrom
fix/sign-poweraccent-common-dll

Conversation

@LegendaryBlair
Copy link
Copy Markdown
Contributor

Summary

Fixes the stable signed release pipeline failure (Dart build 147621162) at the "Verify all binaries are signed and versioned" task:

Not Signed: + …\extractedMachineMsi\File\BaseApplicationsFiles_File_PowerAccent.Common.dll

Root cause

PR #47211 ("[Quick Accent] Move language data to PowerAccent.Common library, refactor") introduced the new managed library:

  • src/modules/poweraccent/PowerAccent.Common/PowerAccent.Common.csproj

PowerAccent.Common.dll is referenced by both PowerAccent.Core (ships in the installer root) and PowerToys.Settings (ships in WinUI3Apps; deduplicated against root by generateAllFileComponents.ps1). The DLL is harvested into the MSI's BaseApplicationsFiles component group, but the PR did not update .pipelines/ESRPSigning_core.json, so ESRP never signs it and versionAndSignCheck.ps1 correctly fails the build.

This is the same kind of omission that PR #48050 fixed for YamlDotNet.dll introduced by #40834 — a new managed library shipping in the MSI without a matching signing config entry.

Fix

One additive line in .pipelines/ESRPSigning_core.json, placing "PowerAccent.Common.dll" inside the existing alphabetized PowerAccent block (next to PowerAccent.Core.dll).

             "PowerAccent.Core.dll",
+            "PowerAccent.Common.dll",
             "PowerToys.PowerAccent.dll",

Validation

  • git diff shows exactly one additive line.
  • File still parses as valid JSON (ConvertFrom-Json round-trip OK).
  • Audited the full file list of PR [Quick Accent] Move language data to PowerAccent.Common library, refactor #47211: PowerAccent.Common.dll is the only new shippable assembly it added (the other new project, PowerAccent.Common.UnitTests, is a test project and is not included in the installer).
  • Dedup logic in installer/PowerToysSetupVNext/generateAllFileComponents.ps1 keeps only the root copy when WinUI3Apps and root copies are byte-identical, so a single root-level entry is sufficient.

Follow-up

After merge to main, cherry-pick / merge into stable to unblock the 0.100 release pipeline. This is the third (and hopefully final) PR in the 0.100 release-pipeline unblock sequence, after #48050 (sign YamlDotNet.dll) and #48054 (remove duplicate QuickAccent_SelectedLanguage_Greek_Polytonic resource).

PR #47211 (Quick Accent: Move language data to PowerAccent.Common library, refactor) introduced the new managed library src/modules/poweraccent/PowerAccent.Common/PowerAccent.Common.csproj. PowerAccent.Common.dll is referenced by PowerAccent.Core and PowerToys.Settings, and ships in the installer root (BaseApplicationsFiles), but was missing from .pipelines/ESRPSigning_core.json.

Stable release build 147621162 fails: Not Signed: BaseApplicationsFiles_File_PowerAccent.Common.dll. Adding the entry next to the other PowerAccent.* DLLs in the existing alphabetized PowerAccent block.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@LegendaryBlair LegendaryBlair requested a review from a team as a code owner May 22, 2026 17:44
@DHowett
Copy link
Copy Markdown
Member

DHowett commented May 22, 2026

Okay, I have seen a few of these come by today.

Can we just do one PR that fixes all of the signing problems? Do we have a systemic problem that prevents us from finding them all?

Copy link
Copy Markdown
Member

@DHowett DHowett left a comment

Choose a reason for hiding this comment

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

as noted.

@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-poweraccent-common-dll 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/26303122729/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.

@DHowett
Copy link
Copy Markdown
Member

DHowett commented May 22, 2026

Also, can somebody please explain why we keep getting new spellcheck violations on PRs that don't add new words? Who is merging PRs with failing spell check results?

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