Skip to content

[net11.0] Update dependencies from dotnet/android, dotnet/dotnet, dotnet/macios - #35364

Merged
PureWeen merged 127 commits into
net11.0from
darc-net11.0-ae17e370-1ba8-4947-9586-8bfb3adb6d5b
Jun 24, 2026
Merged

[net11.0] Update dependencies from dotnet/android, dotnet/dotnet, dotnet/macios#35364
PureWeen merged 127 commits into
net11.0from
darc-net11.0-ae17e370-1ba8-4947-9586-8bfb3adb6d5b

Conversation

@dotnet-maestro

@dotnet-maestro dotnet-maestro Bot commented May 9, 2026

Copy link
Copy Markdown
Contributor

This pull request updates the following dependencies

Coherency Updates

The following updates ensure that dependencies with a CoherentParentDependency
attribute were produced in a build used as input to the parent dependency's build.
See Dependency Description Format

  • Coherency Updates:
    • Microsoft.MacCatalyst.Sdk.net10.0_26.5: from 26.5.10295 to 26.5.10298 (parent: Microsoft.MacCatalyst.Sdk.net11.0_26.5)
    • Microsoft.macOS.Sdk.net10.0_26.5: from 26.5.10295 to 26.5.10298 (parent: Microsoft.macOS.Sdk.net11.0_26.5)
    • Microsoft.iOS.Sdk.net10.0_26.5: from 26.5.10295 to 26.5.10298 (parent: Microsoft.iOS.Sdk.net11.0_26.5)
    • Microsoft.tvOS.Sdk.net10.0_26.5: from 26.5.10295 to 26.5.10298 (parent: Microsoft.tvOS.Sdk.net11.0_26.5)

From https://github.com/dotnet/macios

From https://github.com/dotnet/android

From https://github.com/dotnet/dotnet

  • Dependency Updates:
    • From 11.0.0-preview.5.26256.105 to 11.0.0-preview.6.26323.106
      • Microsoft.AspNetCore.Authentication.Facebook
      • Microsoft.AspNetCore.Authentication.Google
      • Microsoft.AspNetCore.Authentication.MicrosoftAccount
      • Microsoft.AspNetCore.Authorization
      • Microsoft.AspNetCore.Components
      • Microsoft.AspNetCore.Components.Analyzers
      • Microsoft.AspNetCore.Components.Forms
      • Microsoft.AspNetCore.Components.Web
      • Microsoft.AspNetCore.Components.WebAssembly
      • Microsoft.AspNetCore.Components.WebAssembly.Server
      • Microsoft.AspNetCore.Components.WebView
      • Microsoft.AspNetCore.Metadata
      • Microsoft.Extensions.Configuration
      • Microsoft.Extensions.Configuration.Abstractions
      • Microsoft.Extensions.Configuration.Json
      • Microsoft.Extensions.DependencyInjection
      • Microsoft.Extensions.DependencyInjection.Abstractions
      • Microsoft.Extensions.FileProviders.Abstractions
      • Microsoft.Extensions.Hosting.Abstractions
      • Microsoft.Extensions.Logging
      • Microsoft.Extensions.Logging.Abstractions
      • Microsoft.Extensions.Logging.Console
      • Microsoft.Extensions.Logging.Debug
      • Microsoft.Extensions.Primitives
      • Microsoft.JSInterop
      • Microsoft.NETCore.App.Ref
    • From 11.0.0-beta.26256.105 to 11.0.0-beta.26323.106
      • Microsoft.DotNet.Arcade.Sdk
      • Microsoft.DotNet.Build.Tasks.Feed
      • Microsoft.DotNet.Build.Tasks.Installers
      • Microsoft.DotNet.Build.Tasks.Workloads
      • Microsoft.DotNet.Helix.Sdk
      • Microsoft.DotNet.RemoteExecutor
      • Microsoft.DotNet.SharedFramework.Sdk
      • Microsoft.DotNet.XUnitExtensions
    • From 11.0.100-preview.5.26256.105 to 11.0.100-preview.6.26323.106
      • Microsoft.NET.Sdk

…508.2

On relative base path root
Microsoft.iOS.Sdk.net11.0_26.4 , Microsoft.MacCatalyst.Sdk.net11.0_26.4 , Microsoft.macOS.Sdk.net11.0_26.4 , Microsoft.tvOS.Sdk.net11.0_26.4 From Version 26.4.11555-net11-p5 -> To Version 26.4.11556-net11-p5

Dependency coherency updates
On relative base path root
Microsoft.MacCatalyst.Sdk.net10.0_26.4 From Version 26.4.10260 -> To Version 26.4.10261 (parent: Microsoft.MacCatalyst.Sdk.net11.0_26.4)

Microsoft.macOS.Sdk.net10.0_26.4 From Version 26.4.10260 -> To Version 26.4.10261 (parent: Microsoft.macOS.Sdk.net11.0_26.4)

Microsoft.iOS.Sdk.net10.0_26.4 From Version 26.4.10260 -> To Version 26.4.10261 (parent: Microsoft.iOS.Sdk.net11.0_26.4)

Microsoft.tvOS.Sdk.net10.0_26.4 From Version 26.4.10260 -> To Version 26.4.10261 (parent: Microsoft.tvOS.Sdk.net11.0_26.4)
@github-actions

