Skip to content

Crutkas/dev/fixcoroutine#48102

Open
crutkas wants to merge 6 commits into
mainfrom
crutkas/dev/fixcoroutine
Open

Crutkas/dev/fixcoroutine#48102
crutkas wants to merge 6 commits into
mainfrom
crutkas/dev/fixcoroutine

Conversation

@crutkas
Copy link
Copy Markdown
Member

@crutkas crutkas commented May 24, 2026

Summary of the Pull Request

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

Validation Steps Performed

crutkas added 3 commits May 23, 2026 21:37
- Add FMT_UNICODE=0 to logging.vcxproj, spdlog.props, UnitTests-CommonUtils (Microsoft codebase isn't /utf-8 by default)
- Rename spdlog's fmt.cpp -> bundled_fmtlib_format.cpp in logging.vcxproj (renamed upstream)
- Add SPDLOG_WCHAR_TO_UTF8_SUPPORT to logging.vcxproj so wstr_to_utf8buf is compiled
- Wrap Logger:: format strings with fmt::runtime() (fmt 11+ requires consteval format strings)
- Bump CalculatorEngineCommon to C++20 to drop dependency on <experimental/coroutine>
Comment thread src/Common.Dotnet.CsWinRT.props Fixed
Comment thread src/Common.Dotnet.CsWinRT.props Fixed
Comment thread src/Common.Dotnet.CsWinRT.props Fixed
Comment thread src/Common.Dotnet.CsWinRT.props Fixed
Comment thread src/Common.Dotnet.CsWinRT.props Fixed
Comment thread src/Common.Dotnet.CsWinRT.props Fixed
Comment thread src/Common.Dotnet.CsWinRT.props Fixed
Comment thread src/Common.Dotnet.CsWinRT.props Fixed
@github-actions

This comment has been minimized.

@crutkas
Copy link
Copy Markdown
Member Author

crutkas commented May 25, 2026

@copilot add cswinrt and rsp to .github/actions/spell-check/allow/code.txt in the # .NET section

Copy link
Copy Markdown
Contributor

Copilot AI commented May 25, 2026

@copilot add cswinrt and rsp to .github/actions/spell-check/allow/code.txt in the # .NET section

Addressed in e503ccf.

@crutkas
Copy link
Copy Markdown
Member Author

crutkas commented May 25, 2026

/azp run

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines could not run because the pipeline triggers exclude this branch/path.

@crutkas crutkas marked this pull request as ready for review May 25, 2026 01:48
@crutkas
Copy link
Copy Markdown
Member Author

crutkas commented May 25, 2026

/azp run

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 1 pipeline(s).

crutkas added 2 commits May 24, 2026 20:51
… CsWinRT projection race fallback

- Common.Dotnet.CsWinRT.props: opt out of CsWinRT 2.2 IIDOptimizer which exits with code -1 on .NET 10 (MSB3073). Add DeleteStaleCsWinRTRspAfterPrepare second-pass target so projects that override CsWinRTGeneratedFilesDir to OutDir (e.g. PowerToys.Settings, PowerAccent.Common.UnitTests) also have stale cswinrt.rsp deleted after the value is resolved.

- PowerRenameUI.vcxproj: add Microsoft.WindowsAppSDK.Foundation PackageReference and FixWinAppSDKAutoInitializer target (same pattern as runner.vcxproj) so WindowsAppRuntimeAutoInitializer.cpp is only added once, eliminating MSB8027 and LNK4042.
causes Microsoft.Windows.CsWinRT.IIDOptimizer.targets to not be imported at all.
-->
<PropertyGroup>
<CsWinRTIIDOptimizerOptOut>true</CsWinRTIIDOptimizerOptOut>
causes Microsoft.Windows.CsWinRT.IIDOptimizer.targets to not be imported at all.
-->
<PropertyGroup>
<CsWinRTIIDOptimizerOptOut>true</CsWinRTIIDOptimizerOptOut>
@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 (1)

RTIID

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 Rsp 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 crutkas/dev/fixcoroutine 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/26385461632/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.

@LegendaryBlair
Copy link
Copy Markdown
Contributor

LegendaryBlair commented May 25, 2026

👋 Hi @crutkas — heads-up that this PR overlaps with #48039 (an in-flight follow-up I have open doing deps/spdlog submodule → vcpkg with the MSVC 14.51 fix carried as a vcpkg overlay-port patch). Sharing in case it's useful for picking the right resolution path.

After reading your full diff, your PR is doing four largely independent things bundled together to "make new VS 2026 + .NET 10 machine build":

  1. CsWinRT build race fix (EnsureNativeWinMDProjectionInputsBuilt) — the original fixcoroutine driver per branch name. Clean improvement, no overlap with Migrate spdlog from submodule to vcpkg #48039.
  2. CsWinRT 2.2 IIDOptimizer warning opt-out on .NET 10. No overlap.
  3. VS 2026 build warning fixes (CalculatorEngineCommon, PowerRenameUI). No overlap.
  4. spdlog v1.8.5 → v1.17 + fmt 12only this overlaps with Migrate spdlog from submodule to vcpkg #48039.

For the spdlog piece specifically the two PRs take opposite strategies:

#48039 (mine) #48102 (yours)
spdlog source vcpkg manifest (overlay port pinned to 616866fc) submodule bumped to v1.17.0
fmt bug fix vcpkg patch in overlay port upstream fmt 12.x already has the fix + FMT_UNICODE=0
Version change none (Mike's offline guidance: "convert each submodule to vcpkg one at a time; don't also modify the version of the dependency. Once 0.100 is out, we can go to the latest version if you want") spdlog v1.8.5 → v1.17 in the same PR

Files where the spdlog parts of both PRs overlap (will conflict on whichever lands second): deps/spdlog, deps/spdlog.props, src/common/UnitTests-CommonUtils/UnitTests-CommonUtils.vcxproj, src/logging/logging.vcxproj. deps/spdlog-msvc-fix/include/spdlog-msvc-fix.h we both delete (no conflict there).

cc @zadjii-msft @DHowett — three viable orderings if you want to keep the spdlog decision on its own merits:

  1. Land this PR (Crutkas/dev/fixcoroutine #48102) wholesale; close Migrate spdlog from submodule to vcpkg #48039.
  2. Land Migrate spdlog from submodule to vcpkg #48039 first for spdlog; @crutkas rebases to drop the spdlog bits and lands the CsWinRT/IIDOptimizer/VS2026 fixes.
  3. Land the non-spdlog parts of this PR first (uncontroversial), defer the spdlog decision.

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>
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.

4 participants