- .NET5 on my mac has inconsistent debugging due to lack of support for apple's arm arch
- The tool is going to run against NET6, so why built it on NET5
* Update dependencies from https://github.com/dotnet/runtime build 20220503.10
Microsoft.NETCore.App.Ref
From Version 6.0.5 -> To Version 6.0.6
* Update dependencies from https://github.com/dotnet/runtime build 20220504.4
Microsoft.NETCore.App.Ref
From Version 6.0.5 -> To Version 6.0.6
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Microsoft.Dotnet.Sdk.Internal
From Version 6.0.301-rtm.22253.26 -> To Version 6.0.301-rtm.22254.17
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
* add nullable enable
* throw better null exception
* use is null
* Forgot an is null
* use GetHandle
Co-authored-by: tj_devel709 <antlambe@microsoft.com>
There's no AOT compiler for macOS, so setting _RunAotCompiler causes problems
because if it's set, we try to find the AOT compiler, and because there is
none, the build fails.
So don't set '_RunAotCompiler' if 'MtouchInterpreter' is set (which also
indirectly means if 'UseInterpreter' is set) to avoid the problem altogether.
Microsoft.Dotnet.Sdk.Internal
From Version 6.0.300-rtm.22220.25 -> To Version 6.0.301-rtm.22253.26
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Add a default MAUI and a default Xamarin.Forms project as size comparison apps
(both created from templates).
This reveals that a MAUI app is ~30% bigger than a Xamarin.Forms app (42MB vs
31MB). Notably there's 21% *less* managed code, but 33% *more* native code.
https://gist.github.com/rolfbjarne/d294171969226f7511d90a817b9ac328
This is a follow up to 92ee92eeb5, where we
changed the assembly version from four digits to three digits (i.e not include
the build number), because our managed API should be identical for (released)
versions where only the build number changes.
In this PR we go a bit further, because we're not supposed to have any API
differences unless the first two parts of the product version changes, which
means that we should only use need the two first parts of our product version
as the assembly version.
Now that we have parallel signing we can try and get each of the signing
and the notarizing in its own job. At the moment those steps are
sequential, we sign xamarin.ios, then xamarin.mac etc.. we can make an
improve by moving to diff jobs and make time to sign the build.zip and
msbuild.zip for XMA. This commit is to start the move towards that
approach.
We do not have any special requirements to perform the signing except
for the fact that needs to be EO complient. The new vm allows us to be
EO complient and reduces the number of real bots that we use.
This adds code to compare a .NET 5 version of Xamarin.macOS to Microsoft.macOS or Xamarin.iOS to Microsoft.iOS and outputs a huge xml file with incompatible translations or maps from one to the other.
This PR teaches our code generator to generate .NET 6 style availability attributes, adds a 4th Cecil test to verify our generated attributes, and a metric ton of API changes to satisfy that test.
The generator work is the core of this PR, and includes:
- Hacking out chunks of generator.cs that "helpfully" remove duplicate attributes, which are no longer duplicate in the new order that NET6 attributes force upon us. See changes in FilterMinimumVersion and PrintPlatformAttributes
- Prevent a crash when the generator processes availability attributes with no version included (example: introduced on iOS but no version). See Is64BitiOSOnly.
- The meat, GetPlatformAttributesToPrint, which synthesizes many attributes "out of thing air" from:
- The parent context
- Implied introduced just because the class exists on a given framework at all
- Implied Catalyst because iOS exists
- A few cludgy hacks PrintPlatformAttributesNoDuplicates and GenerateProperty because the existing PrintPlatformAttributes did not pass down parent context down, and the refactor was dangerous/too time consuming given time pressure.
There are two intended API changes introduced by the reviews in this PR:
- GetCurrentInputDevice was obviously intended by availability attributes to exist on Catalyst but due to define confusion was excluded. It is an addition in Microsoft.MacCatalyst.dll only.
- The NEAppRule constructors were mis-marked on platforms, and were showing up incorrectly on Mac/Catalyst. I corrected the Catalyst one unconditionally, as we have not shipped Catalyst yet, but Mac is only fixed in NET6.
There is a lot of follow up work in https://github.com/xamarin/xamarin-macios/issues/14802 to do to remove a number of hard coded test failures, but this should be almost all of the remaining work in NET6 attributes.
🤞 this doesn't break too much for future us.
Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
Co-authored-by: Manuel de la Pena <mandel@microsoft.com>
We are going to be changing code in xharness. Is a good time to clean
things a little, make code more modern then enable nullability.
Try to get as much help from the new features and try to clean alittle
debt we have from the last time we moved code.
* Checkout self
* Revert "[Localization] Update the Lcl paths (#14811)"
This reverts commit 46a8971fa4.
* we no longer need the localize-directory
Co-authored-by: TJ Lambert <tjlambert@microsoft.com>
* remove null ignores and add nullability
* throw better exception
* use is null
* remove extra ignores
* Add the tests
* use a progma ignore instead
* revert monotouch-test.csproj
Co-authored-by: tj_devel709 <antlambe@microsoft.com>
* adding Nullability
* throw better null exceptions
* use is null
* Added test
Co-authored-by: tj_devel709 <antlambe@microsoft.com>
Co-authored-by: Manuel de la Pena <mandel@microsoft.com>
Co-authored-by: Alex Soto <alex@alexsoto.me>
Add a new stage that has two jobs:
mac_reservation: Executes on a mac, gathers the information of the mac and disables the mac agent in the pool.
run_tests: Gets the information of the mac and can pair and execute tests.
This new stage allows to do integration tests of the templates and XMA ensuring that we will not land code that makes the windows tools fail.
* Add the id in the body.
* Remove noise, always re-enable.
* Proper demands and pool.
* Depend on the build.