[net11.0] Update dependencies from dotnet/android, dotnet/dotnet, dotnet/macios - #35364
Conversation
…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)
|
🚀 Dogfood this PR with:
curl -fsSL https://raw.githubusercontent.com/dotnet/maui/main/eng/scripts/get-maui-pr.sh | bash -s -- 35364Or
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
…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
…from dotnet/android, dotnet/dotnet, dotnet/macios
|
|
2 similar comments
|
|
|
|
…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
…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
…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
…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>
|
/azp run maui-pr-uitests, maui-pr-devicetests |
|
Azure Pipelines successfully started running 2 pipeline(s). |
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>
|
/azp run maui-pr-uitests, maui-pr-devicetests |
|
Azure Pipelines successfully started running 2 pipeline(s). |
…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
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>
|
/azp run maui-pr-devicetests, maui-pr-uitests |
|
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
|
/azp run maui-pr-devicetests, maui-pr-uitests |
|
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>
…ption-wiring & feed-drift checks (evolve #36268) (#36213) <!-- Please let the below note in for people that find this PR --> > [!NOTE] > Are you waiting for the changes in this PR to be merged? > 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`. > **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 <account>` 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>
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
From https://github.com/dotnet/macios
From https://github.com/dotnet/android
From https://github.com/dotnet/dotnet