github-actions Bot commented May 9, 2026

Copy link
Copy Markdown
Contributor

🚀 Dogfood this PR with:

⚠️ WARNING: Do not do this without first carefully reviewing the code of this PR to satisfy yourself it is safe.

curl -fsSL https://raw.githubusercontent.com/dotnet/maui/main/eng/scripts/get-maui-pr.sh | bash -s -- 35364

Or

  • Run remotely in PowerShell:
iex "& { $(irm https://raw.githubusercontent.com/dotnet/maui/main/eng/scripts/get-maui-pr.ps1) } 35364"

….0-preview.4.26259.1+azdo.14053913

On relative base path root
Microsoft.Android.Sdk.Windows From Version 36.99.0-ci.main.186 -> To Version 36.99.0-ci.main.189
@dotnet-maestro dotnet-maestro Bot changed the title [net11.0] Update dependencies from dotnet/macios [net11.0] Update dependencies from dotnet/android, dotnet/macios May 9, 2026
…508.7

On relative base path root
Microsoft.AspNetCore.Authentication.Facebook , Microsoft.AspNetCore.Authentication.Google , Microsoft.AspNetCore.Authentication.MicrosoftAccount , Microsoft.AspNetCore.Authorization , Microsoft.AspNetCore.Components , Microsoft.AspNetCore.Components.Analyzers , Microsoft.AspNetCore.Components.Forms , Microsoft.AspNetCore.Components.Web , Microsoft.AspNetCore.Components.WebAssembly , Microsoft.AspNetCore.Components.WebAssembly.Server , Microsoft.AspNetCore.Components.WebView , Microsoft.AspNetCore.Metadata , Microsoft.Extensions.Configuration , Microsoft.Extensions.Configuration.Abstractions , Microsoft.Extensions.Configuration.Json , Microsoft.Extensions.DependencyInjection , Microsoft.Extensions.DependencyInjection.Abstractions , Microsoft.Extensions.FileProviders.Abstractions , Microsoft.Extensions.Hosting.Abstractions , Microsoft.Extensions.Logging , Microsoft.Extensions.Logging.Abstractions , Microsoft.Extensions.Logging.Console , Microsoft.Extensions.Logging.Debug , Microsoft.Extensions.Primitives , Microsoft.JSInterop , Microsoft.NETCore.App.Ref From Version 11.0.0-preview.5.26256.105 -> To Version 11.0.0-preview.5.26258.107
Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Workloads , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.SharedFramework.Sdk , Microsoft.DotNet.XUnitExtensions From Version 11.0.0-beta.26256.105 -> To Version 11.0.0-beta.26258.107
Microsoft.NET.Sdk From Version 11.0.100-preview.5.26256.105 -> To Version 11.0.100-preview.5.26258.107
@dotnet-maestro dotnet-maestro Bot changed the title [net11.0] Update dependencies from dotnet/android, dotnet/macios [net11.0] Update dependencies from dotnet/android, dotnet/dotnet, dotnet/macios May 9, 2026
…from dotnet/android, dotnet/dotnet, dotnet/macios
@MauiBot

MauiBot commented May 9, 2026

Copy link
Copy Markdown
Collaborator

⚠️ Merge Conflict Detected — This PR has merge conflicts with its target branch. Please rebase onto the target branch and resolve the conflicts.

2 similar comments
@MauiBot

MauiBot commented May 9, 2026

Copy link
Copy Markdown
Collaborator

⚠️ Merge Conflict Detected — This PR has merge conflicts with its target branch. Please rebase onto the target branch and resolve the conflicts.

@MauiBot

MauiBot commented May 9, 2026

Copy link
Copy Markdown
Collaborator

⚠️ Merge Conflict Detected — This PR has merge conflicts with its target branch. Please rebase onto the target branch and resolve the conflicts.

@MauiBot MauiBot added s/agent-review-incomplete s/agent-reviewed PR was reviewed by AI agent workflow (full 4-phase review) labels May 9, 2026
dotnet-maestro Bot and others added 2 commits May 10, 2026 02:01
…508.10

On relative base path root
Microsoft.AspNetCore.Authentication.Facebook , Microsoft.AspNetCore.Authentication.Google , Microsoft.AspNetCore.Authentication.MicrosoftAccount , Microsoft.AspNetCore.Authorization , Microsoft.AspNetCore.Components , Microsoft.AspNetCore.Components.Analyzers , Microsoft.AspNetCore.Components.Forms , Microsoft.AspNetCore.Components.Web , Microsoft.AspNetCore.Components.WebAssembly , Microsoft.AspNetCore.Components.WebAssembly.Server , Microsoft.AspNetCore.Components.WebView , Microsoft.AspNetCore.Metadata , Microsoft.Extensions.Configuration , Microsoft.Extensions.Configuration.Abstractions , Microsoft.Extensions.Configuration.Json , Microsoft.Extensions.DependencyInjection , Microsoft.Extensions.DependencyInjection.Abstractions , Microsoft.Extensions.FileProviders.Abstractions , Microsoft.Extensions.Hosting.Abstractions , Microsoft.Extensions.Logging , Microsoft.Extensions.Logging.Abstractions , Microsoft.Extensions.Logging.Console , Microsoft.Extensions.Logging.Debug , Microsoft.Extensions.Primitives , Microsoft.JSInterop , Microsoft.NETCore.App.Ref From Version 11.0.0-preview.5.26256.105 -> To Version 11.0.0-preview.5.26258.110
Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Workloads , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.SharedFramework.Sdk , Microsoft.DotNet.XUnitExtensions From Version 11.0.0-beta.26256.105 -> To Version 11.0.0-beta.26258.110
Microsoft.NET.Sdk From Version 11.0.100-preview.5.26256.105 -> To Version 11.0.100-preview.5.26258.110
…from dotnet/android, dotnet/dotnet, dotnet/macios
dotnet-maestro Bot and others added 3 commits May 12, 2026 02:03
…511.1

