Skip to content

Commit

Permalink
Merge branch 'main' into dev/grendel/perfetto-integration
Browse files Browse the repository at this point in the history
* main: (23 commits)
  Localized file check-in by OneLocBuild Task (#9129)
  [ci] Disable CodeQL on CI/PR pipelines (#9128)
  Refine 16k page alignment support (#9075)
  [build] fix `ConfigureLocalWorkload` target (#9124)
  Bump to NDK r27 (#9020)
  [ci] Use drop service for SDK insertion artifacts  (#9116)
  Fix up all mapping paths (#9121)
  [ci] Fix maestro publishing for stable packages (#9118)
  Bump to dotnet/sdk@2f14fea98b 9.0.100-preview.7.24367.21 (#9108)
  Missing androidx.window.[extensions|sidecar] warnings (#9085)
  [ci] Use sign-artifacts template for macOS signing (#9091)
  [ci] Use DotNetCoreCLI to sign macOS files (#9102)
  [ci] Disable CodeQL on macOS, Linux, non-main jobs (#9111)
  [tests] re-enable `JavaAbstractMethodTest` (#9097)
  [Microsoft.Android.Sdk.ILLink] preserve types with `IJniNameProviderAttribute` (#9099)
  [Mono.Android] Data sharing and Close() overrides (#9103)
  [AndroidManifest] Add `Android.App.PropertyAttribute` (#9016)
  [Mono.Android] Add support for AndroidMessageHandler ClientCertificates (#8961)
  [Mono.Android] Bind and enumify API-35 (#9043)
  Bump to dotnet/java-interop@7a058c0e (#9066)
  ...
  • Loading branch information
grendello committed Jul 23, 2024
2 parents 960bc58 + 298e2c9 commit 37c8656
Show file tree
Hide file tree
Showing 110 changed files with 4,494 additions and 327,614 deletions.
63 changes: 63 additions & 0 deletions .gdn/.gdnsuppress
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,69 @@
],
"justification": "Dummy test.keystore file used for testing.",
"createdDate": "2024-02-21 20:58:02Z"
},
"ad733d624486984da63461d2a23f266714f76e1788c271d90d45687579f51099": {
"signature": "ad733d624486984da63461d2a23f266714f76e1788c271d90d45687579f51099",
"alternativeSignatures": [],
"memberOf": [
"default"
],
"justification": "release.keystore file created during test run.",
"createdDate": "2024-06-14 18:52:00Z"
},
"e10f89d02383ffef3bdbf9c048a9e0f3bdab956a8e6e49817780b0c837a5bd6d": {
"signature": "e10f89d02383ffef3bdbf9c048a9e0f3bdab956a8e6e49817780b0c837a5bd6d",
"alternativeSignatures": [],
"memberOf": [
"default"
],
"justification": "False positive in linker-dependencies.xml file.",
"createdDate": "2024-06-14 18:52:00Z"
},
"e73b15633b7cb1e9e735ce0fe78a6ce3c95c11a8888181eb3b0cb50c191da19e": {
"signature": "e73b15633b7cb1e9e735ce0fe78a6ce3c95c11a8888181eb3b0cb50c191da19e",
"alternativeSignatures": [],
"memberOf": [
"default"
],
"justification": "False positive in linker-dependencies.xml file.",
"createdDate": "2024-06-14 18:52:00Z"
},
"e622e6a9a73c1856d399e753105be517d62ec1e62d13a15ab9ecef43e15590a9": {
"signature": "e622e6a9a73c1856d399e753105be517d62ec1e62d13a15ab9ecef43e15590a9",
"alternativeSignatures": [],
"memberOf": [
"default"
],
"justification": "False positive in linker-dependencies.xml file.",
"createdDate": "2024-06-14 18:52:00Z"
},
"df428be5ce5ef90685e15981cf49e2af10de6d87544f437aa1722f84516d6fef": {
"signature": "df428be5ce5ef90685e15981cf49e2af10de6d87544f437aa1722f84516d6fef",
"alternativeSignatures": [],
"memberOf": [
"default"
],
"justification": "False positive in linker-dependencies.xml file.",
"createdDate": "2024-06-14 18:52:00Z"
},
"247325bc1f0ff6899ae09b13e006ac35c7cae4ffee0749f139fd5100f85a162f": {
"signature": "247325bc1f0ff6899ae09b13e006ac35c7cae4ffee0749f139fd5100f85a162f",
"alternativeSignatures": [],
"memberOf": [
"default"
],
"justification": "False positive in linker-dependencies.xml file.",
"createdDate": "2024-06-14 18:52:00Z"
},
"6d53f09942503c3f7eeccf23af43ae976431e8dbf2ad3d32be8af5bd37068d4d": {
"signature": "6d53f09942503c3f7eeccf23af43ae976431e8dbf2ad3d32be8af5bd37068d4d",
"alternativeSignatures": [],
"memberOf": [
"default"
],
"justification": "False positive in linker-dependencies.xml file.",
"createdDate": "2024-06-14 18:52:00Z"
}
}
}
6 changes: 3 additions & 3 deletions Configuration.Override.props.in
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@
kept consistent with each other, lest Bad Things Happen™
-->
<!-- The default Android API level to bind in src/Mono.Android -->
<AndroidApiLevel>34</AndroidApiLevel>
<AndroidApiLevel>35</AndroidApiLevel>
<!-- The Xamarin.Android $(TargetFrameworkVersion) value that corresponds to $(AndroidApiLevel) -->
<AndroidFrameworkVersion>v14.0</AndroidFrameworkVersion>
<AndroidFrameworkVersion>v15.0</AndroidFrameworkVersion>
<!-- The default Android API "id" that corresponds to $(AndroidApiLevel) -->
<AndroidPlatformId>34</AndroidPlatformId>
<AndroidPlatformId>35</AndroidPlatformId>

<!--
Colon-separated list of ABIs to build the mono JIT for.
Expand Down
12 changes: 6 additions & 6 deletions Configuration.props
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,13 @@
<!-- The min API level supported by Microsoft.Android.Sdk -->
<AndroidMinimumDotNetApiLevel Condition="'$(AndroidMinimumDotNetApiLevel)' == ''">21</AndroidMinimumDotNetApiLevel>
<!-- *Latest* *stable* API level binding that we support; used when building src/Xamarin.Android.Build.Tasks -->
<AndroidLatestStableApiLevel Condition="'$(AndroidLatestStableApiLevel)' == ''">34</AndroidLatestStableApiLevel>
<AndroidLatestStableApiLevel Condition="'$(AndroidLatestStableApiLevel)' == ''">35</AndroidLatestStableApiLevel>
<AndroidLatestStablePlatformId Condition="'$(AndroidLatestStablePlatformId)' == ''">$(AndroidLatestStableApiLevel)</AndroidLatestStablePlatformId>
<AndroidLatestStableFrameworkVersion Condition="'$(AndroidLatestStableFrameworkVersion)'==''">v14.0</AndroidLatestStableFrameworkVersion>
<AndroidLatestStableFrameworkVersion Condition="'$(AndroidLatestStableFrameworkVersion)'==''">v15.0</AndroidLatestStableFrameworkVersion>
<!-- *Latest* *unstable* API level binding that we support; this can be the same as *stable* -->
<AndroidLatestUnstableApiLevel Condition="'$(AndroidLatestUnstableApiLevel)' == ''">35</AndroidLatestUnstableApiLevel>
<AndroidLatestUnstablePlatformId Condition="'$(AndroidLatestUnstablePlatformId)' == ''">VanillaIceCream</AndroidLatestUnstablePlatformId>
<AndroidLatestUnstableFrameworkVersion Condition="'$(AndroidLatestUnstableFrameworkVersion)'==''">v14.0.99</AndroidLatestUnstableFrameworkVersion>
<AndroidLatestUnstableApiLevel Condition="'$(AndroidLatestUnstableApiLevel)' == ''">$(AndroidLatestStableApiLevel)</AndroidLatestUnstableApiLevel>
<AndroidLatestUnstablePlatformId Condition="'$(AndroidLatestUnstablePlatformId)' == ''">$(AndroidLatestStablePlatformId)</AndroidLatestUnstablePlatformId>
<AndroidLatestUnstableFrameworkVersion Condition="'$(AndroidLatestUnstableFrameworkVersion)'==''">$(AndroidLatestStableFrameworkVersion)</AndroidLatestUnstableFrameworkVersion>
<!-- The default API level used for $(TargetPlatformVersion) -->
<AndroidDefaultTargetDotnetApiLevel Condition=" '$(AndroidDefaultTargetDotnetApiLevel)' == '' ">$(AndroidLatestStableApiLevel)</AndroidDefaultTargetDotnetApiLevel>
<!-- The API level and TargetFrameworkVersion for the default Mono.Android.dll build -->
Expand Down Expand Up @@ -125,7 +125,7 @@
<XABuildToolsFolder Condition="'$(XABuildToolsFolder)' == ''">35.0.0</XABuildToolsFolder>
<XAPlatformToolsPackagePrefix Condition=" '$(HostOS)' == 'Darwin' "></XAPlatformToolsPackagePrefix>
<XAPlatformToolsVersion>34.0.5</XAPlatformToolsVersion>
<XABundleToolVersion Condition="'$(XABundleToolVersion)' == ''">1.15.1</XABundleToolVersion>
<XABundleToolVersion Condition="'$(XABundleToolVersion)' == ''">1.17.0</XABundleToolVersion>
<XAPackagesDir Condition=" '$(XAPackagesDir)' == '' And '$(NUGET_PACKAGES)' != ''">$(NUGET_PACKAGES)</XAPackagesDir>
<XAPackagesDir Condition=" '$(XAPackagesDir)' == '' And '$(HostOS)' == 'Windows'">$(userprofile)\.nuget\packages</XAPackagesDir>
<XAPackagesDir Condition=" '$(XAPackagesDir)' == '' And '$(HostOS)' != 'Windows'">$(HOME)/.nuget/packages</XAPackagesDir>
Expand Down
6 changes: 4 additions & 2 deletions Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,10 @@
* Major/Minor match Android stable API level, such as 30.0 for API 30.
* Bump first digit of the patch version for feature releases (and reset the first two digits to 0)
-->
<AndroidPackVersion>34.99.0</AndroidPackVersion>
<AndroidPackVersion>35.0.0</AndroidPackVersion>
<AndroidPackVersionSuffix>preview.7</AndroidPackVersionSuffix>
<IsStableBuild>false</IsStableBuild>
<IsStableBuild Condition=" '$(AndroidPackVersionSuffix)' == 'rtm' ">true</IsStableBuild>
</PropertyGroup>

<!-- Common <PackageReference/> versions -->
Expand All @@ -50,7 +52,7 @@
<MonoOptionsVersion>6.12.0.148</MonoOptionsVersion>
<SystemCollectionsImmutableVersion>8.0.0</SystemCollectionsImmutableVersion>
<SystemRuntimeCompilerServicesUnsafeVersion>6.0.0</SystemRuntimeCompilerServicesUnsafeVersion>
<ELFSharpVersion>2.13.1</ELFSharpVersion>
<ELFSharpVersion>2.17.3</ELFSharpVersion>
<HumanizerVersion>2.14.1</HumanizerVersion>
<MdocPackageVersion Condition=" '$(MdocPackageVersion)' == '' ">5.9.2.4</MdocPackageVersion>
</PropertyGroup>
Expand Down
3 changes: 2 additions & 1 deletion Documentation/docs-mobile/messages/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,8 @@ Please file an issue with the exact error message using the 'Help->Send Feedback
or 'Help->Report a Problem' in Visual Studio for Mac.
+ [XA0138](xa0138.md): %(AndroidAsset.AssetPack) and %(AndroidAsset.AssetPack) item metadata are only supported when `$(AndroidApplication)` is `true`.
+ [XA0139](xa0139.md): `@(AndroidAsset)` `{0}` has invalid `DeliveryType` metadata of `{1}`. Supported values are `installtime`, `ondemand` or `fastfollow`
+ [XA0140](xa0140.md):
+ [XA0140](xa0140.md):
+ [XA0141](xa0141.md): NuGet package '{0}' version '{1}' contains a shared library '{2}' which is not correctly aligned. See https://developer.android.com/guide/practices/page-sizes for more details

## XA1xxx: Project related

Expand Down
14 changes: 14 additions & 0 deletions Documentation/docs-mobile/messages/xa0141.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
title: .NET for Android warning XA0141
description: XA0141 warning code
ms.date: 22/07/2024
---
# .NET for Android warning XA0141

## Issue

NuGet package '{0}' version '{1}' contains a shared library '{2}' which is not correctly aligned. See https://developer.android.com/guide/practices/page-sizes for more details

## Solution

The indicated native shared library must be recompiled and relinked with the 16k alignment, as per URL indicated in the message.
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ public sealed class CheckApiCompatibility : Task
{ "v12.1", "v12.0" },
{ "v13.0", "v12.1" },
{ "v14.0", "v13.0" },
{ "v14.0.99", "v14.0" },
{ "v15.0", "v14.0" },
};

static readonly string assemblyToValidate = "Mono.Android.dll";
Expand Down Expand Up @@ -70,7 +70,6 @@ public sealed class CheckApiCompatibility : Task
public override bool Execute ()
{
Log.LogMessage (MessageImportance.High, $"CheckApiCompatibility for ApiLevel: {ApiLevel}");
Log.LogWarning ($"# jonp: TargetFramework={TargetFramework}");

// Check to see if Api has a previous Api defined.
if (!api_versions.TryGetValue (ApiLevel, out string previousApiLevel)) {
Expand Down
4 changes: 2 additions & 2 deletions build-tools/api-merge/merge-configuration.xml
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,9 @@
<File Path="api-32.xml.in" Level="32" />
<File Path="api-33.xml.in" Level="33" />
<File Path="api-34.xml.in" Level="34" />
<File Path="api-VanillaIceCream.xml.in" Level="35" />
<File Path="api-35.xml.in" Level="35" />
</Inputs>
<Outputs>
<File Path="api-VanillaIceCream.xml" LastLevel="35" />
<File Path="api-35.xml" LastLevel="35" />
</Outputs>
</Configuration>
114 changes: 55 additions & 59 deletions build-tools/automation/azure-pipelines.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,9 @@ extends:
binskim:
scanOutputDirectoryOnly: true
codeql:
runSourceLanguagesInSourceAnalysis: true
compiled:
enabled: false
justificationForDisabling: CodeQL runs against the nightly build
policheck:
enabled: false
justification: Built in task does not support multi-language scanning
Expand Down Expand Up @@ -465,7 +467,7 @@ extends:
condition: and(eq(dependencies.mac_build.result, 'Succeeded'), eq(dependencies.linux_build.result, 'Succeeded'), eq(variables['MicroBuildSignType'], 'Real'))
jobs:
# Check - "Xamarin.Android (Prepare .NET Release Sign Archives)"
- template: sign-artifacts/jobs/v2.yml@yaml-templates
- template: sign-artifacts/jobs/v3.yml@yaml-templates
parameters:
name: sign_net_mac_win
poolName: $(VSEngMicroBuildPool)
Expand All @@ -474,9 +476,12 @@ extends:
signedArtifactName: nuget-signed
usePipelineArtifactTasks: true
use1ESTemplate: true
uploadPrefix: sign-mac-win
handleUnmappedFiles: fail
timeoutInMinutes: 240

# Check - "Xamarin.Android (Prepare .NET Release Sign Linux Archive)"
- template: sign-artifacts/jobs/v2.yml@yaml-templates
- template: sign-artifacts/jobs/v3.yml@yaml-templates
parameters:
name: sign_net_linux
displayName: Sign Linux Archive
Expand All @@ -486,9 +491,12 @@ extends:
signedArtifactName: nuget-linux-signed
usePipelineArtifactTasks: true
use1ESTemplate: true
uploadPrefix: sign-linux
handleUnmappedFiles: fail
timeoutInMinutes: 120

# Check - "Xamarin.Android (Prepare .NET Release Convert NuGet to MSI)"
- template: nuget-msi-convert/job/v3.yml@yaml-templates
- template: nuget-msi-convert/job/v4.yml@yaml-templates
parameters:
yamlResourceName: yaml-templates
dependsOn: sign_net_mac_win
Expand All @@ -497,32 +505,42 @@ extends:
!*Darwin*
propsArtifactName: $(NuGetArtifactName)
signType: $(MicroBuildSignType)
use1ESTemplate: true
preConvertSteps:
- task: DownloadPipelineArtifact@2
inputs:
artifactName: nuget-signed
artifactPatterns: |
*Darwin*
downloadPath: $(Build.StagingDirectory)\drop\nugets
- task: DownloadPipelineArtifact@2
inputs:
artifactName: nuget-linux-signed
downloadPath: $(Build.StagingDirectory)\drop\nugets
postConvertSteps:
- task: DownloadPipelineArtifact@2
inputs:
artifactName: $(NuGetArtifactName)
downloadPath: $(Build.StagingDirectory)\sign-verify
patterns: |
**/SignVerifyIgnore.txt
- task: MicroBuildCodesignVerify@3
displayName: verify signed msi content
inputs:
TargetFolders: |
$(Build.ArtifactStagingDirectory)\bin\manifests
$(Build.ArtifactStagingDirectory)\bin\manifests-multitarget
$(Build.ArtifactStagingDirectory)\bin\manifests-packs
$(Build.ArtifactStagingDirectory)\bin\msi-nupkgs
ExcludeSNVerify: true
ApprovalListPathForCerts: $(Build.StagingDirectory)\sign-verify\SignVerifyIgnore.txt

# Check - "Xamarin.Android (Prepare .NET Release Push Internal)"
# Check - "Xamarin.Android (Prepare .NET Release Publish symbols and Push to Maestro)"
- job: push_signed_nugets
displayName: Push Internal
displayName: Publish symbols and Push to Maestro
dependsOn:
- nuget_convert
- sign_net_linux
condition: and(eq(dependencies.nuget_convert.result, 'Succeeded'), eq(dependencies.sign_net_linux.result, 'Succeeded'))
timeoutInMinutes: 60
timeoutInMinutes: 90
pool:
name: AzurePipelines-EO
image: $(WindowsPoolImage1ESPT)
Expand All @@ -532,67 +550,45 @@ extends:
variables:
- ${{ if eq(variables['MicroBuildSignType'], 'Real') }}:
- group: Publish-Build-Assets
templateContext:
outputs:
- output: artifactsDrop
dropServiceURI: https://devdiv.artifacts.visualstudio.com/DefaultCollection
buildNumber: $(ReleaseDropPrefix)/symbols
dropMetadataContainerName: DropMetadata-$(Build.BuildId)-symbols-$(System.JobAttempt)
sourcePath: $(Build.StagingDirectory)\symbols
retentionDays: 120
toLowerCase: false
steps:
- checkout: self
clean: true
submodules: recursive

# Download symbols to be published to the symbols artifact drop declared above
- task: DownloadPipelineArtifact@2
inputs:
artifactName: nuget-signed
downloadPath: $(Build.StagingDirectory)\nuget-signed

- task: DownloadPipelineArtifact@2
inputs:
artifactName: nuget-linux-signed
downloadPath: $(Build.StagingDirectory)\nuget-signed
artifactName: $(WindowsToolchainPdbArtifactName)
downloadPath: $(Build.StagingDirectory)\symbols

- task: DownloadPipelineArtifact@2
inputs:
artifactName: vs-msi-nugets
downloadPath: $(Build.StagingDirectory)\nuget-signed
artifactName: DropMetadata-$(Build.BuildId)-nugets-$(System.JobAttempt)
downloadPath: $(Build.StagingDirectory)\metadata
displayName: Download nugets drop metadata

- task: DownloadPipelineArtifact@2
- powershell: |
$jsonContent = Get-Content -Path "$(Build.StagingDirectory)\metadata\VSTSDrop.json" -Raw | ConvertFrom-Json
$dropPrefix = $jsonContent.VstsDropBuildArtifact.VstsDropUrl -replace 'https://devdiv.artifacts.visualstudio.com/DefaultCollection/_apis/drop/drops/' -replace '/nugets'
Write-Host "##vso[task.setvariable variable=ReleaseDropPrefix]$dropPrefix"
displayName: Set variable ReleaseDropPrefix
# Download nugets drop created by nuget-msi-convert/job/v4.yml and publish to maestro
- task: ms-vscs-artifact.build-tasks.artifactDropDownloadTask-1.artifactDropDownloadTask@1
displayName: Download $(ReleaseDropPrefix)/nugets
inputs:
artifactName: $(WindowsToolchainPdbArtifactName)
downloadPath: $(Build.StagingDirectory)\nuget-signed

- template: templates\common\upload-vs-insertion-artifacts.yml@sdk-insertions
parameters:
githubToken: $(GitHub.Token)
githubContext: $(NupkgCommitStatusName)
blobName: $(NupkgCommitStatusName)
packagePrefix: xamarin-android
artifactsPath: $(Build.StagingDirectory)\nuget-signed
yamlResourceName: yaml-templates

- template: templates\common\upload-vs-insertion-artifacts.yml@sdk-insertions
parameters:
githubToken: $(GitHub.Token)
githubContext: $(VSDropCommitStatusName)
blobName: $(VSDropCommitStatusName)
packagePrefix: xamarin-android
artifactsPath: $(Build.StagingDirectory)\$(VSDropCommitStatusName)
yamlResourceName: yaml-templates
downloadSteps:
- task: DownloadPipelineArtifact@2
inputs:
artifactName: vsdrop-signed
downloadPath: $(Build.StagingDirectory)\$(VSDropCommitStatusName)

- template: templates\common\upload-vs-insertion-artifacts.yml@sdk-insertions
parameters:
githubToken: $(GitHub.Token)
githubContext: $(MultiTargetVSDropCommitStatusName)
blobName: $(MultiTargetVSDropCommitStatusName)
packagePrefix: xamarin-android
artifactsPath: $(Build.StagingDirectory)\$(MultiTargetVSDropCommitStatusName)
yamlResourceName: yaml-templates
downloadSteps:
- task: DownloadPipelineArtifact@2
inputs:
artifactName: vsdrop-multitarget-signed
downloadPath: $(Build.StagingDirectory)\$(MultiTargetVSDropCommitStatusName)
dropServiceURI: https://devdiv.artifacts.visualstudio.com/DefaultCollection
buildNumber: $(ReleaseDropPrefix)/nugets
destinationPath: $(Build.StagingDirectory)\nuget-signed

- task: DotNetCoreCLI@2
displayName: build Xamarin.Android.Tools.BootstrapTasks.sln
Expand Down
Loading

0 comments on commit 37c8656

Please sign in to comment.