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

6015 Коммитов

Автор SHA1 Сообщение Дата
Rolf Bjarne Kvinge 2d96d43145
[xtro] Fix targets file and print out full path to the html report. (#16721)
There was a typo in the target name for creating the html report for .NET
('report-dotnet' vs 'dotnet-report').

Also print out the full path the html report when it's created, makes it much
easier to open the file from the command line because I can c&p the entire
path.
2022-11-14 18:18:06 +01:00
Rolf Bjarne Kvinge 3b839e1551
[autoformat] Add msbuild tests. (#16717) 2022-11-14 08:58:59 +01:00
Rolf Bjarne Kvinge 09f84f988c
[autoformat] Autoformat after a PR race. (#16720)
There was a PR race:

1. I created a PR to autoformat monotouch-test code.
2. Another PR added incorrectly formatted code to monotouch-test.
3. The first PR was merged, everything was fine.
4. The second PR was merged (it was green) - but its code hadn't been
   autoformatted.
5. Now there's incorrectly formatted code in the repo, which will show up in
   every new PR.

Co-authored-by: GitHub Actions Autoformatter <github-actions-autoformatter@xamarin.com>
2022-11-14 08:43:39 +01:00
Rolf Bjarne Kvinge 380cb06077
[tests] Make CFNotificationCenterTest.TestNullNameAndObserver wait for notifications. Hopefully fixes #xamarin/maccore@1440. (#16699)
Hopefully fixes https://github.com/xamarin/maccore/issues/1440.
2022-11-11 13:42:49 +01:00
Rolf Bjarne Kvinge 34995569fc
[tests] Fix conditional logic for .NET 7+. (#16704)
Fixes this test in .NET 8:

    AesCreate: System.Security.Cryptography.Algorithms,
        Expected: String starting with "System.Security.Cryptography.Algorithms, "
        But was: "System.Security.Cryptography, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
2022-11-11 09:48:33 +01:00
Marius Ungureanu 2bd6433fda
[perf] Add unmanaged constraint to some APIs to allow pinning, and not manual GCHandle code (#7561)
Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
Co-authored-by: GitHub Actions Autoformatter <github-actions-autoformatter@xamarin.com>
2022-11-11 08:58:46 +01:00
Rolf Bjarne Kvinge 6f45caa84d
[autoformat] Add monotouch-test (#16701) 2022-11-10 17:59:26 +01:00
Rolf Bjarne Kvinge bc95efb0ae
[autoformat] Add xtro. (#16622) 2022-11-08 17:44:13 +01:00
Rolf Bjarne Kvinge 30436599f2
[tests] Remove a few duplicated package references. (#16613)
The NUnitLite package is already included in the shared-dotnet.csproj file,
which these projects import.
2022-11-07 16:50:39 +01:00
Rolf Bjarne Kvinge 78229568e7
[autoformat] Add introspection. (#16593) 2022-11-07 15:20:26 +01:00
Rolf Bjarne Kvinge ceaa0171da
Merge net7.0-xcode14.1 into main. (#16555)
This merges .NET 7 + Xcode 14.1 support into main.
2022-11-04 08:36:25 +01:00
Whitney Schmidt 3c65ab1756
Fix DateTime -> NSDate conversion (#7404)
Update conversions from `NSDate` to `DateTime` and `DateTime` to `NSDate` to use date components instead of `SecondsSinceReferenceDate`.

The number of seconds since reference date is inconsistent between `NSDate` and `DateTime`. See the associated bug - converting `DateTime` 1/1/1 to `NSDate` ends up giving you an `NSDate` a couple days off :(

Fixes https://github.com/xamarin/xamarin-macios/issues/6993.

Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
2022-11-03 21:11:00 +01:00
Rolf Bjarne Kvinge cdc62aeae9 Merge remote-tracking branch 'origin/net7.0-xcode14.1' into main-net7.0-xcode14.1 2022-11-03 08:21:55 +01:00
Rolf Bjarne Kvinge 940e1d09e9 Merge xcode14.1 into net7.0-xcode14.1. 2022-11-02 19:03:30 +01:00
VS MobileTools Engineering Service 2 988bf9b4ba
[net7.0-xcode14.1] [tests] Handle managed exceptions in a networking callback. (#16535)
Fixes a problem where any exception would crash the process, because the
callback was executed on a background thread, and there was no other managed
frame catching the managed exception:

    MonoTests.System.Net.Http.MessageHandlerTest.RejectSslCertificatesWithCustomValidationCallbackNSUrlSessionHandler
    2022-10-21 07:02:23.557 monotouchtest[91107:28076542] *** Terminating app due to uncaught exception 'NUnit.Framework.AssertionException', reason: '  Expected: None
      But was:  RemoteCertificateChainErrors
     (NUnit.Framework.AssertionException)
       at NUnit.Framework.Assert.ReportFailure(String message)
       at NUnit.Framework.Assert.ReportFailure(ConstraintResult result, String message, Object[] args)
       at NUnit.Framework.Assert.AreEqual(Object expected, Object actual)
       at MonoTests.System.Net.Http.MessageHandlerTest.<>c__DisplayClass14_0.<RejectSslCertificatesWithCustomValidationCallbackNSUrlSessionHandler>b__2(HttpRequestMessage sender, X509Certificate2 certificate, X509Chain chain, SslPolicyErrors errors) in /Users/builder/azdo/_work/2/s/xamarin-macios/tests/monotouch-test/System.Net.Http/MessageHandlers.cs:line 613
       at Foundation.NSUrlSessionHandler.ServerCertificateCustomValidationCallbackHelper.Invoke(HttpRequestMessage request, SecTrust secTrust)
       at Foundation.NSUrlSessionHandler.TryInvokeServerCertificateCustomValidationCallback(HttpRequestMessage request, SecTrust secTrust, Boolean& trusted)
       at Foundation.NSUrlSessionHandler.NSUrlSessionHandlerDelegate.DidReceiveChallenge(NSUrlSession session, NSUrlSessionTask task, NSUrlAuthenticationChallenge challenge, Action`2 completionHandler)
    --- End of stack trace from previous location ---
       at ObjCRuntime.Runtime.InvokeMethod(MethodBase method, Object instance, IntPtr native_parameters)
       at ObjCRuntime.Runtime.InvokeMethod(MonoObject* methodobj, MonoObject* instanceobj, IntPtr native_parameters)
       at ObjCRuntime.Runtime.bridge_runtime_invoke_method(MonoObject* method, MonoObject* instance, IntPtr parameters, IntPtr& exception_gchandle)
    '
    *** First throw call stack:
    (
    	0   CoreFoundation                      0x00007ff81dba97c3 __exceptionPreprocess + 242
    	1   libobjc.A.dylib                     0x00007ff81d909bc3 objc_exception_throw + 48
    	2   monotouchtest                       0x000000010426e524 xamarin_process_managed_exception + 820
    	3   monotouchtest                       0x00000001042fec76 _ZL32native_to_managed_trampoline_183P11objc_objectP13objc_selectorPP11_MonoObjectS0_S0_S0_S0_j + 1302
    	4   monotouchtest                       0x00000001042fe750 -[Foundation_NSUrlSessionHandler_NSUrlSessionHandlerDelegate URLSession:task:didReceiveChallenge:completionHandler:] + 80
    	5   CFNetwork                           0x00007ff8225d3635 _CFHostIsDomainTopLevelForCertificatePolicy + 13206
    	6   libdispatch.dylib                   0x00007ff81d8af0cc _dispatch_call_block_and_release + 12
    	7   libdispatch.dylib                   0x00007ff81d8b0317 _dispatch_client_callout + 8
    	8   libdispatch.dylib                   0x00007ff81d8b6317 _dispatch_lane_serial_drain + 672
    	9   libdispatch.dylib                   0x00007ff81d8b6e30 _dispatch_lane_invoke + 417
    	10  libdispatch.dylib                   0x00007ff81d8c0eee _dispatch_workloop_worker_thread + 753
    	11  libsystem_pthread.dylib             0x00007ff81da63fd0 _pthread_wqthread + 326
    	12  libsystem_pthread.dylib             0x00007ff81da62f57 start_wqthread + 15


Backport of #16414

Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
2022-11-02 18:05:06 +01:00
VS MobileTools Engineering Service 2 3536335c3a
[xcode14.1] [ObjCRuntime] Change Runtime.GetNSObject<T> to create a new instance if the existing one is of the wrong type. Fixes #13704. (#16502)
Objective-C has an optimization where creating an empty dictionary would
return the same instance every time (probably to a constant empty
dictionary).

This causes a problem with how we've bound generic dictionaries, because
all
empty dictionaries would have the same native handle, even if we'd bound
them
with different managed types.

This surfaces in unfortunate ways when we try to look up a managed
instance
given a native handle, we find that we already have a managed instance,
but
the managed instance is of the wrong type.

Example code:

    var a = new NSDictionary ();
    var b = new NSDictionary<NSString, NSString> ();
    var c = new NSDictionary<NSString, NSObject> ();
    Console.WriteLine ($"a: 0x{a.Handle:X}");
    Console.WriteLine ($"b: 0x{b.Handle:X}");
    Console.WriteLine ($"c: 0x{c.Handle:X}");

would produce something like:

    a: 0x0x7fff80821080
    b: 0x0x7fff80821080
    c: 0x0x7fff80821080

now for this code:

    Runtime.GetNSObject<NSDictionary<NSString, NSString>> (b.Handle)

it would throw an exception like this:

Unable to cast object of type
'Foundation.NSDictionary`2[[Foundation.NSString],[Foundation.NSObject]]'
to type
'Foundation.NSDictionary`2[[Foundation.NSString],[Foundation.NSString]]'

because we'll have the 'c' object (with type `NSDictionary<NSString,
Object>`)
in our dictionary of native handles -> managed instances, and that's not
compatible with the desired return type from GetNSObject
(`NSDictionary<NSString, NSString>`)

This likely happens with all the non-mutable collection types we have a
generic version of (NSArray, NSDictionary, NSOrderedSet, NSSet).

Fixes https://github.com/xamarin/xamarin-macios/issues/16378.
Fixes https://github.com/xamarin/xamarin-macios/issues/13704.

This PR is somewhat simpler to review by ignoring whitespace:
https://github.com/xamarin/xamarin-macios/pull/16491/files?w=1


Backport of #16491

Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
2022-10-28 16:53:15 -04:00
Rolf Bjarne Kvinge adf3dacabf
[tests] Don't block forever in CoreFoundation.ProxyTest if something goes wrong. (#16495) 2022-10-28 11:07:11 +02:00
Rolf Bjarne Kvinge 543d73be3c
[ObjCRuntime] Change Runtime.GetNSObject<T> to create a new instance if the existing one is of the wrong type. Fixes #13704. (#16491)
Objective-C has an optimization where creating an empty dictionary would
return the same instance every time (probably to a constant empty dictionary).

This causes a problem with how we've bound generic dictionaries, because all
empty dictionaries would have the same native handle, even if we'd bound them
with different managed types.

This surfaces in unfortunate ways when we try to look up a managed instance
given a native handle, we find that we already have a managed instance, but
the managed instance is of the wrong type.

Example code:

    var a = new NSDictionary ();
    var b = new NSDictionary<NSString, NSString> ();
    var c = new NSDictionary<NSString, NSObject> ();
    Console.WriteLine ($"a: 0x{a.Handle:X}");
    Console.WriteLine ($"b: 0x{b.Handle:X}");
    Console.WriteLine ($"c: 0x{c.Handle:X}");

would produce something like:

    a: 0x0x7fff80821080
    b: 0x0x7fff80821080
    c: 0x0x7fff80821080

now for this code:

    Runtime.GetNSObject<NSDictionary<NSString, NSString>> (b.Handle)

it would throw an exception like this:

    Unable to cast object of type 'Foundation.NSDictionary`2[[Foundation.NSString],[Foundation.NSObject]]' to type 'Foundation.NSDictionary`2[[Foundation.NSString],[Foundation.NSString]]'

because we'll have the 'c' object (with type `NSDictionary<NSString, Object>`)
in our dictionary of native handles -> managed instances, and that's not
compatible with the desired return type from GetNSObject
(`NSDictionary<NSString, NSString>`)

This likely happens with all the non-mutable collection types we have a
generic version of (NSArray, NSDictionary, NSOrderedSet, NSSet).

Fixes https://github.com/xamarin/xamarin-macios/issues/16378.
Fixes https://github.com/xamarin/xamarin-macios/issues/13704.
2022-10-28 11:05:52 +02:00
Rolf Bjarne Kvinge d0fa5760e1
[tests] Fix typo in 'test' call in script to package mac tests. (#16496) 2022-10-28 09:53:28 +02:00
Rolf Bjarne Kvinge c708c71c3b Merge remote-tracking branch 'origin/xcode14.1' into bump-xcode14.1-in-net7.0-xcode14.1-2022-10-24 2022-10-28 09:50:14 +02:00
Rolf Bjarne Kvinge f4bfa0d0bb
[monotouch-test] Update QuantityTypeIdentifier.EnumValues_22351 after recent API additions. Fixes #16443. (#16498)
Fixes https://github.com/xamarin/xamarin-macios/issues/16443.

Co-authored-by: Alex Soto <alex@alexsoto.me>
2022-10-28 09:49:34 +02:00
Manuel de la Pena e315f09ea8
[MacOS] Fix all the issues we found running the tests on Ventura. (#16488) 2022-10-27 20:42:35 -04:00
Manuel de la Pena c797b77838
[Xtro] Add missing ignore in legacy. (#16460)
Fixes https://github.com/xamarin/xamarin-macios/issues/16442.
2022-10-26 12:48:12 -04:00
Alex Soto ac3ef8c348
[xcode14.1][HomeKit] Brings back HMAccessorySetupManager (#16439)
Fixes xamarin/xamarin-macios#16415

HMAccessorySetupManager was removed by mistake when we had to remove
matter related objects due to submission tests.

We have kept the Matter APIs removed and just enabled
PerformAccessorySetup Submission tests are happy using Xcode 14.1 RC1
https://gist.github.com/dalexsoto/243b0da224c613e9afc9706c54f882a1
2022-10-25 15:31:44 -04:00
Rolf Bjarne Kvinge 25e951691d
[tests] Only package macOS tests for enabled platforms. (#16434)
For instance don't build for Mac Catalyst if Mac Catalyst isn't enabled.
2022-10-25 07:54:58 +02:00
Rolf Bjarne Kvinge 13ee421a67 Merge xcode14.1 into net7.0-xcode14.1. 2022-10-24 23:43:35 +02:00
Rolf Bjarne Kvinge a2761a7308
[tests] Handle managed exceptions in a networking callback. (#16414)
Fixes a problem where any exception would crash the process, because the
callback was executed on a background thread, and there was no other managed
frame catching the managed exception:

    MonoTests.System.Net.Http.MessageHandlerTest.RejectSslCertificatesWithCustomValidationCallbackNSUrlSessionHandler
    2022-10-21 07:02:23.557 monotouchtest[91107:28076542] *** Terminating app due to uncaught exception 'NUnit.Framework.AssertionException', reason: '  Expected: None
      But was:  RemoteCertificateChainErrors
     (NUnit.Framework.AssertionException)
       at NUnit.Framework.Assert.ReportFailure(String message)
       at NUnit.Framework.Assert.ReportFailure(ConstraintResult result, String message, Object[] args)
       at NUnit.Framework.Assert.AreEqual(Object expected, Object actual)
       at MonoTests.System.Net.Http.MessageHandlerTest.<>c__DisplayClass14_0.<RejectSslCertificatesWithCustomValidationCallbackNSUrlSessionHandler>b__2(HttpRequestMessage sender, X509Certificate2 certificate, X509Chain chain, SslPolicyErrors errors) in /Users/builder/azdo/_work/2/s/xamarin-macios/tests/monotouch-test/System.Net.Http/MessageHandlers.cs:line 613
       at Foundation.NSUrlSessionHandler.ServerCertificateCustomValidationCallbackHelper.Invoke(HttpRequestMessage request, SecTrust secTrust)
       at Foundation.NSUrlSessionHandler.TryInvokeServerCertificateCustomValidationCallback(HttpRequestMessage request, SecTrust secTrust, Boolean& trusted)
       at Foundation.NSUrlSessionHandler.NSUrlSessionHandlerDelegate.DidReceiveChallenge(NSUrlSession session, NSUrlSessionTask task, NSUrlAuthenticationChallenge challenge, Action`2 completionHandler)
    --- End of stack trace from previous location ---
       at ObjCRuntime.Runtime.InvokeMethod(MethodBase method, Object instance, IntPtr native_parameters)
       at ObjCRuntime.Runtime.InvokeMethod(MonoObject* methodobj, MonoObject* instanceobj, IntPtr native_parameters)
       at ObjCRuntime.Runtime.bridge_runtime_invoke_method(MonoObject* method, MonoObject* instance, IntPtr parameters, IntPtr& exception_gchandle)
    '
    *** First throw call stack:
    (
    	0   CoreFoundation                      0x00007ff81dba97c3 __exceptionPreprocess + 242
    	1   libobjc.A.dylib                     0x00007ff81d909bc3 objc_exception_throw + 48
    	2   monotouchtest                       0x000000010426e524 xamarin_process_managed_exception + 820
    	3   monotouchtest                       0x00000001042fec76 _ZL32native_to_managed_trampoline_183P11objc_objectP13objc_selectorPP11_MonoObjectS0_S0_S0_S0_j + 1302
    	4   monotouchtest                       0x00000001042fe750 -[Foundation_NSUrlSessionHandler_NSUrlSessionHandlerDelegate URLSession:task:didReceiveChallenge:completionHandler:] + 80
    	5   CFNetwork                           0x00007ff8225d3635 _CFHostIsDomainTopLevelForCertificatePolicy + 13206
    	6   libdispatch.dylib                   0x00007ff81d8af0cc _dispatch_call_block_and_release + 12
    	7   libdispatch.dylib                   0x00007ff81d8b0317 _dispatch_client_callout + 8
    	8   libdispatch.dylib                   0x00007ff81d8b6317 _dispatch_lane_serial_drain + 672
    	9   libdispatch.dylib                   0x00007ff81d8b6e30 _dispatch_lane_invoke + 417
    	10  libdispatch.dylib                   0x00007ff81d8c0eee _dispatch_workloop_worker_thread + 753
    	11  libsystem_pthread.dylib             0x00007ff81da63fd0 _pthread_wqthread + 326
    	12  libsystem_pthread.dylib             0x00007ff81da62f57 start_wqthread + 15
2022-10-24 22:34:16 +02:00
Rolf Bjarne Kvinge 73101f2689
[msbuild] Fix dirty working copy with Errors.designer.cs. (#16404)
The Xamarin.MacDev.Tasks.sln solution is built with dotnet, while other projects
are still built with msbuild. This becomes a problem when generating Errors.designer.cs,
because depending on the runtime the output is different.

This means that the Errors.designer.cs will sometimes randomly change (depending
on which project re-generated the file), leaving the file modified in git. This is
quite annoying, but it also breaks the api comparison, which depends on the build
not leaving modified files behind. So for now, we generate Errors.designer.cs separately
for Xamarin.MacDev.Tasks.sln to not conflict with the mtouch version.

Also fix capitalization in numerous places to be consistent (it's Errors.designer.cs,
not Errors.Designer.cs).
2022-10-24 18:56:06 +02:00
Manuel de la Pena 2d2af3e872
[HealthKit] Add support for Xcode 14.1/. (#16410) 2022-10-24 11:26:24 -04:00
Manuel de la Pena 3b431e618c
[CoreMedia] Add support for xcode14.1 (#16409)
Co-authored-by: Alex Soto <alex@alexsoto.me>
2022-10-24 11:22:02 -04:00
Manuel de la Pena a9bca96404
[UIKit] Add support for Xcode 14.1. (#16411) 2022-10-24 11:21:40 -04:00
Manuel de la Pena 25d018437d
[CoreLocation] Add support for Xcode 14.1 (#16412) 2022-10-24 11:21:18 -04:00
Rolf Bjarne Kvinge 1c4ac4564d
[jenkins] Jenkins is dead, long live ~Wrench~ Azure Devops. (#16396)
Remove all Jenkins logic that's no longer being used.
2022-10-21 10:05:59 +02:00
Rolf Bjarne Kvinge 24f1fc18ed Merge remote-tracking branch 'origin/xcode14.1' into net7.0-xcode14.1 2022-10-20 19:30:22 +02:00
Rolf Bjarne Kvinge 69f33e5d11
[tests] Add dependency so that we don't try to write a file in a directory that doesn't exist. (#16393)
Fixes this:

    Making all in frameworks
    /bin/sh: .libs/tvos-arm64/FrameworksInRuntimesNativeDirectory1.dll: No such file or directory
    make[2]: *** [.libs/tvos-arm64/FrameworksInRuntimesNativeDirectory1.dll] Error 1
2022-10-20 08:47:31 +02:00
Rolf Bjarne Kvinge e4164d508a
[tests] Ignore ExceptionsTest.ManagedExceptionPassthrough on ARM64 desktop. (#16384)
Ignore ExceptionsTest.ManagedExceptionPassthrough on ARM64 desktop until we
fix the underlying bug.

Ref: https://github.com/xamarin/xamarin-macios/issues/16264
2022-10-19 14:40:57 +02:00
Rolf Bjarne Kvinge c5a42a96cb
Merge main into xcode14.1. (#16375) 2022-10-19 09:54:18 +02:00
Alex Soto f414cfa6ca
[xcode14.1] Bump to Xcode 14.1 Release Candidate (#16379) 2022-10-19 07:56:47 +02:00
Haritha Mohan f160ec03c9
[Foundation] Implement IEquatable and IComparable for NSOperatingSystemVersion (#16308)
Implemented the interfaces for NSOperatingSystemVersion, can now compare
instances and check for equality using operators.

Fixes #15721

Co-authored-by: Manuel de la Pena <mandel@microsoft.com>
2022-10-18 10:25:28 -07:00
Rolf Bjarne Kvinge 6414c14486 Merge main into xcode14.1. 2022-10-18 09:45:22 +02:00
Rolf Bjarne Kvinge a79e2f87d3 Merge main into net7.0. 2022-10-18 08:12:46 +02:00
Rolf Bjarne Kvinge db3c669502
[tests] Fix converting Profile values to ApplePlatform values for macOS. (#16357) 2022-10-18 08:04:36 +02:00
Rolf Bjarne Kvinge 9ab18236b8
[xharness] Fix path to mlaunch when using mlaunch from a .NET SDK pack. (#16361) 2022-10-18 08:04:13 +02:00
Rolf Bjarne Kvinge 57307a4168
Merge main into xcode14.1. (#16364) 2022-10-18 08:03:58 +02:00
Rolf Bjarne Kvinge a15b2e0fe0
Bump min watchOS simulator version. (#16317) 2022-10-17 17:57:47 +02:00
Rolf Bjarne Kvinge 06945fb238
[xharness] Ignore Mac Catalyst if Mac Catalyst is disabled. (#16356) 2022-10-17 17:54:04 +02:00
Manuel de la Pena b75d4c3821
[BackgroundAsserts] Add support for Xcode 14.1 (#16350)
Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
2022-10-17 11:46:27 -04:00
Rolf Bjarne Kvinge 9bf6cda819 [xtro] Use latest C# version in xtro-sanity. 2022-10-17 17:26:24 +02:00
Rolf Bjarne Kvinge ddb00021c4
[test] Adjust ProjectTest.AppWithGenericLibraryReference to not fail when only macOS is enabled. (#16346)
This test requires another platform to be enabled in addition to the current
platform being tested: that other platform is iOS when testing macOS, and
macOS for all other platforms.

This can be seen in the target frameworks for the referenced library projects:

    MacCatalyst/Library.csproj:     <TargetFrameworks>net$(BundledNETCoreAppTargetFrameworkVersion)-macos;netstandard2.1</TargetFrameworks>
    iOS/Library.csproj:             <TargetFrameworks>net$(BundledNETCoreAppTargetFrameworkVersion)-macos;netstandard2.1</TargetFrameworks>
    macOS/Library.csproj:           <TargetFrameworks>net$(BundledNETCoreAppTargetFrameworkVersion)-ios;netstandard2.1</TargetFrameworks>
    tvOS/Library.csproj:            <TargetFrameworks>net$(BundledNETCoreAppTargetFrameworkVersion)-macos;netstandard2.1</TargetFrameworks>
2022-10-17 13:32:05 +02:00
Rolf Bjarne Kvinge cb6f555665 Merge main into xcode14.1. 2022-10-17 11:35:33 +02:00