This pull request updates the following dependencies
## 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)
- **Coherency Updates**:
- **Microsoft.NET.ILLink.Tasks**: from 8.0.0-preview.5.23260.3 to 8.0.0-preview.5.23272.14 (parent: Microsoft.Dotnet.Sdk.Internal)
- **Microsoft.AspNetCore.App.Ref**: from 8.0.0-preview.5.23262.1 to 8.0.0-preview.5.23273.2 (parent: Microsoft.Dotnet.Sdk.Internal)
- **Microsoft.NETCore.App.Ref**: from 8.0.0-preview.5.23260.3 to 8.0.0-preview.5.23272.14 (parent: Microsoft.Dotnet.Sdk.Internal)
- **Microsoft.NET.Workload.Emscripten.Current.Manifest-8.0.100.Transport**: from 8.0.0-preview.5.23252.1 to 8.0.0-preview.5.23265.1 (parent: Microsoft.NETCore.App.Ref)
- **Microsoft.NETCore.App.Ref**: from 8.0.0-preview.5.23260.3 to 8.0.0-preview.5.23272.14 (parent: Microsoft.Dotnet.Sdk.Internal)
- **Microsoft.DotNet.Cecil**: from 0.11.4-alpha.23252.1 to 0.11.4-alpha.23265.2 (parent: Microsoft.NETCore.App.Ref)
## From https://github.com/dotnet/installer
- **Subscription**: f9b68d84-9c90-4bd0-5499-08db4112d57e
- **Build**: 20230523.15
- **Date Produced**: May 24, 2023 12:03:24 AM UTC
- **Commit**: 4b48b408f9b777eddd4e87f6b9efab4b5b1723a6
- **Branch**: refs/heads/main
- **Updates**:
- **Microsoft.Dotnet.Sdk.Internal**: [from 8.0.100-preview.5.23267.7 to 8.0.100-preview.5.23273.15][21]
- **Microsoft.NET.ILLink.Tasks**: [from 8.0.0-preview.5.23260.3 to 8.0.0-preview.5.23272.14][22]
- **Microsoft.AspNetCore.App.Ref**: [from 8.0.0-preview.5.23262.1 to 8.0.0-preview.5.23273.2][23]
- **Microsoft.NETCore.App.Ref**: [from 8.0.0-preview.5.23260.3 to 8.0.0-preview.5.23272.14][22]
- **Microsoft.NET.Workload.Emscripten.Current.Manifest-8.0.100.Transport**: [from 8.0.0-preview.5.23252.1 to 8.0.0-preview.5.23265.1][24]
- **Microsoft.NETCore.App.Ref**: [from 8.0.0-preview.5.23260.3 to 8.0.0-preview.5.23272.14][22]
- **Microsoft.DotNet.Cecil**: [from 0.11.4-alpha.23252.1 to 0.11.4-alpha.23265.2][25]
[21]: dda516cbd7...4b48b408f9
[22]: 888bac3044...8163d1643a
[23]: 059939bda4...39564d529f
[24]: ab09b0b8d6...7a90ec9edc
[25]: c32f0be86d...f283c62293
If only some platforms are enabled, some of the commands to find files to add
to package-test-libraries.zip won't find any files at all.
Asking 'zip' to add no files fails with:
zip error: Nothing to do!
and there's no way to add 'zip' to ignore this error condition.
However, we can instead try to not call zip at all when we don't find any
files, and we do that by using:
"find ... -exec zip"
instead of:
"find .. | zip ..."
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 tool takes a binlog as input, and creates a launch.json for dotnet-linker
that will execute the linker as was done in the binlog.
This is very useful for debugging custom linker steps, since they can be
debugged in VSCode now.
This pull request updates the following dependencies
## 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)
- **Coherency Updates**:
- **Microsoft.NET.ILLink.Tasks**: from 8.0.0-preview.5.23252.13 to 8.0.0-preview.5.23260.3 (parent: Microsoft.Dotnet.Sdk.Internal)
- **Microsoft.AspNetCore.App.Ref**: from 8.0.0-preview.5.23252.26 to 8.0.0-preview.5.23262.1 (parent: Microsoft.Dotnet.Sdk.Internal)
- **Microsoft.NETCore.App.Ref**: from 8.0.0-preview.5.23252.13 to 8.0.0-preview.5.23260.3 (parent: Microsoft.Dotnet.Sdk.Internal)
- **Microsoft.NET.Workload.Emscripten.Current.Manifest-8.0.100.Transport**: from 8.0.0-preview.5.23225.2 to 8.0.0-preview.5.23252.1 (parent: Microsoft.NETCore.App.Ref)
- **Microsoft.NETCore.App.Ref**: from 8.0.0-preview.5.23252.13 to 8.0.0-preview.5.23260.3 (parent: Microsoft.Dotnet.Sdk.Internal)
## From https://github.com/dotnet/installer
- **Subscription**: f9b68d84-9c90-4bd0-5499-08db4112d57e
- **Build**: 20230517.7
- **Date Produced**: May 17, 2023 9:29:46 PM UTC
- **Commit**: dda516cbd77ab9dc3c6048a1893b4321cdcda195
- **Branch**: refs/heads/main
- **Updates**:
- **Microsoft.Dotnet.Sdk.Internal**: [from 8.0.100-preview.5.23258.8 to 8.0.100-preview.5.23267.7][29]
- **Microsoft.NET.ILLink.Tasks**: [from 8.0.0-preview.5.23252.13 to 8.0.0-preview.5.23260.3][30]
- **Microsoft.AspNetCore.App.Ref**: [from 8.0.0-preview.5.23252.26 to 8.0.0-preview.5.23262.1][31]
- **Microsoft.NETCore.App.Ref**: [from 8.0.0-preview.5.23252.13 to 8.0.0-preview.5.23260.3][30]
- **Microsoft.NET.Workload.Emscripten.Current.Manifest-8.0.100.Transport**: [from 8.0.0-preview.5.23225.2 to 8.0.0-preview.5.23252.1][32]
- **Microsoft.NETCore.App.Ref**: [from 8.0.0-preview.5.23252.13 to 8.0.0-preview.5.23260.3][30]
[29]: 1ab664ce1c...dda516cbd7
[30]: bc9dad2351...888bac3044
[31]: 730dac21a5...059939bda4
[32]: 81590b9b84...ab09b0b8d6
Add a new version of the static registrar (called the managed static
registrar), which most notably doesn't use metadata tokens (because NativeAOT
doesn't support metadata tokens). In addition, the new registrar also takes
advantage of new features in both C# and the runtime, in order to be more
performant.
I won't go into detail about everything here, because it would be rather long,
but I've added documentation for the new registrar (the first commit, so start
reviewing there).
Fixes https://github.com/xamarin/xamarin-macios/issues/17324.
This pr provides a script that will allow to create a dry run in vsts
and will return the expanded yaml after the yaml compiler has been
executed, this will be written in the given output file.
Usage:
Basic usage: Query the expanded template from the ci pipeline in main:
```pwsh
./preview_yaml.ps1 -AccessToken $pat -OutputFile ./full.yaml
```
Query the expansion in the pr pipeline:
```pwsh
./preview_yaml.ps1 -AccessToken $pat -OutputFile ./full.yaml -Pipeline "pr"
```
Query the expansion in the ci pipeline for a diff branch than main:
```pwsh
./preview_yaml.ps1 -AccessToken $pat -OutputFile ./full.yaml -Branch "trigger-issues"
```
The output file is ALLWAYS overriden.
That step is failing or Prs with the following messsage:
`
##[error]The signing feature is not available for your organization yet.
`
Yet we do not need or care about the sbom on a pr. We can remove it and
that way not get the error and use less resources.
Given the following truths:
* A task will (try to) connect to a Mac if its SessionId property isn't empty.
* The BuildSessionId property is always set on Windows when building from an IDE (even if not connected to a remote Mac).
It stands to reason that we can't use BuildSessionId to distinguish between
connected/not conected status on Windows. Instead introduce a new property,
BuildSessionIdIfConnected, which is only set if connected to a Mac (i.e. if
'IsMacEnabled=true').
Fixes https://devdiv.visualstudio.com/DevDiv/_workitems/edit/1808448 (second attempt).
We can't create an instance of a generic type in the UnmanagedCallersOnly trampoline,
so simplify the code to not even try, and instead just throw the final exception.
Keep track of when we called MethodBase.Invoke and an 'object' reference is left
on the stack, so that we can cast to the appropiate type later on when we know how
the value is converted to the corresponding native type.
This fixes a few cases of the managed static registrar creating unverifiable IL.
Keep better track of whether we're calling MethodBase.Invoke to call the target method,
which allows us to detect certain error scenarios (and show a corresponding error).
We can't call the generic Runtime.GetNSObject<T> method when we don't know the final
type of the returned object, which happens for open types. However, we must always
call the generic Runtime.GetNSObject<T> when we know the final type, so that we have
the correct object type on the evaluation stack.
Fix this by properly detecting open types and only calling Runtime.GetNSObject in
that case.
When building from Windows, we need to pass the path to the illink
assembly located on the Mac to the linker task. The educated guess we've
been using is a bit fragile and has been getting us problems almost on
each new .NET major release. On top of that, from .NET 8 the linker is
in a separate NuGet package, so the assembly is no longer located in the
SDK directory on the Mac.
The fix is to follow the same approach we use to find the AOT compiler
on the Mac by running a target that finds that information on the remote
Mac, and brings it back to Windows, where it is cached and use across
build.
Created a new XamarinBuildTask class to share most of the code needed
for this approach.
---------
Co-authored-by: GitHub Actions Autoformatter <github-actions-autoformatter@xamarin.com>
Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
We can be asked to keep the same block+delegate pair alive multiple
times, so add support for keeping track how many times a block must be freed once
the corresponding delegate is collected by the GC.
Fixes https://github.com/xamarin/xamarin-macios/issues/18161.
The AOT compiler does not exist on Windows, so this check was making the
cache never work there. We don't really need to check if the compiler
does still exist, since the cache can be deleted by rebuilding the
project if anything fails.
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.
---------
Co-authored-by: GitHub Actions Autoformatter <github-actions-autoformatter@xamarin.com>
Co-authored-by: tj-devel709 <tjlambert@microsoft.com>
Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
The autoformatter was down for a litle while, and these issues crept in.
---------
Co-authored-by: GitHub Actions Autoformatter <github-actions-autoformatter@xamarin.com>
Stop building the test dependencies on each test run, and instead use the archived test dependencies we have from the main build:
* Stop running 'make all' in tests/ on every separate test run.
* Add a lot more stuff in the package-test-libraries.zip archive.
* Extract all the new stuff on every test run. We add stuff from outside the tests/
directory, so adjust archive creation and extraction to use the root directory
of the repository as the root of the zip archive as well.
* Also add the introspection dependencies to the same archive to simplify the logic.
* Fix xharness to not store absolute paths in generated projects.
* Fix test project to not automatically run make in tests/test-libraries when running
on the bots.
Building the test dependencies takes ~10 minutes for each test run, so this saves
about that time for each test run.
It's only called from one place, and the flags are constant, so just hardcode
the value in the method instead of taking it as an input. This simplifies the
generated managed static registrar code a little bit.