On relative base path root
Microsoft.AspNetCore.Authentication.Facebook , Microsoft.AspNetCore.Authentication.Google , Microsoft.AspNetCore.Authentication.MicrosoftAccount , Microsoft.AspNetCore.Authorization , Microsoft.AspNetCore.Components , Microsoft.AspNetCore.Components.Analyzers , Microsoft.AspNetCore.Components.Forms , Microsoft.AspNetCore.Components.Web , Microsoft.AspNetCore.Components.WebAssembly , Microsoft.AspNetCore.Components.WebAssembly.Server , Microsoft.AspNetCore.Components.WebView , Microsoft.AspNetCore.Metadata , Microsoft.Extensions.Configuration , Microsoft.Extensions.Configuration.Abstractions , Microsoft.Extensions.Configuration.Json , Microsoft.Extensions.DependencyInjection , Microsoft.Extensions.DependencyInjection.Abstractions , Microsoft.Extensions.FileProviders.Abstractions , Microsoft.Extensions.Hosting.Abstractions , Microsoft.Extensions.Logging , Microsoft.Extensions.Logging.Abstractions , Microsoft.Extensions.Logging.Console , Microsoft.Extensions.Logging.Debug , Microsoft.Extensions.Primitives , Microsoft.JSInterop , Microsoft.NETCore.App.Ref From Version 11.0.0-preview.5.26256.105 -> To Version 11.0.0-preview.5.26261.101
Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Workloads , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.SharedFramework.Sdk , Microsoft.DotNet.XUnitExtensions From Version 11.0.0-beta.26256.105 -> To Version 11.0.0-beta.26261.101
Microsoft.NET.Sdk From Version 11.0.100-preview.5.26256.105 -> To Version 11.0.100-preview.5.26261.101
….0-preview.4.26261.1+azdo.14069473

On relative base path root
Microsoft.Android.Sdk.Windows From Version 36.99.0-ci.main.186 -> To Version 36.99.0-ci.main.197
…from dotnet/android, dotnet/dotnet, dotnet/macios
….0-preview.4.26262.1+azdo.14072861

On relative base path root
Microsoft.Android.Sdk.Windows From Version 36.99.0-ci.main.186 -> To Version 36.99.0-ci.main.198
dotnet-maestro Bot and others added 3 commits May 14, 2026 02:02
…513.12

On relative base path root
Microsoft.AspNetCore.Authentication.Facebook , Microsoft.AspNetCore.Authentication.Google , Microsoft.AspNetCore.Authentication.MicrosoftAccount , Microsoft.AspNetCore.Authorization , Microsoft.AspNetCore.Components , Microsoft.AspNetCore.Components.Analyzers , Microsoft.AspNetCore.Components.Forms , Microsoft.AspNetCore.Components.Web , Microsoft.AspNetCore.Components.WebAssembly , Microsoft.AspNetCore.Components.WebAssembly.Server , Microsoft.AspNetCore.Components.WebView , Microsoft.AspNetCore.Metadata , Microsoft.Extensions.Configuration , Microsoft.Extensions.Configuration.Abstractions , Microsoft.Extensions.Configuration.Json , Microsoft.Extensions.DependencyInjection , Microsoft.Extensions.DependencyInjection.Abstractions , Microsoft.Extensions.FileProviders.Abstractions , Microsoft.Extensions.Hosting.Abstractions , Microsoft.Extensions.Logging , Microsoft.Extensions.Logging.Abstractions , Microsoft.Extensions.Logging.Console , Microsoft.Extensions.Logging.Debug , Microsoft.Extensions.Primitives , Microsoft.JSInterop , Microsoft.NETCore.App.Ref From Version 11.0.0-preview.5.26256.105 -> To Version 11.0.0-preview.5.26263.112
Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Workloads , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.SharedFramework.Sdk , Microsoft.DotNet.XUnitExtensions From Version 11.0.0-beta.26256.105 -> To Version 11.0.0-beta.26263.112
Microsoft.NET.Sdk From Version 11.0.100-preview.5.26256.105 -> To Version 11.0.100-preview.5.26263.112
….0-preview.4.26263.1+azdo.14091023

On relative base path root
Microsoft.Android.Sdk.Windows From Version 36.99.0-ci.main.186 -> To Version 36.99.0-ci.main.211
…from dotnet/android, dotnet/dotnet, dotnet/macios
dotnet-maestro Bot added 2 commits May 15, 2026 02:02
…514.5

