[automated] Merge branch 'main' => 'net11.0'#24906
Conversation
This pull request updates the following dependencies ## From https://github.com/dotnet/dotnet - **Subscription**: [30303172-6f12-44a9-887a-ea8520fce068](https://maestro.dot.net/subscriptions?search=30303172-6f12-44a9-887a-ea8520fce068) - **Build**: [20260311.3](https://dev.azure.com/dnceng/internal/_build/results?buildId=2923915) ([305713](https://maestro.dot.net/channel/9626/github:dotnet:dotnet/build/305713)) - **Date Produced**: March 11, 2026 12:48:21 PM UTC - **Commit**: [6eb2f3d82a8f1298c6e9e5f7f23482656ba25d04](dotnet/dotnet@6eb2f3d) - **Branch**: [release/10.0.3xx](https://github.com/dotnet/dotnet/tree/release/10.0.3xx) - **Dependency Updates**: - From [10.0.0-beta.26160.113 to 10.0.0-beta.26161.103][1] - Microsoft.DotNet.Arcade.Sdk - Microsoft.DotNet.Build.Tasks.Feed - Microsoft.DotNet.SharedFramework.Sdk - From [10.0.300-preview.26160.113 to 10.0.300-preview.0.26161.103][1] - Microsoft.NET.Sdk - From [10.0.300-preview.26160.113 to 10.0.300-preview.26161.103][1] - Microsoft.TemplateEngine.Authoring.Tasks [1]: dotnet/dotnet@37ac471...6eb2f3d
…NSObject type has been loaded. (#24875) The GC calls 'is_class_finalization_aware', and this might happen before the managed NSObject type has been loaded, so make sure the method copes with this scenario. This becomes more frequent with 'dotnet watch' / Hot Reload, because these features run code before Runtime.Initialize, also making it more probable that a GC will happen that early.
…source header (#24883) Add a new --deepsplit CLI option that generates one .cs file per source header instead of a single ApiDefinition.cs. This makes it easier to navigate large framework bindings and map generated C# types back to their original Objective-C headers. The implementation adds a DeepSplitMassager that extracts the source header filename from each declaration's Clang annotation via Cursor.TryGetPresumedLoc, creates a DocumentSyntaxTree per unique header basename, and distributes declarations accordingly. Struct and enum declarations are consolidated in StructsAndEnums.cs. Declarations without source location info fall back to ApiDefinition.cs. Example: binding FBSDKCoreKit with --deepsplit produces 194 files (FBSDKAccessToken.cs, FBSDKGraphRequest.cs, etc.) instead of a single 7,688-line ApiDefinition.cs. Fixes #23024. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This pull request updates the following dependencies ## From https://github.com/dotnet/xharness - **Subscription**: [02e03784-16b3-4ced-b02a-3715797fc7da](https://maestro.dot.net/subscriptions?search=02e03784-16b3-4ced-b02a-3715797fc7da) - **Build**: [20260311.3](https://dev.azure.com/dnceng/internal/_build/results?buildId=2924125) ([305731](https://maestro.dot.net/channel/2/github:dotnet:xharness/build/305731)) - **Date Produced**: March 11, 2026 4:30:21 PM UTC - **Commit**: [2ceb56d52379a8f2a684bbb7a90436aa401a7420](dotnet/xharness@2ceb56d) - **Branch**: [main](https://github.com/dotnet/xharness/tree/main) - **Dependency Updates**: - From [11.0.0-prerelease.26160.2 to 11.0.0-prerelease.26161.3][1] - Microsoft.DotNet.XHarness.iOS.Shared [1]: dotnet/xharness@c32a777...2ceb56d
* Improve nullability annotations for FromArrayNative<T> (accept NSArray?, return T[]?). * Rewrite FromArrayNative<T> to use ArrayFromHandleDropNullElements. * Update CAKeyFrameAnimation.GetValuesAs to return T[]?. * Fix SecSharedCredential.RequestSharedWebCredential to handle nullability correctly. * Update XML docs for SecSharedCredential.RequestSharedWebCredential. * Add tests for SecSharedCredential.RequestSharedWebCredential. Contributes towards #17285. --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…workflow (#24876) Add workflow_dispatch trigger so the workflow can be run manually from the GitHub Actions UI on any branch, including PR branches. --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Fix a couple of places where transient strings weren't disposed. And to make sure this doesn't happen again, add a new Roslyn analyzer (RBI0042) that reports an error when transient strings are declared as local variables without the 'using' keyword. --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…1: Build ID 13567384 (#24901) This is the pull request automatically created by the OneLocBuild task in the build process to check-in localized files generated based upon translation source files (.lcl files) handed-back from the downstream localization pipeline. If there are issues in translations, visit https://aka.ms/icxLocBug and log bugs for fixes. The OneLocBuild wiki is https://aka.ms/onelocbuild and the localization process in general is documented at https://aka.ms/AllAboutLoc.
This pull request updates the following dependencies ## From https://github.com/dotnet/xharness - **Subscription**: [02e03784-16b3-4ced-b02a-3715797fc7da](https://maestro.dot.net/subscriptions?search=02e03784-16b3-4ced-b02a-3715797fc7da) - **Build**: [20260316.1](https://dev.azure.com/dnceng/internal/_build/results?buildId=2928089) ([306403](https://maestro.dot.net/channel/2/github:dotnet:xharness/build/306403)) - **Date Produced**: March 16, 2026 10:28:21 PM UTC - **Commit**: [581c6a9cd9ad947ab638bd1c81557e5eb9f0b89d](dotnet/xharness@581c6a9) - **Branch**: [main](https://github.com/dotnet/xharness/tree/main) - **Dependency Updates**: - From [11.0.0-prerelease.26164.3 to 11.0.0-prerelease.26166.1][1] - Microsoft.DotNet.XHarness.iOS.Shared [1]: dotnet/xharness@6fe0045...581c6a9
Reset patterns: - global.json - NuGet.config - eng/Version.Details.xml - eng/Version.Details.props - eng/common/*
This pull request updates the following dependencies ## From https://github.com/dotnet/dotnet - **Subscription**: [30303172-6f12-44a9-887a-ea8520fce068](https://maestro.dot.net/subscriptions?search=30303172-6f12-44a9-887a-ea8520fce068) - **Build**: [20260316.9](https://dev.azure.com/dnceng/internal/_build/results?buildId=2928041) ([306420](https://maestro.dot.net/channel/9626/github:dotnet:dotnet/build/306420)) - **Date Produced**: March 17, 2026 12:07:37 AM UTC - **Commit**: [e116d98b2087d751e7a13818cb2c14ea64af3ba3](dotnet/dotnet@e116d98) - **Branch**: [release/10.0.3xx](https://github.com/dotnet/dotnet/tree/release/10.0.3xx) - **Dependency Updates**: - From [10.0.0-beta.26165.106 to 10.0.0-beta.26166.109][1] - Microsoft.DotNet.Arcade.Sdk - Microsoft.DotNet.Build.Tasks.Feed - Microsoft.DotNet.SharedFramework.Sdk - From [10.0.300-preview.0.26165.106 to 10.0.300-preview.0.26166.109][1] - Microsoft.NET.Sdk - From [10.0.300-preview.26165.106 to 10.0.300-preview.26166.109][1] - Microsoft.TemplateEngine.Authoring.Tasks [1]: dotnet/dotnet@695853e...e116d98
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
) * Improve nullability annotations for ArrayFromHandleFunc<T> (return T?[]?). * Add an ArrayFromHandleDropNullElements overload with Converter and NSNullBehavior parameters. * Update DictionaryContainer.GetArray and GetArrayOfDictionariesValue to use ArrayFromHandleDropNullElements. * Update NSUrlSessionConfiguration.ProxyConfigurations to use NonNullArrayFromHandleDropNullElements. * Update PdfAnnotation.QuadrilateralPoints to return CGPoint[]? and use ArrayFromHandle. * Update XML docs for ArrayFromHandleFunc, ProxyConfigurations and QuadrilateralPoints. Contributes towards #17285. --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…kefile fragments for csproj anymore. (#24890) There's no need, because just running 'dotnet' runs our local .NET now.
This comment has been minimized.
This comment has been minimized.
) Parallel make (e.g. 'make all -j8', 'make world') has been hanging for a while at the end of the build. This is a long-standing issue (#13355) that has been patched three times (#15407, #21315, #22300) without fully fixing the root cause. The problem: when using parallel make, GNU Make uses a jobserver with pipe-based file descriptors to coordinate sub-makes. The dotnet CLI can start background build servers (MSBuild server, Roslyn/VBCSCompiler) that inherit these file descriptors but never close them. Make then waits for those file descriptors to close (which won't happen until the servers exit - which they typically do about 10 minutes without activity), thinking there are still active jobs. The previous workaround attempted to shut down and force-kill dotnet processes after the build via a 'shutdown-build-server' target. This approach was unreliable because: - The shutdown ran from a double-colon all-hook:: rule with no prerequisites, so with -j it could execute in parallel with (or before) the actual build, killing nothing. - Build servers started by later subdirectories (e.g. tests/) after the dotnet/ shutdown were never killed. - The process-matching regex pattern might not match all server processes. Ideally this would be fixed in when launching the build servers, by making them not inherit handles. Unfortunately this is currently not possible: dotnet/runtime#13943 (although this might change in a not so distant future: dotnet/runtime#123959) The workaround: disable build servers entirely via environment variables in Make.config: - DOTNET_CLI_USE_MSBUILD_SERVER=0: prevents the MSBuild server https://learn.microsoft.com/en-us/visualstudio/msbuild/msbuild-server https://github.com/dotnet/msbuild/blob/main/documentation/MSBuild-Server.md - UseSharedCompilation=false: prevents the Roslyn compiler server (VBCSCompiler) dotnet/roslyn#27975 - MSBUILDDISABLENODEREUSE=1: prevents MSBuild node reuse https://github.com/dotnet/msbuild/wiki/MSBuild-Tips-&-Tricks This eliminates the root cause - no background servers means no inherited file descriptors means no hang. The shutdown-build-server target and its invocations are removed as they are no longer needed. Additionally, 'make world' now prints the installed workloads at the end of the build for visibility. Build without changes: > make world 2149.57s user 258.32s system 107% cpu 37:30.19 total Build with changes: > make world 2242.74s user 286.38s system 354% cpu 11:52.55 total Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…cOS CI (#24908) The test fails intermittently when the keychain has stale entries from previous runs, causing Query to return ItemNotFound while Add returns DuplicateItem. Fix the flakiness with three changes: - Clean up any stale keychain entry before the test starts - In SaveUserPassword, handle the DuplicateItem race by removing the stale entry and retrying the add - Wrap the test body in try/finally to ensure cleanup on failure - Fix the missing $ in TEST 3's interpolated string assertion Fixes #24860 --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…lization resources from other assemblies. (#24899)
…24878) When disposing an NSUrlSessionHandler backed by a background NSUrlSession and immediately creating a new handler with the same background session identifier, the new session could fail with 'Task created in a session that has been invalidated'. This happened because InvalidateAndCancel() is asynchronous - it marks the session for invalidation but doesn't wait for it to complete. Apple reuses the same native session object for background sessions with the same identifier, so creating a new session before invalidation completes returns the already-invalidated session. Fix by detecting this scenario in the test, and marking the test as inconclusive. Fixes #24376 --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…uments. Fixes #24892. (#24911) The PlatformTypeMappingMassager did not recurse into child nodes (such as type arguments inside Action<> or Func<>) because the VisitMemberType and VisitSimpleType overrides did not call their base implementations. This meant that types like NSURLResponse inside Action<NSData, NSURLResponse> were never mapped to their .NET equivalents (NSUrlResponse). Fix by calling base.VisitMemberType/VisitSimpleType before processing the type itself, so children (type arguments) are mapped first. Added a test case with a block parameter containing mapped types. Fixes #24892. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
… universal build.
✅ [CI Build #951e10f] Build passed (Build packages) ✅Pipeline on Agent |
✅ [PR Build #951e10f] Build passed (Detect API changes) ✅Pipeline on Agent |
✅ [CI Build #951e10f] Build passed (Build macOS tests) ✅Pipeline on Agent |
✅ API diff for current PR / commitNET (empty diffs)✅ API diff vs stableNET (empty diffs)ℹ️ Generator diffGenerator Diff: vsdrops (html) vsdrops (raw diff) gist (raw diff) - Please review changes) Pipeline on Agent |
This comment has been minimized.
This comment has been minimized.
🚀 [CI Build #951e10f] Test results 🚀Test results✅ All tests passed on VSTS: test results. 🎉 All 155 tests passed 🎉 Tests counts✅ cecil: All 1 tests passed. Html Report (VSDrops) Download macOS tests✅ Tests on macOS Sonoma (14): All 5 tests passed. Html Report (VSDrops) Download Pipeline on Agent |
I detected changes in the main branch which have not been merged yet to net11.0. I'm a robot and am configured to help you automatically keep net11.0 up to date, so I've opened this PR.
This PR merges commits made on main by the following committers:
Instructions for merging from UI
This PR will not be auto-merged. When pull request checks pass, complete this PR by creating a merge commit, not a squash or rebase commit.
If this repo does not allow creating merge commits from the GitHub UI, use command line instructions.
Instructions for merging via command line
Run these commands to merge this pull request from the command line.
or if you are using SSH
After PR checks are complete push the branch
Instructions for resolving conflicts
Instructions for updating this pull request
Contributors to this repo have permission update this pull request by pushing to the branch 'merge/main-to-net11.0'. This can be done to resolve conflicts or make other changes to this pull request before it is merged.
The provided examples assume that the remote is named 'origin'. If you have a different remote name, please replace 'origin' with the name of your remote.
or if you are using SSH
Contact .NET Core Engineering (dotnet/dnceng) if you have questions or issues.
Also, if this PR was generated incorrectly, help us fix it. See https://github.com/dotnet/arcade/blob/main/.github/workflows/scripts/inter-branch-merge.ps1.