Граф коммитов

18098 Коммитов

Автор SHA1 Сообщение Дата
Rolf Bjarne Kvinge 59179c4bb7 [dotnet-linker] Improve error reporting by not forgetting about original exceptions.
This way we report the stack trace of the original exception in build logs.
2024-10-17 11:13:44 +02:00
Rolf Bjarne Kvinge d3782b49af
[tests] Ignore a few tests that fail on tvOS Simulator/arm64. (#21451)
Ref: https://github.com/xamarin/xamarin-macios/issues/19781
2024-10-16 22:00:16 +02:00
Rolf Bjarne Kvinge 0674debc74
[devops] Clean up before and after running the Windows tests remotely. (#21454)
Also collect any crash reports from the remote machine.
2024-10-16 21:59:59 +02:00
Rolf Bjarne Kvinge 12e1e3308a
[devops] Make the prepare-for-remote-tests.sh script callable locally. (#21455)
A dual-purpose script is always better than a single-purpose script!

This also removes a dependency on 'xamarin-macios' being the repository
name.
2024-10-16 21:59:52 +02:00
Manuel de la Pena 8e0cec382c [RGen] Teach been to ignore rgen types. (#21449)
Teach our bgen to ignore those types that have been marked as a rgen
BindingType. The code adds a new smart enum in the sources that should
not be processed by bgen and therefore should not have the smart enum
extension method. You can verify that this is try by looking at the API
diff:

<img width="560" alt="Screenshot 2024-10-15 at 14 58 00"
src="https://github.com/user-attachments/assets/83790ae6-d94a-424f-8f70-e33bde7c4f22">
2024-10-16 13:11:21 -04:00
Rolf Bjarne Kvinge 23dffef8c4
[xharness] Remove a lot of legacy code. (#21419) 2024-10-16 19:07:09 +02:00
VS MobileTools Engineering Service 2 9013ae4f83
[nuget-msi-convert] Support improved VS component IDs (#21438)
Context: b2d3a3a355
Context: https://github.com/xamarin/yaml-templates/pull/339

The VS insertion manifest generation has been updated to use new VS
component IDs required for .NET 9+.

Backport of #21423

---------

Co-authored-by: Peter Collins <pecolli@microsoft.com>
2024-10-16 14:47:47 +02:00
Rolf Bjarne Kvinge a123e460f5
[watchOS] Remove the build logic for watchOS. (#21440) 2024-10-16 12:30:13 +02:00
Rolf Bjarne Kvinge 1fddf207e4
[msbuild] Port Metal and MetalLib to subclass XamarinTask. Fixes #21437. (#21439)
This has a few advantages:

* We simplify and unify more of our code.
* We have more control over the error reporting / logging behavior.

Additionally:

* Use 'xcrun' to invoke 'metal' and 'metallib' (partial fix for #3931).
* Allow for overriding the path to the command-line tool in question.
* Add support for cancellation.
* Fix nullability.

Fixes https://github.com/xamarin/xamarin-macios/issues/21437.
2024-10-16 11:36:52 +02:00
Rolf Bjarne Kvinge 34d1fca7f6
[StoreKit] Bind AppStore.requestReview. Fixes #21410. (#21441)
The existing Objective-C class to request an App Store review (SKStoreReviewController) is deprecated in Xcode 16+, and it doesn't even work on the corresponding OS versions.

The replacement API is Swift-only, but luckily it's a very simple API (just a static method), so it's possible to bind it manually.

This required a few other changes/improvements:

* Add support for Swift code in our runtime.

* Just to keep the changes to a minimum, bump the min OS version for legacy code to match the .NET min OS versions. This is because our build logic uses the legacy min versions when compiling native code (a more involved fix would be to update all the build logic to build native code to use the .NET min OS versions, but that's not the point of this PR, so I took the easy route). Fixes #10659.

I've tested the method locally, and it seems to work fine, but I've still marked
it as experimental for now. There are no unit tests because calling the method will
put up a dialog, which won't work correctly in unit tests.

Fixes https://github.com/xamarin/xamarin-macios/issues/21410.
Fixes https://github.com/xamarin/xamarin-macios/issues/10659.
2024-10-16 11:06:47 +02:00
Rolf Bjarne Kvinge 15348e0ff3
[msbuild] Make sure the build doesn't keep going if the ILLink task fails. (#21393)
Here's an example failure that didn't stop the build:

    Target Name=_RunILLink Project=sampleproj.csproj
        Building target "_RunILLink" completely.
        Output file "obj\Release\net8.0-ios\ios-arm64\linked\Link.semaphore" does not exist.
        [...]
        Xamarin.MacDev.Tasks.ILLink
            [...]
            C:\Program Files\dotnet\packs\Microsoft.iOS.Windows.Sdk.net8.0_17.5\17.5.8030\tools\msbuild\iOS\Xamarin.iOS.Common.After.targets(364,3): [xma][err]: An exception occurred in the task 'ILLink'
            C:\Program Files\dotnet\packs\Microsoft.iOS.Windows.Sdk.net8.0_17.5\17.5.8030\tools\msbuild\iOS\Xamarin.iOS.Common.After.targets(364,3): The post for client build1460814608Ilian on topic xvs/build/1.14.0.6/execute-task/ecacau/de6ed16002fILLink has been cancelled
       at Xamarin.Messaging.Client.MessagingClient.PostAsync[TRequest,TResponse](TRequest message, String topic, MessagePriority priority, CancellationToken cancellationToken, Boolean retain, Int32 timeoutSecs) in D:\a\_work\1\s\src\Xamarin.Messaging.Client\MessagingClient.cs:line 231
       at Xamarin.Messaging.Ssh.MessagingRunnerPro.ExecuteWithRetryAsync[TResult](Func`1 executeDelegate, IMessagingAnalyticsAction analytics, Int32 attempts) in D:\a\_work\1\s\src\Xamarin.Messaging.Ssh\MessagingRunnerPro.cs:line 57
       at Xamarin.Messaging.Ssh.MessagingRunnerPro.ThrowIfConnected(ExceptionDispatchInfo exceptionInfo, IMessagingAnalyticsAction analytics) in D:\a\_work\1\s\src\Xamarin.Messaging.Ssh\MessagingRunnerPro.cs:line 149
       at Xamarin.Messaging.Ssh.MessagingRunnerPro.HandleExceptionAsync[TResult](ExceptionDispatchInfo exceptionInfo, Func`1 reentrancyDelegate, IMessagingAnalyticsAction analytics, Int32 attempts) in D:\a\_work\1\s\src\Xamarin.Messaging.Ssh\MessagingRunnerPro.cs:line 97
       at Xamarin.Messaging.Ssh.MessagingRunnerPro.ExecuteWithRetryAsync[TResult](Func`1 executeDelegate, IMessagingAnalyticsAction analytics, Int32 attempts) in D:\a\_work\1\s\src\Xamarin.Messaging.Ssh\MessagingRunnerPro.cs:line 64
       at Xamarin.Messaging.Ssh.MessagingRunnerPro.HandleExceptionAsync[TResult](ExceptionDispatchInfo exceptionInfo, Func`1 reentrancyDelegate, IMessagingAnalyticsAction analytics, Int32 attempts) in D:\a\_work\1\s\src\Xamarin.Messaging.Ssh\MessagingRunnerPro.cs:line 103
       at Xamarin.Messaging.Ssh.MessagingRunnerPro.ExecuteWithRetryAsync[TResult](Func`1 executeDelegate, IMessagingAnalyticsAction analytics, Int32 attempts) in D:\a\_work\1\s\src\Xamarin.Messaging.Ssh\MessagingRunnerPro.cs:line 64
       at Xamarin.Messaging.Ssh.MessagingRunnerPro.ExecuteWithRetryAsync[TResult](Func`1 executeDelegate, Int32 attempts) in D:\a\_work\1\s\src\Xamarin.Messaging.Ssh\MessagingRunnerPro.cs:line 39
       at Xamarin.Messaging.Ssh.MessagingClientPro.PostAsync[TMessage,TResult](TMessage request, CancellationToken cancellationToken, Boolean retain, Int32 timeoutSecs) in D:\a\_work\1\s\src\Xamarin.Messaging.Ssh\MessagingClientPro.cs:line 144
       at Xamarin.Messaging.Build.Client.BuildClient.RunMessagingAsync[TMessage,TResult](TMessage message, Int32 timeoutSecs) in D:\a\_work\1\s\src\MSBuild\Xamarin.Messaging.Build.Client\BuildClient.cs:line 293
       at Xamarin.Messaging.Build.Client.BuildClient.ExecuteTaskAsync(String task, String inputs) in D:\a\_work\1\s\src\MSBuild\Xamarin.Messaging.Build.Client\BuildClient.cs:line 65
       at Xamarin.Messaging.Build.Client.TaskRunner.RunAsync(Task task) in D:\a\_work\1\s\src\MSBuild\Xamarin.Messaging.Build.Client\TaskRunner.cs:line 56
            Errors
                C:\Program Files\dotnet\packs\Microsoft.iOS.Windows.Sdk.net8.0_17.5\17.5.8030\tools\msbuild\iOS\Xamarin.iOS.Common.After.targets(364,3): MessagingException: The post for client build1460814608Ilian on topic xvs/build/1.14.0.6/execute-task/ecacau/de6ed16002fILLink has been cancelled
    OperationCanceledException: The operation was canceled.
     [sampleproj.csproj]
                C:\Program Files\dotnet\packs\Microsoft.iOS.Windows.Sdk.net8.0_17.5\17.5.8030\tools\msbuild\iOS\Xamarin.iOS.Common.After.targets(364,3): error MSB4018: The "Xamarin.MacDev.Tasks.ILLink" task failed unexpectedly.
    System.AggregateException: One or more errors occurred. (One or more errors occurred. (An error occurred while executing the operation and the connection could not be reestablished))
     ---> System.AggregateException: One or more errors occurred. (An error occurred while executing the operation and the connection could not be reestablished)
     ---> Xamarin.Messaging.Exceptions.MessagingException: An error occurred while executing the operation and the connection could not be reestablished
     ---> Xamarin.Messaging.Exceptions.ClientDisconnectedException: The client build1460814608Ilian has been disconnected while waiting a post response to topic xma/agents
       at Xamarin.Messaging.Client.MessagingClient.PostAsync[TRequest,TResponse](TRequest message, String topic, MessagePriority priority, CancellationToken cancellationToken, Boolean retain, Int32 timeoutSecs) in D:\a\_work\1\s\src\Xamarin.Messaging.Client\MessagingClient.cs:line 197
       at Xamarin.Messaging.Ssh.MessagingRunnerPro.ExecuteWithRetryAsync[TResult](Func`1 executeDelegate, IMessagingAnalyticsAction analytics, Int32 attempts) in D:\a\_work\1\s\src\Xamarin.Messaging.Ssh\MessagingRunnerPro.cs:line 57
       --- End of inner exception stack trace ---
       at Xamarin.Messaging.Ssh.MessagingRunnerPro.ReconnectAsync(ExceptionDispatchInfo exceptionInfo, IMessagingAnalyticsAction analytics) in D:\a\_work\1\s\src\Xamarin.Messaging.Ssh\MessagingRunnerPro.cs:line 182
       at Xamarin.Messaging.Ssh.MessagingRunnerPro.HandleExceptionAsync[TResult](ExceptionDispatchInfo exceptionInfo, Func`1 reentrancyDelegate, IMessagingAnalyticsAction analytics, Int32 attempts) in D:\a\_work\1\s\src\Xamarin.Messaging.Ssh\MessagingRunnerPro.cs:line 99
       at Xamarin.Messaging.Ssh.MessagingRunnerPro.ExecuteWithRetryAsync[TResult](Func`1 executeDelegate, IMessagingAnalyticsAction analytics, Int32 attempts) in D:\a\_work\1\s\src\Xamarin.Messaging.Ssh\MessagingRunnerPro.cs:line 64
       at Xamarin.Messaging.Ssh.MessagingRunnerPro.ExecuteWithRetryAsync[TResult](Func`1 executeDelegate, Int32 attempts) in D:\a\_work\1\s\src\Xamarin.Messaging.Ssh\MessagingRunnerPro.cs:line 39
       at Xamarin.Messaging.Ssh.MessagingClientPro.PostAsync[TMessage,TResult](TMessage request, Boolean retain, Int32 timeoutSecs) in D:\a\_work\1\s\src\Xamarin.Messaging.Ssh\MessagingClientPro.cs:line 135
       at Xamarin.Messaging.Ssh.MessagingService.RefreshAgentsStatusAsync() in D:\a\_work\1\s\src\Xamarin.Messaging.Ssh\MessagingService.cs:line 298
       at Xamarin.Messaging.Build.Client.BuildConnection.GetBuildAgentStatusAsync() in D:\a\_work\1\s\src\MSBuild\Xamarin.Messaging.Build.Client\BuildConnection.Normal.cs:line 435
       at Xamarin.Messaging.Build.Client.BuildConnection.IsBuildAgentRunningAsync() in D:\a\_work\1\s\src\MSBuild\Xamarin.Messaging.Build.Client\BuildConnection.Normal.cs:line 92
       --- End of inner exception stack trace ---
       at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
       at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
       at Xamarin.Messaging.Build.Client.BuildConnection.get_IsConnected() in D:\a\_work\1\s\src\MSBuild\Xamarin.Messaging.Build.Client\BuildConnection.Normal.cs:line 45
       at Xamarin.Messaging.Build.Client.BuildConnection.GetAsync(IBuildEngine4 engine) in D:\a\_work\1\s\src\MSBuild\Xamarin.Messaging.Build.Client\BuildConnection.Static.cs:line 50
       at Xamarin.Messaging.Build.Client.TaskRunner.DisconnectAsync(Task task) in D:\a\_work\1\s\src\MSBuild\Xamarin.Messaging.Build.Client\TaskRunner.cs:line 541
       at Xamarin.Messaging.Build.Client.TaskRunner.RunAsync(Task task) in D:\a\_work\1\s\src\MSBuild\Xamarin.Messaging.Build.Client\TaskRunner.cs:line 99
       --- End of inner exception stack trace ---
       at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
       at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
       at Xamarin.MacDev.Tasks.ILLink.Execute() in /Users/builder/azdo/_work/1/s/xamarin-macios/msbuild/Xamarin.MacDev.Tasks/Tasks/ILLink.cs:line 30
       at Microsoft.Build.BackEnd.TaskExecutionHost.Execute()
       at Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask(TaskExecutionHost taskExecutionHost, TaskLoggingContext taskLoggingContext, TaskHost taskHost, ItemBucket bucket, TaskExecutionMode howToExecuteTask)
            Messages
            [...]
        Task "Touch" skipped, due to false condition; ( '$(_ILLinkExitCode)' == '0' ) was evaluated as ( '' == '0' ).

     (and build kept going, eventually failing later on because ILLink didn't run correctly)

Ref: https://developercommunity.visualstudio.com/t/Maui-Blazor-Hybrid-App-wont-publish-to-/10750311#T-ND10763338
2024-10-16 11:01:22 +02:00
Manuel de la Pena 0f35909d56
[RGen] First inclusion of a roslyn generator for the bindings. (#21389)
We are doing the following:

1. Adding the rgen directory with the following solutions:
* Analyzer: Analyzer that will catch errors in the bindings. At the
moment it provides a single error when the BindingTypeAttribute is used
in a nont partial type.
   * Analyzer Tests: Allows tests for the analyzer.
   * Analyzer Sample: Sample project to test the analyzer.
* Code Generator: A code generator that adds the BindingTypeAttribute to
the compilcation.
   * Code Generator Tests: Allows tests for the generator.
   * Code Sample: Sample project for the code generator.
2. Make rule to build the roslyn code generator.
3. Makefile changes to add the code generator as part as the second
compilation of the bindings.

This changes add the starting gounds to move to roslyn.

---------

Co-authored-by: GitHub Actions Autoformatter <github-actions-autoformatter@xamarin.com>
Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
Co-authored-by: Alex Soto <alex@soto.dev>
2024-10-15 14:56:09 -04:00
Manuel de la Pena 6abfff6890
[CI] Remove the APIScan stage since we have a pipeline to run it. (#21432)
In the process of ensuring that we can run tests a single time, we are
removing all extra stages from the CI. We have move the APIScan to the
following pipelines.

- CI Pipeline:
https://devdiv.visualstudio.com/DevDiv/_build?definitionId=24050
- PR Pipeline:
https://devdiv.visualstudio.com/DevDiv/_build?definitionId=24049
2024-10-15 10:00:20 -04:00
Rolf Bjarne Kvinge 209de6f297
[devops] Fix calling the show_bot_info.ps1 script. (#21428) 2024-10-15 09:25:44 +02:00
Rolf Bjarne Kvinge 59b6a6119d
[tests] Ignore output that looks like errors when installing .NET on Windows. (#21430)
Just trust the exit code instead.

This way the installation doesn't fail due to random output.
2024-10-15 09:25:21 +02:00
Rolf Bjarne Kvinge a10899ef62
[tests] Improve failure message when a process times out. (#21429) 2024-10-15 09:25:03 +02:00
Rolf Bjarne Kvinge e63de079a6
[tests] Remove dead code. (#21422)
This logic was intented to zip up the .NET unit tests to run them on Windows,
but in the end we went with a different approach that doesn't require zipping.
2024-10-15 09:24:47 +02:00
Rolf Bjarne Kvinge 395aca6e74
[compare-commits] Simplify comment about unclean working directory. (#21433) 2024-10-15 09:24:29 +02:00
dotnet-maestro[bot] e9e4072f94
[main] Update dependencies from dotnet/xharness (#21431)
This pull request updates the following dependencies

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

- **Subscription**: 601bc5e1-1cae-44b5-cf5f-08db9342aa2f
- **Build**: 20241011.1
- **Date Produced**: October 11, 2024 7:48:41 AM UTC
- **Commit**: 8c6d5afd99c713777165f4378462085a5679c223
- **Branch**: refs/heads/main

- **Updates**:
  - **Microsoft.DotNet.XHarness.iOS.Shared**: [from 10.0.0-prerelease.24509.1 to 10.0.0-prerelease.24511.1][1]

[1]: 973ef6c89b...8c6d5afd99
2024-10-15 09:16:32 +02:00
dotnet-maestro[bot] 887e67c8b2
[main] Update dependencies from dotnet/arcade (#21374)
This pull request updates the following dependencies

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

- **Subscription**: 6ddbc71e-6118-4fea-a928-58d1b2579c38
- **Build**: 20241009.3
- **Date Produced**: October 9, 2024 10:05:57 PM UTC
- **Commit**: 05c72bb3c9b38138276a8029017f2ef905dcc7fa
- **Branch**: refs/heads/release/9.0

- **Updates**:
  - **Microsoft.DotNet.Build.Tasks.Feed**: [from 9.0.0-beta.24508.3 to 9.0.0-beta.24509.3][4]

[4]: f8071c4233...05c72bb3c9
2024-10-14 09:47:00 +02:00
dotnet-maestro[bot] 02ad20920b
[main] Update dependencies from dotnet/xharness (#21381)
This pull request updates the following dependencies

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

- **Subscription**: 601bc5e1-1cae-44b5-cf5f-08db9342aa2f
- **Build**: 20241009.1
- **Date Produced**: October 9, 2024 2:00:06 PM UTC
- **Commit**: 973ef6c89b67f2f746f62c413e3aeeb01a9034a3
- **Branch**: refs/heads/main

- **Updates**:
  - **Microsoft.DotNet.XHarness.iOS.Shared**: [from 10.0.0-prerelease.24501.1 to 10.0.0-prerelease.24509.1][2]

[2]: 2b6293f14c...973ef6c89b
2024-10-14 09:46:34 +02:00
Manuel de la Pena 57380a58b8
[CI] Fix the download step (#21398)
Allow to download the artifacts from the build that triggered the
pipeline.
2024-10-13 17:17:29 -04:00
Rolf Bjarne Kvinge 0482be8bd3
[devops] Remove the msitools dependency. (#21415)
According to @pjcollins the msi files we were generated aren't used
anywhere, so this should be safe.
2024-10-11 16:34:16 +02:00
Rolf Bjarne Kvinge 48f5591829
[devops] Improved diagnostics and implement deadlocked process termination. (#21317)
* Unify the code to collect diagnostic information about a bot.
* Unify some of the cleanup code to prepare a bot as well.
* Implement code to terminate processes on a bot that's used more than a day
  of CPU (presumably these processes are stuck for some reason).
2024-10-11 13:26:45 +02:00
Rolf Bjarne Kvinge 2f7c126ac9
[dotnet] Fix building universal apps using NativeAOT when the default RuntimeIdentifiers value is set. Fixes #19391. (#21412)
We need to set "UseCurrentRuntimeIdentifier=false", we must only set it for
the outer build for universal builds - when `RuntimeIdentifiers` is set - but
that means we can only do it *after* we set any default value for
`RuntimeIdentifiers`.

Fixes https://github.com/xamarin/xamarin-macios/issues/19391#issuecomment-2405499973.
2024-10-11 12:13:29 +02:00
Rolf Bjarne Kvinge 657f0169c5
[tools] Ignore any interpreter settings when the current runtime isn't MonoVM. Fixes #20398. (#21406)
Tests that exercise this code path will be included in a different PR.

Fixes https://github.com/xamarin/xamarin-macios/issues/20398.
2024-10-11 09:32:15 +02:00
Rolf Bjarne Kvinge 22cb6e8cb2
[devops] Remove the wget dependency. (#21405)
It doesn't look like it's used anywhere (and I don't have it on my system either).
2024-10-11 08:37:41 +02:00
Rolf Bjarne Kvinge 46ed02ba8c
[tests] Ignore a few tests that fail on iOS Simulator/arm64. (#21403)
Ref: https://github.com/xamarin/xamarin-macios/issues/19781
2024-10-11 08:36:29 +02:00
Rolf Bjarne Kvinge 43cd02dc23
[msbuild] Improve the error message when the SupportedOSPlatformVersion is lower than the minimum. Fixes #21368. (#21369)
This isn't very user friendly:

    ILLink : unknown error IL7000: An error occurred while executing the custom linker steps. Please review the build log for more information.
    ILLINK : error MT0073: Microsoft.iOS 18.0.8337 does not support a deployment target of 10.0 for iOS (the minimum is 11.0). Please select a newer deployment target in your project's Info.plist or change the SupportedOSPlatformVersion property in your project file.
    ILLINK : error MT2301: The linker step 'Setup' failed during processing: Microsoft.iOS 18.0.8337 does not support a deployment target of 10.0 for iOS (the minimum is 11.0). Please select a newer deployment target in your project's Info.plist or change the SupportedOSPlatformVersion property in your project file.
    [...]/packages/microsoft.net.illink.tasks/8.0.8/build/Microsoft.NET.ILLink.targets(87,5): error NETSDK1144: Optimizing assemblies for size failed. Optimization can be disabled by setting the PublishTrimmed property to false.

So improve this to only show a single error message:

    The SupportedOSPlatformVersion value '10.0' in the project file is lower than the minimum value '11.0'.

Fixes https://github.com/xamarin/xamarin-macios/issues/21368.
2024-10-10 20:10:04 +02:00
Rolf Bjarne Kvinge 1b75eb73e4
[CryptoTokenKit] Fix detecting .NET 10. (#21400) 2024-10-10 18:57:20 +02:00
Rolf Bjarne Kvinge d293744125
[devops/github] Update a few things for .NET 10. (#21392) 2024-10-10 14:26:41 +02:00
Rolf Bjarne Kvinge 9daafdae64
[builds] Remove all legacy logic. (#21307)
We still need some of the source files from the legacy Mono library, but it's
only a few files, so just add them to the git repo.

Also implement caching of the .NET download, which speeds up clean rebuilds
significantly.

Note: all the files in the `builds/mono-ios-sdk-destdir` are a straight import
from the Mono archive, so those shouldn't need much reviewing (nor will I
change them unless absolutely necessary).
2024-10-10 14:21:42 +02:00
Rolf Bjarne Kvinge 953a2b4564
[src] Remove legacy build logic. (#21353) 2024-10-10 11:26:25 +02:00
Rolf Bjarne Kvinge 7781c5184e
[system-dependencies] Remove the cmake dependency. (#21375)
It was needed to build Mono from source, which we haven't done in quite
a few years now.
2024-10-10 11:23:39 +02:00
Rolf Bjarne Kvinge 569a5d47e6
Remove the opentk submodule. (#21370)
It's only used in legacy Xamarin, so it's no longer needed.
2024-10-10 10:27:00 +02:00
Rolf Bjarne Kvinge 55baa59437
[UIKit] Fix a few UITraitCollection bindings. Fixes #21377. (#21380)
The methods 'GetTraitCollectionWithTraits' and 'GetTraitCollectionByModifyingTraits' takes a callback, but the callback
had the wrong signature.

So introduce a new overload for each of these methods, using a delegate with the correct signature.

Also deprecate 'FromTraitsFromCollections' according to both headers and documentation.

Fixes https://github.com/xamarin/xamarin-macios/issues/21377.
2024-10-10 10:22:10 +02:00
Rolf Bjarne Kvinge 3a16b7f0ad
[msbuild] Resolve the full path to the compiled entitlements in the CompileEntitlements task. (#21372)
This saves a round-trip between the Mac and Windows machine for remote builds.
2024-10-10 09:51:01 +02:00
Rolf Bjarne Kvinge 8134042f74
[fsharp] Remove all build logic. (#21352)
We don't ship any F# code in .NET.
2024-10-10 09:43:15 +02:00
Rolf Bjarne Kvinge 5affb0b4e9
[tests] Remove legacy logic to package and run macOS tests. (#21384) 2024-10-10 09:41:56 +02:00
Rolf Bjarne Kvinge e860f533da
[build] Fix installing the arm64 version of .NET. (#21396)
On the bots we're executing with Rosetta, and 'arch' returns 'i386' under
Rosetta, so detect when we're executing under Rosetta, and install the arm64
version of .NET in that case as well.

Also fix a bug in the same area in our tests.
2024-10-09 16:57:00 +02:00
Manuel de la Pena 0db186c758
[CI] Move the release steps to a new pipeline. (#21383)
This new pipeline will only be executed when the CI build is completed
by any of the branches that have been listed to be included in the
trigger.

This pipeline because it does a release has to extend the 1ES template.

---------

Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
2024-10-08 12:37:10 -04:00
Manuel de la Pena 85b7f563bb
[CI] Fix errors in the new apiscan pipelines. (#21385)
Allow the pipeline to run correctly. We could not test it before we
landed the yaml, this commit fixes all the issues we have.
2024-10-08 12:21:31 -04:00
Manuel de la Pena 4544df6755
[CI] Stop building classic pkgs. (#21382) 2024-10-07 14:56:07 -04:00
Manuel de la Pena c0c457e32b
[CI] Intermediate step to move the api scan out of the build. (#21357)
Due to the way that resource triggers are implemented in VSTS, we are
triggering tests more than once. To solve the issue, we need to move the
diff stages to different pipelines. This is the first step to allow use
to get less stages in the build so that we can reduce the number of
tests that are triggered.
2024-10-07 14:55:07 -04:00
Rolf Bjarne Kvinge 5ef0d91b33
[msbuild/tests] Use 'dotnet test' for the MSBuild tests (take 2). (#21363)
This is another step towards removing Mono.

This required a few changes:

* Nullability updates in test code.
* Explicitly sorted list of strings in a warning message, to make the warning text stable.
* Stopped allowing the test assemblies to see internals of the task assembly. This was necessary for to solve a problem with duplicate types:
    * The netstandard2.0 version of `System.Reflection.Metadata.dll` contains
      the `UnconditionalSuppressMessageAttribute` type (internally).
    * Since we ILMerge the tasks assembly, this type ends up in
      Xamarin.iOS.Tasks.dll (internally).
    * The test assembly can't be a net472 assembly, because that means using
      the netfx/desktop versions of the Microsoft.Build.* assemblies, which
      don't work on .NET (they check for Mono, but .NET isn't Mono, so the
      check fails and a PlatformNotSupportedException is thrown).
    * So I bumped the test assembly to be a net8.0 assembly, but then there's
      a conflict between the `UnconditionalSuppressMessageAttribute` shipped
      in .NET vs the one in `Xamarin.iOS.Tasks.dll` (because the test assembly
      can see the internals of `Xamarin.iOS.Tasks.dll`).
    * The fix that _doesn't work_ is to not merge system assemblies in the
      `Xamarin.iOS.Tasks.dll` assembly anymore. `Xamarin.iOS.Tasks.Windows.dll`
      already does this, but it doesn't work when building remotely.
    * The fix that seems to work is to just not allow the test assemblies to
      see the internals of the task assembly. This is really an anti-pattern
      anyway, so no big loss. This required a few changes (make some API in
      the task assembly public, remove some legacy tests that don't apply
      anymore in .NET, etc.)
2024-10-07 18:14:01 +02:00
Manuel de la Pena 1dc54f6241
[CI] Remove stages related to the old pkg signing and notarization. (#21376)
Clean the CI from all references to the old pkg notarisation and
signing.

- Remove the templates that did the jobs.
- Remove the parameters that allowed to skip the signing and
notarisation.
- Remove the references to the scripts.

This simplifies greatly the yaml.
2024-10-07 09:14:28 -04:00
Manuel de la Pena 8bb8f6f82c
[CI] Split variables to reduce needed rights. (#21371)
Split the variables and document their usage. Because we are going to
have to add more pipelines we want to limit the amount of secrets a new
pipeline requests and uses.

The split is as follows:

- variables/common.yml: needed by all.
- variables/api-scan.yml: needed by the api scan pipeline.
- variables/signing.yml: needed by pipeline that need to perform
signing.

---------

Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
2024-10-04 16:09:10 -04:00
Rolf Bjarne Kvinge b7a317d06c
[bgen] Improve performance a little bit when calling functions that return retained objects. (#21297)
Instead of doing this:

```cs
var obj = Runtime.GetINativeObject&lt;T&gt(handle, false);
NSObject.ReleaseDangerous (handle);
```

we now do this:

```cs
var obj = Runtime.GetINativeObject&lt;T&gt(handle, true);
```

Less generated code, and better performance too.

This was found while investigating https://github.com/xamarin/xamarin-macios/issues/21290.
2024-10-04 10:00:27 +02:00
Rolf Bjarne Kvinge 133bd65abd
Merge net9.0 into main. (#21349) 2024-10-04 09:22:01 +02:00
Rolf Bjarne Kvinge f800899ebc
[tests] Include more information in asserts in MonoTouchFixtures.Security.RecordTest.DeskCase_83099_InmutableDictionary. (#21354)
This will hopefully help us track down a random test failure in this test.

Ref: https://github.com/xamarin/maccore/issues/868
2024-10-03 19:53:11 +02:00