On relative base path root
Microsoft.AspNetCore.Authentication.Facebook , Microsoft.AspNetCore.Authentication.Google , Microsoft.AspNetCore.Authentication.MicrosoftAccount , Microsoft.AspNetCore.Authorization , Microsoft.AspNetCore.Components , Microsoft.AspNetCore.Components.Analyzers , Microsoft.AspNetCore.Components.Forms , Microsoft.AspNetCore.Components.Web , Microsoft.AspNetCore.Components.WebAssembly , Microsoft.AspNetCore.Components.WebAssembly.Server , Microsoft.AspNetCore.Components.WebView , Microsoft.AspNetCore.Metadata , Microsoft.Extensions.Configuration , Microsoft.Extensions.Configuration.Abstractions , Microsoft.Extensions.Configuration.Json , Microsoft.Extensions.DependencyInjection , Microsoft.Extensions.DependencyInjection.Abstractions , Microsoft.Extensions.FileProviders.Abstractions , Microsoft.Extensions.Hosting.Abstractions , Microsoft.Extensions.Logging , Microsoft.Extensions.Logging.Abstractions , Microsoft.Extensions.Logging.Console , Microsoft.Extensions.Logging.Debug , Microsoft.Extensions.Primitives , Microsoft.JSInterop , Microsoft.NETCore.App.Ref From Version 11.0.0-preview.5.26256.105 -> To Version 11.0.0-preview.5.26264.105
Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Workloads , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.SharedFramework.Sdk , Microsoft.DotNet.XUnitExtensions From Version 11.0.0-beta.26256.105 -> To Version 11.0.0-beta.26264.105
Microsoft.NET.Sdk From Version 11.0.100-preview.5.26256.105 -> To Version 11.0.100-preview.5.26264.105
….0-preview.4.26264.1+azdo.14101833

On relative base path root
Microsoft.Android.Sdk.Windows From Version 36.99.0-ci.main.186 -> To Version 36.99.0-ci.main.215
…3adb6d5b

Bring the dependency-update branch current with net11.0.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@PureWeen

Copy link
Copy Markdown
Member

/azp run maui-pr-uitests, maui-pr-devicetests

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 2 pipeline(s).

PureWeen added a commit that referenced this pull request Jun 23, 2026
Shift the job-level baseline diff out of the LLM/manual layer into the
gatherer so a leg that is red on the PR but green on the same leg of the
most recent base build is COMPUTED, not judged. This is exactly the
comparison that catches build-job breaks (crossgen/R2R, NativeAOT, linker)
which carry no test name and so can never be caught by the test-level diff
-- the class of break that previously slipped through on PR #35364.

Gatherer (Gather-TestFailureContext.ps1):
- Add Get-TimelineRecordResultMap: fetch one build's timeline and build a
  normalized leg-name -> {hasFailed,hasSucceeded} map.
- Fetch the most-recent-completed base build's leg map for every PR build
  (including when base fully succeeded -- where regressions live), cached
  per base build id.
- Stamp per-failure legBaselineResult / legRegressedVsBase /
  legAlsoFailsOnBase by matching each occurrence's (buildId, recordName)
  to the base leg map by exact normalized name (absent => indeterminate,
  never a false regression). Device-test legs are surfaced but never set
  legRegressedVsBase (XHarness exit-0 blind spot).
- Add a per-failure deterministicAttribution prior (regressed-vs-base >
  pre-existing-on-base > known-issue > indeterminate) the classifier must
  start from.
- Gate: add gate.legsRegressedVsBase (+names) and a hard ceiling cap --
  any regressed-vs-base failure caps the verdict ceiling at "Not ready",
  so a green verdict is impossible in code when a leg regressed vs base.
- Surface in context.md (gate line + "Vs base leg"/"Attribution (det.)"
  columns).

Local runner (Review-Tests.ps1): add a red "Regressed N vs base" badge.

Docs: SKILL.md (new fields, taxonomy, ceiling rule), maui-ci-facts.md
(diff is now computed, not manual), workflow body; lock recompiled
(body_hash re-pinned, hash-only diff).

Validated: all three PS1 files AST-clean; Get-TimelineRecordResultMap,
normalization, the leg-diff decision, attribution precedence, and the
ceiling cap unit-tested. Not functionally run (no net/creds in session).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
dotnet/macios 26.5 (preview 6) obsoletes the lowercase-f
UISearchBar.SetImageforSearchBarIcon in favor of SetImageForSearchBarIcon
(capital F). The signature is identical; this is a pure binding-name
casing change. Under TreatWarningsAsErrors the obsolete call broke the
macOS and sample builds (CS0618). Updated the 3 call sites in
ShellPageRendererTracker.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@PureWeen

Copy link
Copy Markdown
Member

/azp run maui-pr-uitests, maui-pr-devicetests

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 2 pipeline(s).

dotnet-maestro Bot added 3 commits June 24, 2026 02:03
…623.15

On relative base path root
Microsoft.iOS.Sdk.net11.0_26.5 , Microsoft.MacCatalyst.Sdk.net11.0_26.5 , Microsoft.macOS.Sdk.net11.0_26.5 , Microsoft.tvOS.Sdk.net11.0_26.5 From Version 26.5.11694-net11-p6 -> To Version 26.5.11708-net11-p6

Dependency coherency updates
On relative base path root
Microsoft.MacCatalyst.Sdk.net10.0_26.5 From Version 26.5.10295 -> To Version 26.5.10298 (parent: Microsoft.MacCatalyst.Sdk.net11.0_26.5)

