Skip to content

Conversation

@rolfbjarne
Copy link
Member

No description provided.

dotnet-maestro bot and others added 27 commits January 21, 2026 12:42
This pull request updates the following dependencies

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

- **Subscription**: [7bea2f72-36de-4307-8c02-e200db7ccd92](https://maestro.dot.net/subscriptions?search=7bea2f72-36de-4307-8c02-e200db7ccd92)
- **Build**: [20260112.8](https://dev.azure.com/dnceng/internal/_build/results?buildId=2877463) ([297004](https://maestro.dot.net/channel/5173/github:dotnet:dotnet/build/297004))
- **Date Produced**: January 13, 2026 5:14:26 AM UTC
- **Commit**: [976695d40cfde0801c78b8fed85ca80e997da085](dotnet/dotnet@976695d)
- **Branch**: [release/10.0.1xx](https://github.com/dotnet/dotnet/tree/release/10.0.1xx)

- **Dependency Updates**:
  - From [10.0.2 to 10.0.3][14]
     - Microsoft.NET.Runtime.MonoTargets.Sdk
     - Microsoft.NET.ILLink.Tasks
     - Microsoft.NETCore.App.Ref
  - From [10.0.0-beta.25612.111 to 10.0.0-beta.26062.108][14]
     - Microsoft.DotNet.Arcade.Sdk
     - Microsoft.DotNet.Build.Tasks.Feed
     - Microsoft.DotNet.SharedFramework.Sdk
  - From [0.11.5-alpha.25612.111 to 0.11.5-alpha.26062.108][14]
     - Microsoft.DotNet.Cecil
  - From [10.0.2-servicing.25612.111 to 10.0.3-servicing.26062.108][14]
     - Microsoft.NET.ILLink
  - From [10.0.102-servicing.25612.111 to 10.0.103-servicing.26062.108][14]
     - Microsoft.NET.Sdk
  - From [10.0.102 to 10.0.103][14]
     - Microsoft.TemplateEngine.Authoring.Tasks

[14]: dotnet/dotnet@9441e5b...976695d
…ar. (#24530)

* This fixes an issue with incorrect registrar code generation due to not finding assemblies that InitializeCommon sets up.
* mmp already does this.
…ld projects (#24522)

This way we actually get nullability warnings from the compiler.

And then fix all the nullability warnings.
…es remotely. (#24518)

Adjust the FilterStaticFrameworks and GetFullPaths tasks to not copy any empty files
from Windows to Mac, because that would most likely overwrite an existing non-empty
file on the Mac.

Fixes https://devdiv.visualstudio.com/DevDiv/_workitems/edit/2679691.
…1: Build ID 13145292 (#24540)

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.
…1: Build ID 13145291 (#24539)

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.
…1: Build ID 13145176 (#24537)

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/macios

- **Subscription**: [c0371266-dd6f-4959-822b-decc72d2d668](https://maestro.dot.net/subscriptions?search=c0371266-dd6f-4959-822b-decc72d2d668)
- **Build**: [20260121.2](https://dev.azure.com/devdiv/DevDiv/_build/results?buildId=13137385) ([298257](https://maestro.dot.net/channel/3884/github:dotnet:macios/build/298257))
- **Date Produced**: January 21, 2026 3:32:25 PM UTC
- **Commit**: [6406450](6406450)
- **Branch**: [release/9.0.1xx](https://github.com/dotnet/macios/tree/release/9.0.1xx)

- **Dependency Updates**:
  - From [26.0.9784 to 26.0.9785][1]
     - Microsoft.iOS.Sdk.net9.0_26.0
     - Microsoft.MacCatalyst.Sdk.net9.0_26.0
     - Microsoft.macOS.Sdk.net9.0_26.0
     - Microsoft.tvOS.Sdk.net9.0_26.0

[1]: e6a0fb7...6406450
…24541)

At least for all tasks that sets the SdkDevPath (a future pull request will
ensure that all tasks set SdkDevPath).
* Make mtouch able to what mmp does (aka run the partial static registrar for macOS).
* Simplify mtouch a bit, since it's only doing a single thing, and it's not a tool we publish, so we don't have to be user-friendly.
* Remove mmp.
* Remove dead code.
* Simplify conditional compilation symbols (LEGACY_TOOLS is now used instead of MTOUCH/MMP).
…vailable to run on. (#24542)

This consists of two parts:

* Add an MSBuild target that lists all the available devices (`ComputeAvailableDevices`), by returning them in a `$(Devices)` item group.
* Add support for the `$(Device)` property to specify the device or simulator to use.

Regarding the device list, we'll filter the returned list by:

* Platform (don't return an Apple TV simulator for an iOS app).
* Minimum OS version (not return an iOS 18.0 device when the app's minimum OS version is 26.0).
* Only devices that are actually available, as reported by `devicectl` or `simctl`.
* Don't return an arm64 simulator on an x64 machine.
* RuntimeIdentifier, if specified on the command-line.

References:

* dotnet/android#10576
* https://github.com/dotnet/sdk/blob/2b9fc02a265c735f2132e4e3626e94962e48bdf5/documentation/specs/dotnet-run-for-maui.md

Fixes #23995.
Backport of #24279.
…ssionHandler if the background session is in use. (#24545)

Hopefully fixes this test failure:

    [FAIL] DisposeAndRecreateBackgroundSessionHandler :   Second request exception
      Expected: null
      But was:  <System.Net.Http.HttpRequestException: Could not communicate with background transfer service
      ---> Foundation.NSErrorException: Error Domain=NSURLErrorDomain Code=-996 "Could not communicate with background transfer service" UserInfo={_NSURLErrorRelatedURLSessionTaskErrorKey=(
           "BackgroundDataTask <FE008EA4-3168-4E2F-B066-9565EEC47E67>.<1>"
          ), NSLocalizedDescription=Could not communicate with background transfer service, _NSURLErrorFailingURLSessionTaskErrorKey=BackgroundDataTask <FE008EA4-3168-4E2F-B066-9565EEC47E67>.<1>}
      --- End of inner exception stack trace ---
      at System.Net.Http.NSUrlSessionHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) in /Users/builder/azdo/_work/4/s/macios/src/Foundation/NSUrlSessionHandler.cs:line 595
      at System.Net.Http.HttpClient.GetByteArrayAsyncCore(HttpRequestMessage request, CancellationToken cancellationToken)
      at MonoTests.System.Net.Http.NSUrlSessionHandlerTest.<>c.<<DisposeAndRecreateBackgroundSessionHandler>b__0_1>d.MoveNext() in /Users/builder/azdo/_work/1/s/macios/tests/monotouch-test/System.Net.Http/NSUrlSessionHandlerTest.cs:line 47
      --- End of stack trace from previous location ---
      at TestRuntime.TryRunAsync(TimeSpan timeout, Task startTask, Task completionTask, UIImage imageToShow, Exception& exception) in /Users/builder/azdo/_work/1/s/macios/tests/common/TestRuntime.RunAsync.cs:line 119>
      at MonoTests.System.Net.Http.NSUrlSessionHandlerTest.DisposeAndRecreateBackgroundSessionHandler() in /Users/builder/azdo/_work/1/s/macios/tests/monotouch-test/System.Net.Http/NSUrlSessionHandlerTest.cs:line 60
… (task.Execute ())' (#24550)

Use 'ExecuteTask' to execute a task instead of 'Assert.IsTrue (task.Execute ())',
because 'ExecuteTask' has much better failure reporting.
…20260123065707348 to main (#24554)

LEGO: Pull request from lego/hb_5df43909-4a19-4f55-bc3f-9ea8fccf3c82_20260123065707348 to main with localized lcls
…20260123185258741 to main (#24557)

LEGO: Pull request from lego/hb_5df43909-4a19-4f55-bc3f-9ea8fccf3c82_20260123185258741 to main with localized lcls
#24549)

Add support for ACToolPath, IBToolPath and TextureAtlasPath to specify the location
of the corresponding executables.

And if not specified, then locate these executables using `xcrun`.

Also make these process invocations cancellable.
…g dictionaries. (#24556)

* Add two validation functions, one for when FromObjectsAndKeys is called with
  a count, and one for when FromObjectsAndKeys is called without a count.
* Call the corresponding validation function in every FromObjectsAndKeys implementation.
* In every FromObjectsAndKeys function without a count parameter, forward the implementation
  to the FromObjectsAndKeys with a count parameter.
* Add numerous tests.

Consequences:

* Specifying count=0 now succeed (creating an empty dictionary).
* Fixed numerous cases where the count parameter was ignored.
* Allow arrays of different lengths for the key and values array parameters when
  specifying a count.
…1: Build ID 13181177 (#24567)

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.
…ts. Fixes #24236. (#24566)

This has the same underlying cause as #24262, but the fix for #24262 was insufficient.

The fix for #24262 ensured that if an event is listening for a protocol callback, then the corresponding protocol member implementation wouldn't be trimmed away.

However, it didn't prevent protocol members from being trimmed if no event was listening for that protocol member to be called, which is a problem when the protocol member in question is a required protocol member, and native code would just call it without checking whether an implemented existed.

For the bug in question, what happens is this:

```cs
var mgr = new CBCentralManager (new DispatchQueue ("com.xamarin.tests.ios-plain"));
// Uncomment to trigger bug, 'CBCentralManagerDelegate centralManagerDidUpdateState:' is a required protocol member
// mgr.UpdatedState += (sender, e) => {
//	Console.WriteLine ("State: " + mgr.State);
// };
mgr.DiscoveredPeripheral += (sender, e) => { };
mgr.ScanForPeripherals ();
```

In this case, there's an `ICBCentralManagerDelegate` instance assigned to `mgr.Delegate` (when an event handler was attached to the `DiscoveredPeripheral` event), but that `ICBCentralManagerDelegate` instance does not have an implementation for `ICBCentralManagerDelegate.UpdateState` (aka `CBCentralManagerDelegate centralManagerDidUpdateState:`), because it was trimmed away.

This causes the bug when `CBCentralManager` calls its delegate's `centralManagerDidUpdateState:` selector.

The fix is to always preserve all protocol members implemented by the internal class that implements the protocol for event handling purposes.

Fixes #24236.
…ssues. (#24565)

Also delete a little bit of dead code in the process.

This was mostly done by Copilot, which summarizes its work like this (which
may not be entirely accurate, because some of Copilot's changes were slightly
modified):

---

Fix nullability warnings/errors in files used by the dotnet-linker project,
excluding Registrar.cs and StaticRegistrar.cs which require more extensive
refactoring.

Changes:
- Make fields nullable where they may not be initialized (Cache, DlsymAssemblies,
  CustomLinkFlags, DeploymentTarget, SdkVersion, etc.)
- Add null checks before dereferencing nullable fields
- Make method parameters nullable where null is a valid argument
- Use var for variable declarations where type is obvious
- Use null-coalescing operators for safe string formatting
- Add guard clauses with meaningful exceptions for required nullable fields

Files modified:
- Application.cs: Made many fields nullable, added null checks for nullable
  value types, added exception throws for unset required values
- Assembly.cs: Added null checks for Cache and DeploymentTarget
- Driver.cs: Fixed null dereference for NativeSdkVersion
- Driver.execution.cs: Made Dictionary and Action parameters nullable
- ErrorHelper.tools.cs: Made fields and method parameters nullable
- Frameworks.cs: Made static framework collections nullable
- Target.cs: Made LinkContext and framework lookup nullable
- TargetFramework.cs: Made identifier/version/profile nullable, fixed Equals
- LinkerConfiguration.cs: Added null check for Cache
- ManagedRegistrarStep.cs: Added null checks for property accessor
- PreserveSmartEnumConversions.cs: Fixed null arg with coalescing

Registrar.cs and StaticRegistrar.cs are excluded from this change as they
contain deeply interconnected internal classes where making fields nullable
causes cascading effects requiring comprehensive refactoring.
This is file 1 of 30 files with nullability disabled in UIKit.

* Enable nullability (#nullable enable).
* Remove redundant [SupportedOSPlatform] attributes (groups of 4 without version numbers and no [UnsupportedOSPlatform] or [ObsoletedOSPlatform] attributes).
* Use ArgumentNullException.ThrowIfNull() instead of manual null checks.
* Add nullable annotations (NSObject?, UIView?).
* Improve XML documentation comments: remove 'To be added.' placeholders, fix typos, add missing docs, add 'see cref' references, fix formatting.

Contributes towards #17285.

---------

Co-authored-by: Copilot <copilot@github.com>
* Enable nullability.
* Reuse existing code to create the native array.
* Add tests.
* Add xml docs.
* Update nullability in some of the consumers of these methods whenever it makes sense.
* Add a 'nint count' overload to a few methods that takes 'int count', so that  we use 'nint' for 'count' everywhere, and deprecated the 'int count' overloads.

Contributes towards #17285.
@rolfbjarne rolfbjarne requested a review from Copilot January 31, 2026 01:03
@rolfbjarne rolfbjarne enabled auto-merge January 31, 2026 01:03
@rolfbjarne rolfbjarne removed request for emaf and mauroa January 31, 2026 01:03
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

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.

4 participants