It's rather rare now that we need to disable .NET from the CI, so just
remove the option. It can still be disabled directly in the code when
needed.
Also this fixes an issue where we'd build with .NET enabled even if
disabled in the code, because we'd always pass --enable-dotnet to
configure.
If an assembly changes, then we must AOT compile that assembly again (which we already
did), in addition to any assembly that references the modified assembly (which we
didn't do).
So rework the AOTCompile target: remove the Inputs and Outputs (because the dependency
tracking is too complicated for MSBuild to resolve), and instead move the logic to
detect if an assembly must be AOT-compiled again into the AOTCompile task.
Note that this PR has a custom port to .NET 8: #18518.
Fixes https://github.com/xamarin/xamarin-macios/issues/17708.
---------
Co-authored-by: Alex Soto <alex@alexsoto.me>
If an assembly changes, then we must AOT compile that assembly again (which we already
did), in addition to any assembly that references the modified assembly (which we
didn't do).
So rework the AOTCompile target: remove the Inputs and Outputs (because the dependency
tracking is too complicated for MSBuild to resolve), and instead move the logic to
detect if an assembly must be AOT-compiled again into the AOTCompile task.
This is a port of the [original fix for main][1] to .NET 8, where we have to
take the dedup assembly into account too: if any assembly has changed, then we
must re-aot the dedup assembly as well.
Fixes https://github.com/xamarin/xamarin-macios/issues/17708.
[1]: https://github.com/xamarin/xamarin-macios/pull/18509
---------
Co-authored-by: Alex Soto <alex@alexsoto.me>
Closes#18357
This PR implements the idea described in the linked issue:
Whenever there's an NSObject constructor that we call from a registrar
callback, we need to create
a separate constructor that will first set the `handle` and `flags`
values of the NSObject before
calling the original constructor. Here's an example of the code we
generate:
```csharp
// The original constructor:
public .ctor (T0 p0, T1 p1, ...) { /* ... */ }
// The generated constructor with pre-initialization:
public .ctor (T0 p0, T1 p1, ..., IntPtr handle, IManagedRegistrar dummy) {
this.handle = (NativeHandle)handle;
this.flags = 2; // Flags.NativeRef == 2
this..ctor (p0, p1, ...);
}
```
- This code can't be expressed in C# and it can only be expressed
directly in IL.
- The reason we need to do this is because the base NSObject
parameterless constructor
would allocate a new Objective-C object if `handle` is a zero pointer.
- The `IManagedRegistrar` type is added only to make the constructor
signature unique (IManagedRegistrar is not a public class and customers
can't use it in their apps directly)
This API was missed because the old sim intro tests are not running and
we missed it. This was found while working on xcode15. The tvOS attr is
missing which defaults to the min version of tvOS when it should be 15.
Added a compat implementation so that the API remains that will return
null.
---------
Co-authored-by: GitHub Actions Autoformatter <github-actions-autoformatter@xamarin.com>
Apple completely removed the NewsstandKit framework in Xode 15.
This effectively adds basic support for using Xcode 15 with .NET 7.
While this technically won't be a supported scenario, we have tests that
ensures .NET 7 apps can be built with .NET 8, and .NET 8 will ship with Xcode
15 support. This means that in order to make these tests work, we'll otherwise
have to have Xcode 14.3 installed both locally and on bots (in addition to
Xcode 15 of course), which is a rather big nightmare.
It's much easier to must try to make Xcode 15 work with .NET 7.
It seems that Apple will completely remove the NewsstandKit framework from iOS 17.
This poses a problem for existing apps that link with NewsstandKit: they will
crash at launch.
Solve this by always linking weakly with the NewsstandKit framework; this way
any apps that link with it will keep working if the framework ends up being
removed by Apple.
Fixes https://github.com/xamarin/xamarin-macios/issues/18606.
Fixes https://github.com/dotnet/maui/issues/16316.
This API was missed because the old sim intro tests are not running and
we missed it. This was found while working on xcode15. The tvOS attr is
missing which defaults to the min version of tvOS when it should be 15.
Added a compat implementation so that the API remains.
---------
Co-authored-by: GitHub Actions Autoformatter <github-actions-autoformatter@xamarin.com>
Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
The `MicroBuildCodesignVerify@3` task has been added to validate the
signing status of the MSI files required for VS insertions. This will
allow us to identify any potential signing issues earlier.
Similar to PR https://github.com/xamarin/xamarin-macios/pull/18600 we
need to use the same verison as the one found in the workload file in CI
and not that one from the make.config.
---------
Co-authored-by: GitHub Actions Autoformatter <github-actions-autoformatter@xamarin.com>
Add prIssueManagement.yml to onboard repo to GitOps.ResourceManagement
as FabricBot replacement
Owners of the FabricBot configuration should have received email
notification. The same information contained in the email is published
internally at: https://aka.ms/gim/fabricbot. Details on the replacement
service and the syntax of the new yaml configuration file is available
publicly at: https://microsoft.github.io/GitOps/policies/resource-management.html
This commit fixes the code that was added in
https://github.com/xamarin/xamarin-macios/pull/16361.
The previous change uses the version number that is part of the config
file in the current build machine. That is correct when we are working
when we are running the tests in the same machine that built them. That
IS NOT THE CASE when building on CI.
Back when the CI did the separation to accommodate the EO we noticed
that if the workload is built in a diff machine, the versions were not
to be trusted, that is why the CI sets and enviroment variable to track
the version that was built in the original step. This change check if we
are on the CI, if we are we trust the version given by the previos
machine, else we use the config one.
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
[marker]: <> (Begin:Coherency Updates)
## Coherency Updates
The following updates ensure that dependencies with a
*CoherentParentDependency*
attribute were produced in a build used as input to the parent
dependency's build.
See [Dependency Description
Format](https://github.com/dotnet/arcade/blob/master/Documentation/DependencyDescriptionFormat.md#dependency-description-overview)
[DependencyUpdate]: <> (Begin)
- **Coherency Updates**:
- **Microsoft.NET.ILLink.Tasks**: from 8.0.0-rc.1.23375.3 to
8.0.0-rc.1.23376.5 (parent: Microsoft.Dotnet.Sdk.Internal)
- **Microsoft.AspNetCore.App.Ref**: from 8.0.0-rc.1.23375.2 to
8.0.0-rc.1.23376.5 (parent: Microsoft.Dotnet.Sdk.Internal)
- **Microsoft.NETCore.App.Ref**: from 8.0.0-rc.1.23375.3 to
8.0.0-rc.1.23376.5 (parent: Microsoft.Dotnet.Sdk.Internal)
- **Microsoft.NETCore.App.Ref**: from 8.0.0-rc.1.23375.3 to
8.0.0-rc.1.23376.5 (parent: Microsoft.Dotnet.Sdk.Internal)
[DependencyUpdate]: <> (End)
[marker]: <> (End:Coherency Updates)
[marker]: <> (Begin:f9b68d84-9c90-4bd0-5499-08db4112d57e)
## From https://github.com/dotnet/installer
- **Subscription**: f9b68d84-9c90-4bd0-5499-08db4112d57e
- **Build**: 20230727.5
- **Date Produced**: July 28, 2023 12:24:33 AM UTC
- **Commit**: 0759df6ebb8c02d185fe45adfa58069ac97ebdee
- **Branch**: refs/heads/main
[DependencyUpdate]: <> (Begin)
- **Updates**:
- **Microsoft.Dotnet.Sdk.Internal**: [from 8.0.100-rc.1.23375.11 to
8.0.100-rc.1.23377.5][1]
- **Microsoft.NET.ILLink.Tasks**: [from 8.0.0-rc.1.23375.3 to
8.0.0-rc.1.23376.5][2]
- **Microsoft.AspNetCore.App.Ref**: [from 8.0.0-rc.1.23375.2 to
8.0.0-rc.1.23376.5][3]
- **Microsoft.NETCore.App.Ref**: [from 8.0.0-rc.1.23375.3 to
8.0.0-rc.1.23376.5][2]
- **Microsoft.NETCore.App.Ref**: [from 8.0.0-rc.1.23375.3 to
8.0.0-rc.1.23376.5][2]
[1]: f07981240e...0759df6ebb
[2]: 3dd73e6d53...ea97babd7c
[3]:
f2d2ba09c6...40dc1466a4
[DependencyUpdate]: <> (End)
[marker]: <> (End:f9b68d84-9c90-4bd0-5499-08db4112d57e)
---------
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: GitHub Actions <github-actions@xamarin.com>