Microsoft.macOS.Sdk.net10.0_26.5 From Version 26.5.10295 -> To Version 26.5.10298 (parent: Microsoft.macOS.Sdk.net11.0_26.5)

Microsoft.iOS.Sdk.net10.0_26.5 From Version 26.5.10295 -> To Version 26.5.10298 (parent: Microsoft.iOS.Sdk.net11.0_26.5)

Microsoft.tvOS.Sdk.net10.0_26.5 From Version 26.5.10295 -> To Version 26.5.10298 (parent: Microsoft.tvOS.Sdk.net11.0_26.5)
….0-preview.6.26323.1+azdo.14466192

On relative base path root
Microsoft.Android.Sdk.Windows From Version 36.99.0-ci.main.186 -> To Version 37.0.0-ci.main.51
…623.6

On relative base path root
Microsoft.AspNetCore.Authentication.Facebook , Microsoft.AspNetCore.Authentication.Google , Microsoft.AspNetCore.Authentication.MicrosoftAccount , Microsoft.AspNetCore.Authorization , Microsoft.AspNetCore.Components , Microsoft.AspNetCore.Components.Analyzers , Microsoft.AspNetCore.Components.Forms , Microsoft.AspNetCore.Components.Web , Microsoft.AspNetCore.Components.WebAssembly , Microsoft.AspNetCore.Components.WebAssembly.Server , Microsoft.AspNetCore.Components.WebView , Microsoft.AspNetCore.Metadata , Microsoft.Extensions.Configuration , Microsoft.Extensions.Configuration.Abstractions , Microsoft.Extensions.Configuration.Json , Microsoft.Extensions.DependencyInjection , Microsoft.Extensions.DependencyInjection.Abstractions , Microsoft.Extensions.FileProviders.Abstractions , Microsoft.Extensions.Hosting.Abstractions , Microsoft.Extensions.Logging , Microsoft.Extensions.Logging.Abstractions , Microsoft.Extensions.Logging.Console , Microsoft.Extensions.Logging.Debug , Microsoft.Extensions.Primitives , Microsoft.JSInterop , Microsoft.NETCore.App.Ref From Version 11.0.0-preview.5.26256.105 -> To Version 11.0.0-preview.6.26323.106
Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Workloads , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.SharedFramework.Sdk , Microsoft.DotNet.XUnitExtensions From Version 11.0.0-beta.26256.105 -> To Version 11.0.0-beta.26323.106
Microsoft.NET.Sdk From Version 11.0.100-preview.5.26256.105 -> To Version 11.0.100-preview.6.26323.106
@rolfbjarne

rolfbjarne commented Jun 24, 2026

Copy link
Copy Markdown
Member

The preview.6 trim/link step drops Microsoft.Maui.dll from the linked/ output, yet Microsoft.Maui.Controls.dll remains in the composite and references types in it. crossgen2's ReadyToRunVisibilityRootProvider then can't resolve the assembly → FileNotFoundException. This confirms an SDK/runtime-side ReadyToRun + trimming regression surfaced by the flowed SDK, not a MAUI source change.

I think I figured out what happens: we ask crossgen2 to r2r-compile an assembly that references an assembly that's not r2r-compiled. Then crossgen2 tries to find that not-r2r-compiled assembly, and ends up failing to load said assembly, because it doesn't know about it.

Copilot agrees, although a bit more verbosely: https://gist.github.com/rolfbjarne/c6e631f1da214fd71b90eef4565e6961

dotnet/macios#25787 "fixes" this, because after this PR we only r2r-compile System.Private.CoreLib.dll, and there's no "hole" in the assembly graph of assemblies to r2r-compile anymore.

dotnet/android now publishes its workload manifests under the
11.0.100-preview.6 band (Microsoft.NET.Sdk.Android.Manifest-11.0.100-preview.6
has 37.0.0-ci.main.51), matching the preview.6 SDK. The temporary
preview.5 pin caused NU1102 in provisioning because the requested
Manifest-11.0.100-preview.5/37.0.0-ci.main.51 package does not exist.
Aligning the band to $(DotNetVersionBand) resolves the package.

This completes the asymmetric fix from a1a3d33 (macios moved to
preview.6 earlier; Android was still pinned to preview.5).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@PureWeen

Copy link
Copy Markdown
Member

/azp run maui-pr-devicetests, maui-pr-uitests

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 2 pipeline(s).

…624.9

On relative base path root
Microsoft.iOS.Sdk.net11.0_26.5 , Microsoft.MacCatalyst.Sdk.net11.0_26.5 , Microsoft.macOS.Sdk.net11.0_26.5 , Microsoft.tvOS.Sdk.net11.0_26.5 From Version 26.5.11708-net11-p6 -> To Version 26.5.11711-net11-p6
@rolfbjarne

Copy link
Copy Markdown
Member

/azp run maui-pr-devicetests, maui-pr-uitests

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 2 pipeline(s).

