Skip to content

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

Merged
LegendaryBlair merged 1 commit into
mainfrom
fix/sign-poweraccent-common-dll
May 25, 2026
Merged

[CI] Sign PowerAccent.Common.dll (new managed library from #47211)#48058
LegendaryBlair merged 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

DHowett commented May 22, 2026

Copy link
Copy Markdown
Member

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?

@DHowett DHowett left a comment

Copy link
Copy Markdown
Member

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

DHowett commented May 22, 2026

Copy link
Copy Markdown
Member

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?

@LegendaryBlair

LegendaryBlair commented May 25, 2026

Copy link
Copy Markdown
Contributor Author

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?

Combining two approaches:

  1. Systematically scan new commits containing vcxproj / csproj update since LKG.
  2. Running an official build as a safe guard.

Now this official build has passed.
https://microsoft.visualstudio.com/Dart/_build/results?buildId=147766933&view=results

One more thing:
These two issues came one by one, when 1st build reports the error - YamlDotNet.dll, the 2nd problematic PR has not merged.

@LegendaryBlair LegendaryBlair dismissed DHowett’s stale review May 25, 2026 03:42

Issue addressed.
Dismiss review to unblock build.

@LegendaryBlair LegendaryBlair merged commit 26108ff into main May 25, 2026
23 checks passed
@LegendaryBlair LegendaryBlair deleted the fix/sign-poweraccent-common-dll branch May 25, 2026 03:43
@LegendaryBlair

Copy link
Copy Markdown
Contributor Author

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?

I will have a separate PR to address this.

LegendaryBlair added a commit that referenced this pull request May 25, 2026
## Problem

Since #47119 (`Refresh check-spelling 0.0.26`, merged 2026-04-23)
refreshed the check-spelling tooling and rewrote
`.github/actions/spell-check/expect.txt` (938 lines / 633 deletions),
the check-spelling bot has been leaving a noisy advisory comment on
**every PR**:

> #### 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 …

The same ~150-word list is appended verbatim to every PR the bot looks
at (verified against #48058, #48102, #48104 — the list is identical).
These tokens are residual orphans in `expect.txt` from before the 0.0.26
refresh and no longer match anything in source.

## Fix

Removes exactly the 147 orphan tokens that the bot has consistently
flagged as `now absent` from `.github/actions/spell-check/expect.txt`.
The removed tokens are exclusively the ones the bot itself identified.

All uppercase Win32 / DirectWrite identifiers that are still used in
source (`DWRITE`, `LWIN`, `VCENTER`, `VREDRAW`, etc.) are **preserved**.

## Verification

- Diff is a single file, deletions only: `expect.txt` shrinks from 2343
→ 2196 lines.
- Each of the 4 uppercase Win32 tokens (`DWRITE` line 514, `LWIN` 1074,
`VCENTER` 2105, `VREDRAW` 2144 in the original) remains in the file.
- The check-spelling job on this PR should now post a clean report (no
`should be removed` block).

## Background — which PR introduced the drift

| PR | Date | What it changed |
|----|------|-----------------|
| **#47119** | 2026-04-23 | Refreshed check-spelling to 0.0.26; rewrote
`expect.txt` with 938 line-changes (633 deletions, 305 additions). The
duplicated lowercase/uppercase entries and many obsolete tokens
originate here. |

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <Copilot@users.noreply.github.com>
@LegendaryBlair LegendaryBlair added the Area-Build Issues pertaining to the build system, CI, infrastructure, meta label May 26, 2026
@LegendaryBlair LegendaryBlair added this to the PowerToys 0.100 milestone May 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

0.100 Area-Build Issues pertaining to the build system, CI, infrastructure, meta

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants