Skip to content

Refresh Native AOT lock files for the .NET 10.0.14 runtime - #108

Merged
zhuowcui merged 1 commit into
mainfrom
claude/refresh-locks-runtime-10.0.14
Oct 28, 2026
Merged

zhuowcui merged 1 commit into
mainfrom
claude/refresh-locks-runtime-10.0.14

Conversation

@Xueyang-Song

Copy link
Copy Markdown
Collaborator

Summary

Every PR into main fails the Full Native AOT → Native AOT contract and unit tests job during restore, before any test runs. For example, see #107:

error NU1004: The package reference Microsoft.DotNet.ILCompiler version has changed from [10.0.12, ) to [10.0.14, )

CI now installs SDK 10.0.403 (runtime 10.0.14), but the committed locks still pin the 10.0.12 Native AOT packs. This PR refreshes them.

What changed

  • JitHub.WinUI, MarkdownRenderer and MarkdownRenderer.Gfm packages.lock.json: these SDK-implicit packages move from 10.0.12 to 10.0.14, along with their content hashes:
    • Microsoft.DotNet.ILCompiler
    • runtime.win-{x86,x64,arm64}.Microsoft.DotNet.ILCompiler
    • Microsoft.NET.ILLink.Tasks
  • eng/native-aot-dependencies.json: the reviewed AOT dependency ledger gets the same 5 version bumps. CI runs Update-NativeAotDependencyLedger.ps1 -Verify, which fails if the ledger still lists 10.0.12.
  • No ordinary PackageReference version or hash changed. The other 10 locked projects (Web, tests, automation, sample) were force-evaluated and came out byte-identical. JitHub.Web still resolves Microsoft.AspNetCore.App.Internal.Assets 10.0.11 under SDK 10.0.403, and its locked restore passes.

How it was produced and verified (local SDK 10.0.403 / runtime 10.0.14, same as CI)

  • eng/Restore-NativeAot.ps1 -Architecture {x64,x86,arm64} -UpdateLocks, then --force-evaluate restore for every other locked project, then the ledger was regenerated.
  • Locked restore passes for all 13 locked projects. Restore-NativeAot.ps1 with Update-NativeAotDependencyLedger.ps1 -Verify passes for x64, x86 and arm64.
  • dotnet build JitHub.WinUI -c Release -p:Platform=x64 -p:PublishAot=true succeeds.

This will recur

global.json pins 10.0.202 with rollForward: latestFeature. Each time a new SDK patch ships, CI picks it up and resolves a newer runtime patch for the implicit AOT packs, while the lock files still pin the previous one. Every PR then breaks until someone refreshes the locks.

Option for the maintainer, not done in this PR: pin the SDK exactly, for example "version": "10.0.403", "rollForward": "disable" (or latestPatch within one feature band). Lock refreshes then happen on purpose, together with an SDK bump. The trade-off is that SDK security patches also need a deliberate bump.

Side note (pre-existing, not changed here)

A bare dotnet build JitHub.WinUI -c Release -p:Platform=x64, which the Product performance gate workflow runs, fails locked restore. That's because the referenced MarkdownRenderer/Gfm libraries are restored without PublishAot=true, so their graph lacks ILCompiler. This happens regardless of the runtime version. The Native AOT workflow avoids it by passing -p:PublishAot=true.

🤖 Generated with Claude Code

CI now resolves SDK 10.0.403 (runtime 10.0.14) through global.json's
latestFeature roll-forward, so the SDK-implicit Native AOT packages
(Microsoft.DotNet.ILCompiler, its win-x86/x64/arm64 runtime packs and
Microsoft.NET.ILLink.Tasks) moved from 10.0.12 to 10.0.14 and locked
restore failed with NU1004.

Regenerated with eng/Restore-NativeAot.ps1 -UpdateLocks for x64, x86 and
arm64, and rebuilt the reviewed dependency ledger. No ordinary
PackageReference versions or hashes changed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@zhuowcui
zhuowcui merged commit 252aaae into main Oct 28, 2026
11 of 13 checks passed
Xueyang-Song added a commit that referenced this pull request Oct 28, 2026
Brings in #108, which refreshed main's Native AOT lock files and the AOT
dependency ledger from 10.0.12 to 10.0.14. This branch had already
regenerated the same files for its new project layout at 10.0.14, so every
conflict resolves to this branch's side. Locked Native AOT restore (x64) and
Update-NativeAotDependencyLedger.ps1 -Verify pass on the merged tree.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Xueyang-Song added a commit that referenced this pull request Oct 28, 2026
Brings in #108, which refreshed main's Native AOT lock files and the AOT
dependency ledger from 10.0.12 to 10.0.14. This branch already pins 10.0.14
for its own dependency graph, so every conflict resolves to this branch's
side. Locked Native AOT restore (x64) and
Update-NativeAotDependencyLedger.ps1 -Verify pass on the merged tree.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.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.

2 participants