The final darc flow (build 20260623.6) bumped MicrosoftNETSdkPackageVersion,
Version.Details Microsoft.NET.Sdk, and global.json's Arcade/Helix SDKs to
26323.106, but no "Re-generate global.json" step ran afterward, leaving
tools.dotnet stranded at the previous flow's 26322.110. That SDK-build skew
made the preview.6 workload resolver report the ios workload as not installed
(NETSDK1147) on the macOS Build/Pack legs. Syncing tools.dotnet aligns SDK
provisioning with the solution build.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@PureWeen
PureWeen merged commit 66d6867 into net11.0 Jun 24, 2026
6 of 19 checks passed
@PureWeen
PureWeen deleted the darc-net11.0-ae17e370-1ba8-4947-9586-8bfb3adb6d5b branch June 24, 2026 20:07
@github-actions github-actions Bot added this to the .NET 11.0-preview6 milestone Jun 24, 2026
SuthiYuvaraj added a commit that referenced this pull request Jul 8, 2026
Tamilarasan-Paranthaman added a commit to Tamilarasan-Paranthaman/maui that referenced this pull request Jul 8, 2026
PureWeen added a commit that referenced this pull request Jul 9, 2026
…ption-wiring & feed-drift checks (evolve #36268) (#36213)

&lt;!-- Please let the below note in for people that find this PR --&gt;
&gt; [!NOTE]
&gt; Are you waiting for the changes in this PR to be merged?
&gt; It would be very helpful if you could [test the resulting
artifacts](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from
this PR and let us know in a comment if this change resolves your issue.
Thank you!

### What

Makes the local ask **"run release readiness skill to see if net11
preview6 is ready"** consult the *authoritative* official-preview build
**and** verify the preview branch is actually ship-wired — not just
public CI/regression health. Three files:

**1. `release-readiness/SKILL.md` — net-new bridge (the star of this
PR).**
A new **Preview: authoritative blessed-build source** subsection so the
`release-readiness` skill, after its public survey, runs the access gate
and — when the caller has access **and** the plugin is enabled — invokes
the private **`dotnet-release-tracker`** plugin for the blessed build /
BAR id + stage, then combines that with the CI/regression verdict. It
branches on the gate token (`AVAILABLE_ENABLED` → use the plugin;
`AVAILABLE_NOT_ENABLED` → offer the opt-in; `ACCESS_ON_INACTIVE_ACCOUNT`
→ advise an account switch; `NO_ACCESS` → **public-feed fallback**:
report the latest build on the public Preview N channel as a *labeled
candidate* that may not be the official/blessed build, without naming
the private tool) and adds a **"Blessed ≠ green"** caveat so the blessed
build never masks open `regressed-in-*` blockers. DRY — it
cross-references dependency-flow's tier table / opt-in / guardrails
rather than duplicating them.

**2. `dependency-flow/` gate — evolves the version already merged in
#36268.**
The deterministic classifier `scripts/Get-PreviewReleaseReadiness.ps1`
emits:

```
RELEASE_TRACKER_STATUS = NO_ACCESS | ACCESS_ON_INACTIVE_ACCOUNT | AVAILABLE_NOT_ENABLED | AVAILABLE_ENABLED
```

It checks (1) GitHub read access to the private marketplace repo that
hosts the internal **.NET Release Tracker** plugin and (2) whether that
plugin is enabled locally. It fetches **no** release data and always
exits `0`. This PR carries improvements over the version on `main`:

- **JSONC-tolerant** enabled-plugin parser — the strict
`ConvertFrom-Json` on `main` chokes on the `//`-commented opt-in snippet
the skill itself documents;
- `$USERPROFILE` support (Windows user scope) alongside `$HOME`;
- **multi-account advisory** — when the active `gh` identity can't read
the repo but a logged-in *inactive* account can, the gate emits
`ACCESS_ON_INACTIVE_ACCOUNT` and advises `gh auth switch --user
<account>` instead of a false-positive `AVAILABLE` (the plugin loads
under the *active* identity). Only fires when access is confirmed on
some account, so a true no-access caller still gets a silent
`NO_ACCESS`;
- `-ReleaseRepo` / `-PluginId` / `-Json` parameters and a public-safe
`.NOTES` contract;
- try/catch hardening so an unexpected terminating error still emits the
safe `NO_ACCESS` default;
- the *"why a special source"* / Preview 6 (#35364) trap prose in
`SKILL.md`.

&gt; **Relationship to #36268.** #36268 ("public-safe preview release
readiness gate") already merged the first version of this gate. This PR
is a **forward-evolution** of those two files, **plus** the net-new
release-readiness bridge — it does **not** revert any shipped behavior.
In particular the plugin opt-in stays **user-scope only**
(`~/.copilot/settings.json`); there is no committable project-scope
enablement, so forks and no-access users are never silently opted in.
The "comment-only on GitHub" guardrail is retained.

**3. Preview wiring checks — subscriptions + feed drift + component pins
(net-new).**
A preview can pass CI and even have a blessed build yet still not be
*ship-wired*. Three **public** (BAR/Maestro + git) checks close that
gap:

- **Check A — subscriptions wired?** Confirm `release/11.0.1xx-previewN`
has its default-channel mapping **and** the baseline three subs (android
+ macios + dotnet on `.NET 11.0.1xx SDK Preview N`). Branch cut +
default-channel present but **zero subs** = a start-of-preview flow gap
→ surfaced as an **FYI note** (not a ship blocker); the skill still
knows how to remediate via the existing **combined-PR pattern** (DRY,
honoring its confirm/draft-PR gate).
- **Check B — feed matches the branch?** Compare the latest build
promoted to the `.NET 11.0.1xx SDK Preview N` channel
(`maestro_latest_build`) against `origin/release/11.0.1xx-previewN`
HEAD. Branch ahead of the promoted build = stale feed → flag.
- **Check C — component pins coherent?** Report which `dotnet/android`,
`dotnet/macios`, and `dotnet/dotnet` (VMR) builds MAUI bundles (version
+ SHA from `eng/Version.Details.xml`) and confirm they **match the
inflight `netN.0` branch the preview was cut from**. Match = clean cut
✅; divergence or an off-band pin (macios/dotnet missing the
`-net11-pN`/`preview.N` stamp) → flag. The `.NET Release Tracker`
exposes **only** SDK/runtime-level data, so there is **no** "blessed"
per-component android/macios build to look up — this is git+BAR only.
"Behind the latest component build" is *expected* for a cut branch
(don't flag it); android's `-ci.main.NN` scheme is normal for net11 and
validated against inflight rather than alarmed on.

Mechanics (exact MCP/`darc`/git commands, interpretation tables,
remediation, and **live net11 Preview 6 worked examples**) live in a new
**"Wiring checks: is Preview N actually plumbed?"** subsection (Checks
A/B/C) in `dependency-flow/SKILL.md` (its Maestro/subscription domain);
`release-readiness/SKILL.md` gets a short orchestration hook that
cross-references it and folds the results into the preview report.

**4. Preview generator — scope Maestro PRs to the target branch (net-new
bug fix).**
`scripts/Get-PreviewReadiness.ps1` (the deterministic generator the
GitHub Action runs to author the `[Release Readiness]` preview tracker,
e.g. #35866) was listing Maestro / dependency-flow PRs that target
`netN.0` (the **inflight** branch) inside the preview tracker's own
"Maestro / dependency-flow PRs" section. Once a preview is **branched**,
those `netN.0` bumps belong to the inflight branch's own readiness, not
the preview tracker. `Get-CategorizedPullRequests` now computes the
Maestro bucket from `$TargetPRs` (the survey ref) **only** instead of
target + inflight, so `netN.0` (inflight) Maestro PRs land in no
rendered bucket and are intentionally dropped from a branched preview
tracker. Non-Maestro inflight PRs still surface unchanged in the
Inflight-human bucket. In **candidate** mode the survey ref *is*
`netN.0` and the inflight list is empty, so target-only is correct there
too. Unit tests (`tests/Test-ReleaseReadiness.ps1`, precedence +
AutomationNull null-safety) updated to assert target-only scoping,
including a new assertion that an inflight Maestro PR appears in no
bucket.

**5. Surface human-authored dependency-bump PRs in High-priority items +
drift-proof SR E2E tests (net-new).**
Two follow-ups in `scripts/Get-PreviewReadiness.ps1`:

- **Dependency-bump detection was author-only.** The component-bump PR
that *is* the release (e.g. #36433 — `rmarinho`, "Bump dotnet/dotnet
(BAR 321614), dotnet/android (BAR 321622) and dotnet/macios (BAR
321780)", head `update-321614`, no labels) was authored by a human, so
the old `-match "dotnet-maestro"` author filters missed it and it fell
into the generic release-branch bucket instead of **High-priority
items**. A new `Test-IsDependencyFlowPr` helper now flags a PR as
dependency-flow if it matches *any* of: `dotnet-maestro` author **OR** a
`Bump dotnet/(dotnet|android|macios|runtime|sdk|…) … (BAR NNN)` title
**OR** an `update-<id>` head ref. The three maestro bucket filters were
rewired to use it, and the high-priority row kind was renamed `📦 Maestro
PR` → `📦 Dependency-flow PR`. Merge-up PRs (`[automated] Merge branch
…`, head `merge/…`) are intentionally *not* matched.
- **Human-notes block repositioned.** The blessed-build / wiring /
component-pin notes now render directly under **High-priority items**
(previously below the Target section), so the authoritative-build
context sits next to the items it qualifies.
- **Drift-proof SR E2E tests.** The end-to-end tests in
`tests/Test-ReleaseReadiness.ps1` run the *real* detector against the
live repo and had pinned a specific SR as the not-yet-cut candidate;
when that SR shipped/cut the fixtures rotted (7 stale failures). They
now **derive** the in-flight/candidate split structurally from the
detector output (≥1 SR, exactly one candidate numbered one past the
highest in-flight SR, clean partition, regression-label formula mirrored
from `New-RegressionLabelList`), so they survive every future SR
cut/ship without a per-cut edit.

**6. Action-owned best-effort component-build section (net-new).**
The authoritative *blessed* build lives in the private **.NET Release
Tracker** (`dotnet/release`), which the GitHub Action's repo-scoped
`GITHUB_TOKEN` **cannot** reach — so on an automated run that row can
only come from a maintainer's local notes (spliced into the preserved
human-notes block). To give the Action *something* to say on its own,
`scripts/Get-PreviewReadiness.ps1` now emits a **best-effort**
component-build section sourced from the branch's own
`eng/Version.Details.xml` (a **public** git source always readable in
CI). A new `Get-BranchComponentPins` reads the `dotnet/dotnet`
(VMR/SDK), `dotnet/android` and `dotnet/macios` anchor pins (version +
commit SHA) and renders a `🏷️ Preview N component build — branch pins
(best-effort)` table. It is **explicitly labeled NOT a confirmed blessed
build** — it reports what's *currently bundled on the branch* and points
maintainers to the **Release Captain Notes** block (filled locally with
tracker access) for the authoritative designation. The section renders
**outside** the human-notes markers so it **self-refreshes** on every
automated re-run (verified: after #36433 merged, the pins advanced to
the post-bump build automatically), and it surfaces an open
component-bump PR (e.g. #36433) as a *pending advance* when one is still
open. `Get-BranchComponentPins` handles the `[xml]` attribute-vs-child
gotcha (`Name`/`Version` are attributes; `Uri`/`Sha` are child
elements), prefers the most representative dependency name per repo with
a `Uri`-based fallback, and returns `$null` (no throw) when the file
can't be read/parsed. Adds 9 unit assertions. Full suite: **794 passed /
0 failed**.

### Why

During the Preview 6 cycle (see #35364), two same-band VMR builds (e.g.
`…26325.125` vs `…26326.122`) looked interchangeable. Public BAR/Maestro
data can enumerate candidate builds but **cannot, on its own, identify
which staged build releases.dot.net has *blessed* as the official
preview**. That authoritative signal lives in the internal release
tracker. This change lets developers *with access* get the authoritative
answer automatically from the `release-readiness` skill, while
developers *without access* fall back to the **public preview-feed
candidate** — the latest build promoted to the public Preview N channel,
explicitly labeled as possibly-not-the-official build — with the private
*tool* never named or implied. The wiring checks add the complementary
*"is the branch even receiving flow, and is its feed current?"* signal —
validated live: net11 Preview 6 is branched with a promoted build **but
has no subscriptions authored yet** (Preview 5's set was never rolled
forward), exactly the gap Check A surfaces (as an FYI).

### Privacy / safety

The plugin is **double-gated** (GitHub read access to load it + an
authorized Azure AD identity to pull data), so referencing it from this
public repo is safe. The change deliberately:

- contains **no** Azure AD resource ids / `api://…` audiences, backend
hostnames, or internal endpoint paths — only the sanctioned *marketplace
pointer* (repo name + plugin name);
- performs **no** fetch-and-exec of remote code;
- defaults to `NO_ACCESS` for any unconfirmed-access case, so the agent
**never** reveals the private plugin *tool* to users who can't use it —
the NO_ACCESS path now emits an honest, public-source-labeled
preview-feed candidate (public data), which reveals nothing about the
gated tooling — the multi-account advisory only fires when access is
*confirmed* on some logged-in account, and never prints a token;
- keeps the opt-in **user-scope** (personal `~/.copilot/settings.json`),
so forks and no-access users are unaffected;
- the wiring checks read only **public** BAR/Maestro + git data and
never mutate config — remediation is opt-in and routes through the
documented confirm/draft-PR gate.

### Testing

`scripts/Get-PreviewReleaseReadiness.ps1` was exercised across all
states locally with `pwsh` (token **and** `-Json` forms):

| Scenario | Result |
|----------|--------|
| Real access probe (`dotnet/release`), plugin enabled in
`~/.copilot/settings.json` (JSONC w/ comments) | `AVAILABLE_ENABLED`,
exit 0 |
| Real access probe, plugin not enabled | `AVAILABLE_NOT_ENABLED`, exit
0 |
| Active identity lacks access, but a logged-in inactive account has it
| `ACCESS_ON_INACTIVE_ACCOUNT` + `gh auth switch --user &lt;account&gt;`
advice, exit 0 (and `GH_TOKEN` restored after probing) |
| Same user settings with `: false` | `AVAILABLE_NOT_ENABLED` (correctly
not matched), exit 0 |
| Nonexistent repo (no account can read) | `NO_ACCESS`, exit 0 |

The wiring checks (items **3A/3B**) were validated against **live
Maestro/BAR + git** for net11 Preview 6:
`maestro_subscriptions(targetBranch="release/11.0.1xx-preview6")` → **0
rows** (FYI note correctly surfaced); `maestro_latest_build(".NET
11.0.1xx SDK Preview 6")` → build #321033 @ `6e35dc58d0` == branch HEAD
(feed current); Check C (component pins) → dotnet/dotnet
`11.0.0-preview.6.26325.125`, dotnet/macios `26.5.11717-net11-p6`,
dotnet/android `37.0.0-ci.main.51` all **byte-identical to `net11.0`
HEAD** = clean cut.

The **Action-owned best-effort component section** (item **6**) is
unit-tested (9 assertions over `Get-BranchComponentPins`: parse
correctness, name preference, `[xml]` attribute/child handling,
unreadable-file → `$null`) and validated end-to-end by dispatching the
real GitHub Action against this PR branch — the section rendered on
#35866 sourced purely from `eng/Version.Details.xml` and self-refreshed
to the post-#36433 pins with no local tracker access. Full suite: **794
passed / 0 failed**. Docs/skill-only change — no product code or public
API is affected.

---------

Co-authored-by: PureWeen <223556219+Copilot@users.noreply.github.com>
@github-actions github-actions Bot locked and limited conversation to collaborators Jul 25, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

s/agent-reviewed PR was reviewed by AI agent workflow (full 4-phase review)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants