Skip to content

[xcode26.4] Merge remote-tracking branch main into xcode26.4#24910

Merged
dalexsoto merged 15 commits intoxcode26.4from
dev/alex/ytt-mainmerge
Mar 18, 2026
Merged

[xcode26.4] Merge remote-tracking branch main into xcode26.4#24910
dalexsoto merged 15 commits intoxcode26.4from
dev/alex/ytt-mainmerge

Conversation

@dalexsoto
Copy link
Copy Markdown
Member

No description provided.

dotnet-maestro bot and others added 15 commits March 16, 2026 13:37
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
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
)

* 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.
)

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>
@dalexsoto dalexsoto requested a review from rolfbjarne as a code owner March 17, 2026 14:11
@vs-mobiletools-engineering-service2
Copy link
Copy Markdown
Collaborator

✅ [PR Build #7afea30] Build passed (Detect API changes) ✅

Pipeline on Agent
Hash: 7afea30b1ee263a4a211751ed60b9e7e7c86da2f [PR build]

@vs-mobiletools-engineering-service2
Copy link
Copy Markdown
Collaborator

✅ API diff for current PR / commit

NET (empty diffs)

✅ API diff vs stable

NET (empty diffs)

ℹ️ Generator diff

Generator Diff: vsdrops (html) vsdrops (raw diff) gist (raw diff) - Please review changes)

Pipeline on Agent
Hash: 7afea30b1ee263a4a211751ed60b9e7e7c86da2f [PR build]

@vs-mobiletools-engineering-service2
Copy link
Copy Markdown
Collaborator

✅ [CI Build #7afea30] Build passed (Build packages) ✅

Pipeline on Agent
Hash: 7afea30b1ee263a4a211751ed60b9e7e7c86da2f [PR build]

@vs-mobiletools-engineering-service2
Copy link
Copy Markdown
Collaborator

✅ [CI Build #7afea30] Build passed (Build macOS tests) ✅

Pipeline on Agent
Hash: 7afea30b1ee263a4a211751ed60b9e7e7c86da2f [PR build]

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2
Copy link
Copy Markdown
Collaborator

🔥 [CI Build #7afea30] Test results 🔥

Test results

❌ Tests failed on VSTS: test results

1 tests crashed, 0 tests failed, 155 tests passed.

Failures

❌ windows tests

🔥 Failed catastrophically on VSTS: test results - windows (no summary found).

Html Report (VSDrops) Download

Successes

✅ cecil: All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (iOS): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (MacCatalyst): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (macOS): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (Multiple platforms): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (tvOS): All 1 tests passed. Html Report (VSDrops) Download
✅ framework: All 2 tests passed. Html Report (VSDrops) Download
✅ fsharp: All 4 tests passed. Html Report (VSDrops) Download
✅ generator: All 5 tests passed. Html Report (VSDrops) Download
✅ interdependent-binding-projects: All 4 tests passed. [attempt 2] Html Report (VSDrops) Download
✅ introspection: All 8 tests passed. Html Report (VSDrops) Download
✅ linker: All 44 tests passed. [attempt 2] Html Report (VSDrops) Download
✅ monotouch (iOS): All 11 tests passed. Html Report (VSDrops) Download
✅ monotouch (MacCatalyst): All 15 tests passed. Html Report (VSDrops) Download
✅ monotouch (macOS): All 12 tests passed. Html Report (VSDrops) Download
✅ monotouch (tvOS): All 11 tests passed. Html Report (VSDrops) Download
✅ msbuild: All 2 tests passed. Html Report (VSDrops) Download
✅ sharpie: All 1 tests passed. Html Report (VSDrops) Download
✅ xcframework: All 4 tests passed. [attempt 2] Html Report (VSDrops) Download
✅ xtro: All 1 tests passed. Html Report (VSDrops) Download

macOS tests

✅ Tests on macOS Monterey (12): All 5 tests passed. Html Report (VSDrops) Download
✅ Tests on macOS Ventura (13): All 5 tests passed. Html Report (VSDrops) Download
✅ Tests on macOS Sonoma (14): All 5 tests passed. Html Report (VSDrops) Download
✅ Tests on macOS Sequoia (15): All 5 tests passed. Html Report (VSDrops) Download
✅ Tests on macOS Tahoe (26): All 5 tests passed. Html Report (VSDrops) Download

Pipeline on Agent
Hash: 7afea30b1ee263a4a211751ed60b9e7e7c86da2f [PR build]

@dalexsoto dalexsoto merged commit 1a21627 into xcode26.4 Mar 18, 2026
45 of 48 checks passed
@dalexsoto dalexsoto added this to the xcode26.4 milestone Mar 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants