[main] Source code updates from dotnet/dotnet#124232
[main] Source code updates from dotnet/dotnet#124232dotnet-maestro[bot] wants to merge 7 commits intomainfrom
Conversation
[[ commit created by automation ]]
On relative base path root Microsoft.CodeAnalysis,Microsoft.CodeAnalysis.Analyzers,Microsoft.CodeAnalysis.CSharp,Microsoft.Net.Compilers.Toolset From Version 5.4.0-2.26069.103 -> To Version 5.5.0-2.26110.101 (parent: ) Microsoft.CodeAnalysis.NetAnalyzers,Microsoft.DotNet.ApiCompat.Task,Microsoft.NET.Workload.Emscripten.Current.Manifest-11.0.100.Transport From Version 11.0.100-preview.1.26069.103 -> To Version 11.0.100-preview.2.26110.101 (parent: ) Microsoft.DotNet.Arcade.Sdk,Microsoft.DotNet.Build.Tasks.Archives,Microsoft.DotNet.Build.Tasks.Feed,Microsoft.DotNet.Build.Tasks.Installers,Microsoft.DotNet.Build.Tasks.Packaging,Microsoft.DotNet.Build.Tasks.TargetFramework,Microsoft.DotNet.Build.Tasks.Templating,Microsoft.DotNet.Build.Tasks.Workloads,Microsoft.DotNet.CodeAnalysis,Microsoft.DotNet.GenAPI,Microsoft.DotNet.GenFacades,Microsoft.DotNet.Helix.Sdk,Microsoft.DotNet.PackageTesting,Microsoft.DotNet.RemoteExecutor,Microsoft.DotNet.SharedFramework.Sdk,Microsoft.DotNet.XliffTasks,Microsoft.DotNet.XUnitExtensions From Version 11.0.0-beta.26069.103 -> To Version 11.0.0-beta.26110.101 (parent: ) Microsoft.DotNet.Cecil From Version 0.11.5-preview.26069.103 -> To Version 0.11.5-preview.26110.101 (parent: ) Microsoft.DotNet.XUnitAssert,Microsoft.DotNet.XUnitConsoleRunner From Version 2.9.3-beta.26069.103 -> To Version 2.9.3-beta.26110.101 (parent: ) Microsoft.NET.Sdk.IL,Microsoft.NETCore.App.Ref,Microsoft.NETCore.ILAsm,runtime.native.System.IO.Ports,System.Reflection.Metadata,System.Reflection.MetadataLoadContext,System.Text.Json From Version 11.0.0-preview.1.26069.103 -> To Version 11.0.0-preview.2.26110.101 (parent: ) NuGet.Frameworks,NuGet.Packaging,NuGet.ProjectModel,NuGet.Versioning From Version 7.3.0-preview.1.7003 -> To Version 7.5.0-rc.11101 (parent: ) System.CommandLine From Version 3.0.0-preview.1.26069.103 -> To Version 3.0.0-preview.2.26110.101 (parent: ) runtime.linux-arm64.Microsoft.NETCore.Runtime.JIT.Tools,runtime.linux-x64.Microsoft.NETCore.Runtime.JIT.Tools,runtime.linux-musl-arm64.Microsoft.NETCore.Runtime.JIT.Tools,runtime.linux-musl-x64.Microsoft.NETCore.Runtime.JIT.Tools,runtime.win-arm64.Microsoft.NETCore.Runtime.JIT.Tools,runtime.win-x64.Microsoft.NETCore.Runtime.JIT.Tools,runtime.osx-arm64.Microsoft.NETCore.Runtime.JIT.Tools,runtime.osx-x64.Microsoft.NETCore.Runtime.JIT.Tools,runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Libclang,runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk,runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools,runtime.linux-musl-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Libclang,runtime.linux-musl-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk,runtime.linux-musl-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools,runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Libclang,runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk,runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools,runtime.linux-musl-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Libclang,runtime.linux-musl-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk,runtime.linux-musl-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools,runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Libclang,runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk,runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools,runtime.osx-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Libclang,runtime.osx-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk,runtime.osx-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools,runtime.osx-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Libclang,runtime.osx-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk,runtime.osx-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools From Version 19.1.0-alpha.1.25625.2 -> To Version 19.1.0-alpha.1.26076.1 (parent: ) runtime.linux-arm64.Microsoft.NETCore.Runtime.Wasm.Node.Transport,runtime.linux-musl-arm64.Microsoft.NETCore.Runtime.Wasm.Node.Transport,runtime.linux-x64.Microsoft.NETCore.Runtime.Wasm.Node.Transport,runtime.linux-musl-x64.Microsoft.NETCore.Runtime.Wasm.Node.Transport,runtime.osx-arm64.Microsoft.NETCore.Runtime.Wasm.Node.Transport,runtime.osx-x64.Microsoft.NETCore.Runtime.Wasm.Node.Transport,runtime.win-arm64.Microsoft.NETCore.Runtime.Wasm.Node.Transport,runtime.win-x64.Microsoft.NETCore.Runtime.Wasm.Node.Transport From Version 11.0.0-alpha.1.26061.1 -> To Version 11.0.0-alpha.1.26076.4 (parent: ) [[ commit created by automation ]]
f2f682b to
85d231e
Compare
|
@premun some more weird revert issues here |
… reasoning Apply the Data vs. Reasoning Boundary pattern: - Script emits [CI_ANALYSIS_SUMMARY] JSON block with structured facts (totalFailedJobs, failedJobNames, knownIssues, prCorrelation, recommendationHint) - Removed 47-line if/elseif recommendation chain producing canned prose - Added 'Generating Recommendations' section to SKILL.md with decision table - Updated 'Presenting Results' to reference JSON summary flow - Agent now reasons over structured data instead of parroting script output Tested with Claude Sonnet 4 and GPT-5 against PR dotnet#124232 — both rated JSON completeness 4/5 and generated better recommendations than the old heuristic.
… reasoning Apply the Data vs. Reasoning Boundary pattern: - Script emits [CI_ANALYSIS_SUMMARY] JSON block with structured facts (totalFailedJobs, failedJobNames, knownIssues, prCorrelation, recommendationHint) - Removed 47-line if/elseif recommendation chain producing canned prose - Added 'Generating Recommendations' section to SKILL.md with decision table - Updated 'Presenting Results' to reference JSON summary flow - Agent now reasons over structured data instead of parroting script output Tested with Claude Sonnet 4 and GPT-5 against PR dotnet#124232 — both rated JSON completeness 4/5 and generated better recommendations than the old heuristic.
… reasoning Apply the Data vs. Reasoning Boundary pattern: - Script emits [CI_ANALYSIS_SUMMARY] JSON block with structured facts (totalFailedJobs, failedJobNames, knownIssues, prCorrelation, recommendationHint) - Removed 47-line if/elseif recommendation chain producing canned prose - Added 'Generating Recommendations' section to SKILL.md with decision table - Updated 'Presenting Results' to reference JSON summary flow - Agent now reasons over structured data instead of parroting script output Tested with Claude Sonnet 4 and GPT-5 against PR dotnet#124232 — both rated JSON completeness 4/5 and generated better recommendations than the old heuristic.
On relative base path root Microsoft.CodeAnalysis,Microsoft.CodeAnalysis.Analyzers,Microsoft.CodeAnalysis.CSharp,Microsoft.Net.Compilers.Toolset From Version 5.5.0-2.26110.101 -> To Version 5.5.0-2.26110.116 (parent: ) Microsoft.CodeAnalysis.NetAnalyzers,Microsoft.DotNet.ApiCompat.Task,Microsoft.NET.Workload.Emscripten.Current.Manifest-11.0.100.Transport From Version 11.0.100-preview.2.26110.101 -> To Version 11.0.100-preview.2.26110.116 (parent: ) Microsoft.DotNet.Arcade.Sdk,Microsoft.DotNet.Build.Tasks.Archives,Microsoft.DotNet.Build.Tasks.Feed,Microsoft.DotNet.Build.Tasks.Installers,Microsoft.DotNet.Build.Tasks.Packaging,Microsoft.DotNet.Build.Tasks.TargetFramework,Microsoft.DotNet.Build.Tasks.Templating,Microsoft.DotNet.Build.Tasks.Workloads,Microsoft.DotNet.CodeAnalysis,Microsoft.DotNet.GenAPI,Microsoft.DotNet.GenFacades,Microsoft.DotNet.Helix.Sdk,Microsoft.DotNet.PackageTesting,Microsoft.DotNet.RemoteExecutor,Microsoft.DotNet.SharedFramework.Sdk,Microsoft.DotNet.XliffTasks,Microsoft.DotNet.XUnitExtensions From Version 11.0.0-beta.26110.101 -> To Version 11.0.0-beta.26110.116 (parent: ) Microsoft.DotNet.Cecil From Version 0.11.5-preview.26110.101 -> To Version 0.11.5-preview.26110.116 (parent: ) Microsoft.DotNet.XUnitAssert,Microsoft.DotNet.XUnitConsoleRunner From Version 2.9.3-beta.26110.101 -> To Version 2.9.3-beta.26110.116 (parent: ) Microsoft.NET.Sdk.IL,Microsoft.NETCore.App.Ref,Microsoft.NETCore.ILAsm,runtime.native.System.IO.Ports,System.Reflection.Metadata,System.Reflection.MetadataLoadContext,System.Text.Json From Version 11.0.0-preview.2.26110.101 -> To Version 11.0.0-preview.2.26110.116 (parent: ) NuGet.Frameworks,NuGet.Packaging,NuGet.ProjectModel,NuGet.Versioning From Version 7.5.0-rc.11101 -> To Version 7.5.0-rc.11116 (parent: ) System.CommandLine From Version 3.0.0-preview.2.26110.101 -> To Version 3.0.0-preview.2.26110.116 (parent: ) runtime.linux-arm64.Microsoft.NETCore.Runtime.JIT.Tools,runtime.linux-x64.Microsoft.NETCore.Runtime.JIT.Tools,runtime.linux-musl-arm64.Microsoft.NETCore.Runtime.JIT.Tools,runtime.linux-musl-x64.Microsoft.NETCore.Runtime.JIT.Tools,runtime.win-arm64.Microsoft.NETCore.Runtime.JIT.Tools,runtime.win-x64.Microsoft.NETCore.Runtime.JIT.Tools,runtime.osx-arm64.Microsoft.NETCore.Runtime.JIT.Tools,runtime.osx-x64.Microsoft.NETCore.Runtime.JIT.Tools,runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Libclang,runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk,runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools,runtime.linux-musl-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Libclang,runtime.linux-musl-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk,runtime.linux-musl-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools,runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Libclang,runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk,runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools,runtime.linux-musl-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Libclang,runtime.linux-musl-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk,runtime.linux-musl-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools,runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Libclang,runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk,runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools,runtime.osx-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Libclang,runtime.osx-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk,runtime.osx-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools,runtime.osx-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Libclang,runtime.osx-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk,runtime.osx-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools From Version 19.1.0-alpha.1.26076.1 -> To Version 19.1.0-alpha.1.26104.1 (parent: ) runtime.linux-arm64.Microsoft.NETCore.Runtime.Wasm.Node.Transport,runtime.linux-musl-arm64.Microsoft.NETCore.Runtime.Wasm.Node.Transport,runtime.linux-x64.Microsoft.NETCore.Runtime.Wasm.Node.Transport,runtime.linux-musl-x64.Microsoft.NETCore.Runtime.Wasm.Node.Transport,runtime.osx-arm64.Microsoft.NETCore.Runtime.Wasm.Node.Transport,runtime.osx-x64.Microsoft.NETCore.Runtime.Wasm.Node.Transport,runtime.win-arm64.Microsoft.NETCore.Runtime.Wasm.Node.Transport,runtime.win-x64.Microsoft.NETCore.Runtime.Wasm.Node.Transport From Version 11.0.0-alpha.1.26076.4 -> To Version 11.0.0-alpha.1.26104.1 (parent: ) [[ commit created by automation ]]
## Problem After UseMonoRuntime was removed from in-tree wasm props (PR #121789 by @maraf), browser-wasm test restores fail with NU1102 (package not found). The `RestorePackage` target in `build.proj` runs `dotnet restore` for test dependency projects. These projects use `Microsoft.NET.Sdk` (not the WebAssembly SDK), so `UseMonoRuntime` is not set. Without it, the newer SDK tries to download `Microsoft.NETCore.App.Runtime.browser-wasm` (CoreCLR pattern) or `Microsoft.NETCore.App.Runtime.Mono.browser-wasm` from NuGet — packages that don't exist for .NET 11. The test restore doesn't need runtime or targeting packs from NuGet — those come from the local build and are wired up during the test build step. However, `EnableRuntimePackDownload=false` and `EnableTargetingPackDownload=false` were only passed conditionally (when `UseLocalAppHostPack=true`), and browser-wasm sets `UseLocalAppHostPack=false`. ## Fix Unconditionally pass `-p:EnableRuntimePackDownload=false -p:EnableTargetingPackDownload=false` to the test dependency restore command. This fixes both Mono and CoreCLR browser-wasm configurations since neither needs pack downloads during restore. ## Context - Root cause PR: #121789 (Remove duplicated UseMonoRuntime=true from SDK) - Follow-up pattern: #123181 (Added RuntimeFlavor=Mono to perf pipeline) - Affected codeflow PR: #124232 cc @maraf @akoeplinger
|
@maraf @akoeplinger I merged the test version of the wasm fix #124288 to get CI running on it, feel free to change the actual content |
|
Important While this PR was open, the source repository has received code changes from this repository (an opposite codeflow merged). You can continue with one of the following options:
💡 You may consult the FAQ for more information or tag @dotnet/prodconsvcs for assistance. |
…on guides (#124240) ## ci-analysis: structured output, MCP integration, and deep investigation guides ### Changes to `Get-CIStatus.ps1` (+216/-132) - **Add `[CI_ANALYSIS_SUMMARY]` JSON block** — structured summary emitted at end of script with all key facts (builds, failed jobs, known issues, PR correlation, recommendation hint) - **Replace 47-line if/elseif recommendation chain** with a single `recommendationHint` field in JSON (one of: `BUILD_SUCCESSFUL`, `KNOWN_ISSUES_DETECTED`, `LIKELY_PR_RELATED`, `POSSIBLY_TRANSIENT`, `REVIEW_REQUIRED`, `MERGE_CONFLICTS`, `NO_BUILDS`) - **Add `failedJobDetails` to JSON** — per-job `errorCategory` (test-failure, build-error, test-timeout, crash, tests-passed-reporter-failed, unclassified), `errorSnippet`, and `helixWorkItems` - **Add `failedJobDetailsTruncated`** — boolean flag indicating when `-MaxJobs` cap means `failedJobDetails` is incomplete vs `failedJobNames` - **Add top-level `knownIssues`** from Build Analysis (not per-job — Build Analysis reports at the PR level, not per-job) - **Add timeout pattern** to `Format-TestFailure` — catches `Timed Out (timeout` that was previously invisible - **Show log tail in PR mode** when no failure pattern matches (Helix Job mode already did this) - **Add accumulation variables** for cross-build aggregation (`totalFailedJobs`, `totalLocalFailures`, `lastBuildJobSummary`) - **Fix early-continue scoping bug** — job summary computation was at end of build loop, after 3 `continue` paths that skipped it - **Fix empty array falsy check** — `if ($listFiles)` → proper count check - **Fix `mergeable_state` trimming** — `gh api --jq` output trimmed to prevent whitespace comparison failures - **Remove interpretive prose** — "These failures are likely PR-related" moved from script to agent reasoning - **Fix empty catch** — merge state error now logged via `Write-Verbose` ### Changes to `SKILL.md` (+97/-144, net reduction) - **Add Step 0: Gather Context** — PR type classification table (code, flow, backport, merge, dependency update) - **Add Step 3: Verify before claiming** — systematic checklist - **Add build progression analysis** (Step 2, item 4) — comparing pass/fail across PR builds to narrow down which commit introduced a failure - **Add prior-build mismatch detection** (Step 2, item 6) — ask user when they reference jobs not in current results - **Document `failedJobDetails`** — per-failure error categories in Interpreting Results - **Add Build Analysis check status enforcement** — red check means unaccounted failures exist, never claim "all known" when it's red - **Add timeout recovery workflow** — explicit guidance for verifying timed-out builds have passing Helix results via `hlx_status` - **Add crash/canceled job recovery procedure** — step-by-step using `hlx_batch_status`, `hlx_files`, `hlx_download_url` to recover results from crashed Helix work items - **Fix MCP tool references** — use canonical short-form tool names consistently - **Condense anti-patterns** — tighter, more targeted, near relevant steps - **Net token reduction** — despite adding new content, SKILL.md shrank from ~4.6K to ~3.5K tokens ### New reference files - `references/azure-cli.md` — Azure CLI deep investigation guide - `references/binlog-comparison.md` — binlog comparison workflow - `references/delegation-patterns.md` — subagent delegation patterns (5 patterns including parallel artifact extraction and canceled job recovery) - `references/build-progression-analysis.md` — commit-to-build correlation using `triggerInfo.pr.sourceSha`, SQL-based progression tracking, MCP-first with AzDO MCP tools as primary ### Updated reference files - `references/manual-investigation.md` — fix nonexistent `msbuild-mcp analyze` tool refs, use real `mcp-binlog-tool-*` tools ### Design principles - **Data/reasoning boundary**: Script emits structured JSON facts → agent synthesizes recommendations. No more canned prose from the script. - **MCP-first**: AzDO MCP tools (`get_builds`, `get_build_log_by_id`) and Helix MCP tools (`hlx_status`, `hlx_logs`) positioned as primary, CLI/script as fallback. - **Token budget**: Orchestrating SKILL.md kept within 2K-4K token budget by extracting depth to `references/`. - **SQL for structured investigations**: Build progression tracking uses SQL tables to persist SHAs across context, enabling queries for pass→fail transitions and target branch movement. ### Testing - Multi-model subagent testing (Sonnet 4 + GPT-5 + Opus 4.5) — two review rounds with findings addressed - Live MCP integration test confirmed `hlx_status`, `hlx_logs`, `get_builds`, `get_build_log_by_id` all work - Real-world validation against PRs #123245, #123883, #124125, #124232
|
@akoeplinger to get back to you on this, it appears that the original problem was this forward flow that didn't make the correct change: dotnet/dotnet#4680 |
The previous fix (PR #124288) made EnableTargetingPackDownload=false and EnableRuntimePackDownload=false unconditional for all platforms. This broke coreclr/NativeAOT/Libraries test restores that need those packs from NuGet. Fix: Add 'or TargetOS==browser' to the existing UseLocalAppHostPack condition instead of making the flags unconditional. This fixes browser-wasm NU1102 while preserving original behavior for all other platforms.
|
@maraf @akoeplinger I pushed a fix (1de8519) to address the regression introduced by my earlier NU1102 fix (PR #124288). Build progression analysis
Root causePR #124288 moved Fix (commit 1de8519)Instead of making the flags unconditional, I added <!-- Before (broken): unconditional on DotnetRestoreCommand -->
-p:EnableTargetingPackDownload=false -p:EnableRuntimePackDownload=false
<!-- After (fixed): conditional, same as original + browser-wasm -->
<_ConfigurationProperties Condition="'$(UseLocalAppHostPack)' == 'true' or '$(TargetOS)' == 'browser'">
$(_ConfigurationProperties) -p:EnableAppHostPackDownload=false -p:EnableTargetingPackDownload=false -p:EnableRuntimePackDownload=false
</_ConfigurationProperties>This preserves the original behavior for all other platforms while fixing the browser-wasm NU1102 issue. SuggestionWe should review whether this is the right long-term approach. The underlying issue is that after |
|
Something here broke bootstrapping for the community-supported platforms, but I'm not sure what. |
Note
This is a codeflow update. It may contain both source code changes from
the VMR
as well as dependency updates. Learn more here.
This pull request brings the following source code changes
From https://github.com/dotnet/dotnet
Updated Dependencies
Associated changes in source repos
Diff the source with this PR branch