diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json
new file mode 100644
index 000000000..5e618d5e6
--- /dev/null
+++ b/.config/dotnet-tools.json
@@ -0,0 +1,27 @@
+{
+ "version": 1,
+ "isRoot": true,
+ "tools": {
+ "cake.tool": {
+ "version": "5.0.0",
+ "commands": [
+ "dotnet-cake"
+ ],
+ "rollForward": false
+ },
+ "dotnet-test-slicer": {
+ "version": "0.1.0-alpha7",
+ "commands": [
+ "dotnet-test-slicer"
+ ],
+ "rollForward": false
+ },
+ "api-tools": {
+ "version": "1.4.2-preview.2",
+ "commands": [
+ "api-tools"
+ ],
+ "rollForward": false
+ }
+ }
+}
\ No newline at end of file
diff --git a/.github/ISSUE_TEMPLATE/01-use-package.yml b/.github/ISSUE_TEMPLATE/01-use-package.yml
index 720b2eef6..c6d3106bc 100644
--- a/.github/ISSUE_TEMPLATE/01-use-package.yml
+++ b/.github/ISSUE_TEMPLATE/01-use-package.yml
@@ -15,6 +15,7 @@ body:
options:
- net8.0-android
- net9.0-android
+ - net10.0-android (Preview)
- Other
validations:
required: true
@@ -23,7 +24,7 @@ body:
attributes:
label: Affected platform version
description: Please provide the version number of the platform you see this issue on.
- placeholder: E.g. VS 2022 17.9.0, .NET 8.0.100, etc.
+ placeholder: E.g. VS 2022 17.14.0, .NET 9.0.100, etc.
validations:
required: true
- type: textarea
diff --git a/.github/ISSUE_TEMPLATE/04-other.yml b/.github/ISSUE_TEMPLATE/04-other.yml
index a33b599cb..a745c0542 100644
--- a/.github/ISSUE_TEMPLATE/04-other.yml
+++ b/.github/ISSUE_TEMPLATE/04-other.yml
@@ -14,6 +14,7 @@ body:
options:
- net8.0-android
- net9.0-android
+ - net10.0-android (Preview)
- Other
validations:
required: true
@@ -22,7 +23,7 @@ body:
attributes:
label: Affected platform version
description: Please provide the version number of the platform you see this issue on.
- placeholder: E.g. VS 2022 17.9.0, .NET 8.0.100, etc.
+ placeholder: E.g. VS 2022 17.14.0, .NET 9.0.100, etc.
validations:
required: true
- type: textarea
diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md
index 15d6de3ed..f96cdb902 100644
--- a/.github/copilot-instructions.md
+++ b/.github/copilot-instructions.md
@@ -136,7 +136,7 @@ For comprehensive guidance on troubleshooting binding issues, see: https://githu
## Target Frameworks
### Current Support
-- **Primary**: `net8.0-android` (API 21+)
+- **Primary**: `net9.0-android` (API 21+)
- **Migration**: `net10.0-android` (API 35+) - migration capability exists but not currently enabled
- **Legacy**: Xamarin.Android support ended May 1, 2024
@@ -150,12 +150,12 @@ For comprehensive guidance on troubleshooting binding issues, see: https://githu
### NuGet Package Structure
```
lib/
- net8.0-android34.0/
+ net9.0-android35.0/
{assembly}.dll
net10.0-android36.0/
{assembly}.dll
build/
- net8.0-android34.0/
+ net9.0-android35.0/
{package}.targets
net10.0-android36.0/
{package}.targets
diff --git a/BUILDING.md b/BUILDING.md
index dd3842949..760c06d4e 100644
--- a/BUILDING.md
+++ b/BUILDING.md
@@ -4,7 +4,7 @@
Before building the libraries and samples in this repository, you will need to install:
- * [.NET](https://dotnet.microsoft.com/download) ([.NET SDK 8.0.404](https://github.com/dotnet/core/blob/main/release-notes/8.0/8.0.11/8.0.11.md?WT.mc_id=dotnet-35129-website) is currently required)
+ * [.NET 9.0](https://dotnet.microsoft.com/download) (.NET SDK 9.0 is currently required)
* [Cake .NET Tool](http://cakebuild.net):
diff --git a/Directory.Build.props b/Directory.Build.props
index 2afda6031..69cd15992 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -6,8 +6,17 @@
$(BUILD_SOURCEVERSION)
- <_DefaultTargetFrameworks>net8.0-android
- <_DefaultNetTargetFrameworks>net8.0
+ <_DefaultNetTargetFramework>net9.0
+
+ <_DefaultPlatformVersionBase>35
+ <_DefaultTargetFrameworkVersionBase>9.0
+ <_DefaultTargetFrameworkBase>net$(_DefaultTargetFrameworkVersionBase)-android$(_DefaultPlatformVersionBase).0
+
+ <_DefaultPlatformVersionNext>36
+ <_DefaultTargetFrameworkVersionNext>10.0
+ <_DefaultTargetFrameworkNext>net$(_DefaultTargetFrameworkVersionNext)-android$(_DefaultPlatformVersionNext).0
+
+ <_DefaultTargetFrameworks>$(_DefaultTargetFrameworkBase);$(_DefaultTargetFrameworkNext)
false
@@ -85,13 +94,16 @@
-
-
+
+
+
+
-
+
+
diff --git a/azure-pipelines-public.yml b/azure-pipelines-public.yml
index e56208754..6afd3cf35 100644
--- a/azure-pipelines-public.yml
+++ b/azure-pipelines-public.yml
@@ -3,12 +3,6 @@ trigger: none
pr:
- main
-parameters:
-- name: RunDotnetNextTest
- displayName: Run on .NET next preview?
- type: boolean
- default: false
-
variables:
- template: build/ci/variables.yml
@@ -23,7 +17,6 @@ stages:
name: $(NetCorePublicPoolName)
demands:
- ImageOverride -equals $(WindowsPoolImageNetCorePublic)
- runDotnetNextTest: ${{ parameters.RunDotnetNextTest }}
use1ESTemplate: false
installAndroidDependencies: true
@@ -37,7 +30,6 @@ stages:
buildPool:
name: Azure Pipelines
vmImage: macOS-15
- runDotnetNextTest: ${{ parameters.RunDotnetNextTest }}
use1ESTemplate: false
- template: build/ci/stage-standard-tests.yml@self
@@ -46,5 +38,4 @@ stages:
name: $(NetCorePublicPoolName)
demands:
- ImageOverride -equals $(WindowsPoolImageNetCorePublic)
- runDotnetNextTest: ${{ parameters.RunDotnetNextTest }}
installAndroidDependencies: true
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index 95d4e4913..93b441e01 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -16,10 +16,6 @@ parameters:
displayName: Run Extended Tests?
type: boolean
default: false
-- name: RunDotnetNextTest
- displayName: Run on .NET next preview?
- type: boolean
- default: false
variables:
# Variables used by both AndroidX/GPS go in the template
@@ -61,7 +57,6 @@ extends:
image: $(windowsImage)
os: windows
runAPIScan: true
- runDotnetNextTest: ${{ parameters.RunDotnetNextTest }}
- stage: build_mac
displayName: Build - Mac
@@ -77,7 +72,6 @@ extends:
demands:
- macOS.Name -equals Sonoma
- macOS.Architecture -equals x64
- runDotnetNextTest: ${{ parameters.RunDotnetNextTest }}
- template: build/ci/stage-standard-tests.yml@self
parameters:
@@ -85,7 +79,6 @@ extends:
name: $(windowsAgentPoolName)
image: $(windowsImage)
os: windows
- runDotnetNextTest: ${{ parameters.RunDotnetNextTest }}
- template: build/ci/stage-extended-tests.yml@self
parameters:
@@ -94,6 +87,5 @@ extends:
name: $(windowsAgentPoolName)
image: $(windowsImage)
os: windows
- runDotnetNextTest: ${{ parameters.RunDotnetNextTest }}
- template: build/ci/stage-sign-artifacts.yml@self
diff --git a/build.cake b/build.cake
index ba07553d7..c390805ec 100755
--- a/build.cake
+++ b/build.cake
@@ -7,28 +7,21 @@
#addin nuget:?package=SharpZipLib&version=1.4.2
// Imported scripts
-#load "build/cake/nuget-install.cake"
#load "build/cake/setup-environment.cake"
#load "build/cake/update-config.cake"
#load "build/cake/tests.cake"
#load "build/cake/gps-parameters.cake"
-#load "build/cake/dotnet-next.cake"
#load "build/cake/binderate.cake"
#load "build/cake/build-and-package.cake"
#load "build/cake/validations.cake"
#load "build/cake/executive-order.cake"
#load "build/cake/clean.cake"
#load "build/cake/performance-timings.cake"
-#load "build/cake/build-android-libraries-net10-net8.cake"
-
-// Migrate packages to net10
-bool IsMigratingNet10 = false;
using System.Xml.Linq;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
-
// The main configuration points
var TARGET = Argument ("t", Argument ("target", "Default"));
var CONFIGURATION = Argument ("c", Argument ("configuration", "Release"));
@@ -48,13 +41,6 @@ Information ($"BUILD_COMMIT : {BUILD_COMMIT}");
Information ($"BUILD_NUMBER : {BUILD_NUMBER}");
Information ($"BUILD_TIMESTAMP : {BUILD_TIMESTAMP}");
-RunTarget("nuget-install");
-
-if (IsMigratingNet10)
-{
- RunTarget("build-android-libraries-net10-net8");
-}
-
Task ("packages")
.IsDependentOn ("binderate")
.IsDependentOn ("nuget");
diff --git a/build/cake/build-and-package.cake b/build/cake/build-and-package.cake
index f8958c45e..0e372ab6a 100644
--- a/build/cake/build-and-package.cake
+++ b/build/cake/build-and-package.cake
@@ -18,32 +18,8 @@ Task ("nuget")
"./generated/AndroidX.sln",
new DotNetBuildSettings { MSBuildSettings = settings }
);
-
- RunTarget("nuget-uninstall");
-
});
-Task ("nuget-pack-without-build")
- .Does
- (
- () =>
- {
- var settings = new DotNetMSBuildSettings ()
- .SetConfiguration (CONFIGURATION)
- .EnableBinaryLogger ($"./output/nuget-pack-without-build.{CONFIGURATION}.binlog")
- .WithProperty ("NoBuild", "true")
- .WithProperty ("PackageOutputPath", MakeAbsolute ((DirectoryPath)"./output/").FullPath)
- .WithTarget ("Pack");
-
- DotNetBuild
- (
- "./generated/AndroidX.sln",
- new DotNetBuildSettings { MSBuildSettings = settings }
- );
- }
- );
-
-
// Builds the .csproj projects
Task ("libs")
.IsDependentOn("metadata-verify")
diff --git a/build/cake/build-android-libraries-net10-net8.cake b/build/cake/build-android-libraries-net10-net8.cake
deleted file mode 100644
index b8e1e4c97..000000000
--- a/build/cake/build-android-libraries-net10-net8.cake
+++ /dev/null
@@ -1,936 +0,0 @@
-// Install ZString as a Cake Addin
-#addin nuget:?package=ZString&version=2.6.0
-
-// Install ZString as a Cake Tool
-// #tool nuget:?package=ZString&version=2.6.0
-
-/*
-Quick test
-
-```shell
-git clean -xdf ; dotnet cake -t=build-android-libraries-net10-net8
-```
-
-Step by step tests:
-
-```shell
- git clean -xdf
- dotnet cake -t=net8-prepare-binderate-build
- dotnet cake -t=revert-changes-net8
- dotnet cake -t=net10-net8-prepare-binderate-build
- dotnet cake -t=copy-net8-with-net8-to-multi-target
- dotnet cake -t=nuget-pack-without-build-net10-net8
- dotnet cake -t=revert-changes-net10-net8
-```
-
-
-```shell
- git clean -xdf
- dotnet cake -t=net8-prepare-binderate-build
- dotnet cake -t=revert-changes-net8
- dotnet cake -t=net10-prepare-binderate-build
- dotnet cake -t=revert-changes-net10
- dotnet cake -t=net10-net8-prepare-binderate-build
- dotnet cake -t=copy-net8-with-net8-to-multi-target
- dotnet cake -t=nuget-pack-without-build-net10-net8
- dotnet cake -t=revert-changes-net10-net8
-```
-
-Tests from scratch:
-
-```bash
-git clone \
- --branch mu-20241209-net10-removal-of-generator-workarounds \
- https://github.com/dotnet/android-libraries.git \
- al-bash/
-cd al-bash/
-dotnet cake -t:build-android-libraries-net10-net8
-```
-
-```pwsh
-git clone `
- --branch mu-20241209-net10-removal-of-generator-workarounds `
- https://github.com/dotnet/android-libraries.git `
- al-pwsh/
-cd al-pwsh/
-dotnet cake -t:build-android-libraries-net10-net8
-```
-*/
-using System.Threading.Tasks;
-
-// true - using installed .NET Android SDK (dotnet/android)
-// false - using custom built .NET Android SDK (dotnet/android)
-bool IsMigratingNet10UsingDotnetInstallation = true;
-
-
-Task ("build-android-libraries-net10-net8")
- .Does
- (
- () =>
- {
- // Parallel.Invoke
- // (
- // () =>
- // {
- // if (IsMigratingNet10UsingDotnetInstallation == false)
- // {
- // RunTarget("build-prepare-dotnet-android");
- // }
- // },
- // () => RunTarget("net8-prepare-binderate-build")
- // );
-
-
- if (IsMigratingNet10UsingDotnetInstallation == false)
- {
- RunTarget("build-prepare-dotnet-android");
- }
- RunTarget("net8-prepare-binderate-build");
- RunTarget("revert-changes-net8");
- // RunTarget("net10-prepare-binderate-build"); // not needed - for testing purposes only
- // RunTarget("revert-changes-net10");
- RunTarget("net10-net8-prepare-binderate-build");
- RunTarget("copy-net8-with-net8-to-multi-target");
- RunTarget("nuget-pack-without-build-net10-net8");
- RunTarget("revert-changes-net10-net8");
- }
- );
-
-string dotnet;
-string path_global_json = "./global.json";
-string content_global_json;
-DeleteDirectorySettings delete_directory_setting = new ()
- {
- Recursive = true,
- Force = true
- };
-
-Task ("nuget-pack-without-build-net10-net8")
- .Does
- (
- () =>
- {
- RunTarget("nuget-install");
-
- if (IsMigratingNet10UsingDotnetInstallation == false)
- {
- dotnet = "../dotnet-android/dotnet-local.sh";
- }
- else
- {
- dotnet = "dotnet";
- }
-
- var projects = GetFiles($"./generated/**/*.csproj");
-
- foreach(var project in projects)
- {
- Information($"project = {project}");
- }
-
- Information($"{new string('=', 120)}");
- string dotnet_pack = "pack"
- + " " +
- "__PLACEHOLDER_PROJECT__"
- + " " +
- "--no-build"
- + " " +
- "--output ./output/"
- ;
- /*
- System has ran out of application memory.
-
- dotnet(94604) MallocStackLogging: can't turn off malloc stack logging because it was not enabled.
- */
- Information($"{new string('=', 120)}");
- Information($" Environment.ProcessorCount = {Environment.ProcessorCount}");
-
- Parallel.ForEach
- (
- projects,
- new ParallelOptions
- {
- MaxDegreeOfParallelism = (int) Math.Round(0.75 * Environment.ProcessorCount)
- },
- (FilePath file) =>
- {
- string dotnet_pack_project = dotnet_pack.Replace
- (
- "__PLACEHOLDER_PROJECT__",
- file.ToString()
- );
- Information($"dotnet_pack = {dotnet_pack}");
- Information($"dotnet_pack_project = {dotnet_pack_project}");
- StartProcess(dotnet, dotnet_pack_project);
- Information($"{file.ToString()}");
- }
- );
-
- RunTarget("nuget-uninstall");
- }
- );
-
-
-Task ("copy-net8-with-net8-to-multi-target")
- .Does
- (
- () =>
- {
- Information("Deleting");
- Information($" ./generated/");
- DeleteDirectories(GetDirectories("./generated/"), delete_directory_setting);
-
- string assembly_name_source;
- string assembly_name_target;
-
- var assemblies = GetFiles($"generated-net8.0/**/bin/Release/net8.0-android/*.dll");
-
- foreach(var assembly in assemblies)
- {
- assembly_name_source = System.IO.Path.GetFullPath(assembly.ToString());
- assembly_name_target = System.IO.Path
- .GetDirectoryName(assembly_name_source)
- .Replace
- (
- "generated-net8.0",
- "generated-net10.0-net8.0"
- );
- DateTime dt_c_source = System.IO.File.GetCreationTime(assembly_name_source);
- DateTime dt_a_source = System.IO.File.GetLastAccessTime(assembly_name_source);
- DateTime dt_w_source = System.IO.File.GetLastWriteTime(assembly_name_source);
- DateTime dt_c_target = System.IO.File.GetCreationTime(assembly_name_target);
- DateTime dt_a_target = System.IO.File.GetLastAccessTime(assembly_name_target);
- DateTime dt_w_target = System.IO.File.GetLastWriteTime(assembly_name_target);
-
- Information($"{new string('-', 120)}");
- Information($"source {assembly_name_source}");
- Information($" c: {dt_c_source.ToString("yyyyMMdd-HHmmss")}");
- Information($" w: {dt_w_source.ToString("yyyyMMdd-HHmmss")}");
- Information($" a: {dt_a_source.ToString("yyyyMMdd-HHmmss")}");
- Information($"target {assembly_name_target}");
- Information($" c: {dt_c_target.ToString("yyyyMMdd-HHmmss")}");
- Information($" w: {dt_w_target.ToString("yyyyMMdd-HHmmss")}");
- Information($" a: {dt_a_target.ToString("yyyyMMdd-HHmmss")}");
-
- CopyFiles(assembly_name_source, assembly_name_target);
- }
-
- string s = "generated-net10.0-net8.0";
- string t = "generated";
-
- Information($"{new string('-', 120)}");
- Information($"Moving");
- Information($" source {s}");
- Information($" target {t}");
- MoveDirectory(s, t);
- }
- );
-
-
-Task ("net10-net8-prepare-binderate-build")
- .Does
- (
- () =>
- {
- Information($"{new string('=', 120)}");
- Information("net10-net8-prepare-binderate-build");
-
- DeleteDirectories(GetDirectories("./output/"), delete_directory_setting);
- DeleteDirectories(GetDirectories("./externals/"), delete_directory_setting);
- DeleteDirectories(GetDirectories("./generated/"), delete_directory_setting);
- EnsureDirectoryExists("./output");
- EnsureDirectoryExists("./output/net10.0-net8.0-build-files/");
-
- RunTarget("nuget-install");
-
- /*
- ../dotnet-android/dotnet-local.sh cake -t=net10-prepare-binderate-build
- */
-
- if (IsMigratingNet10UsingDotnetInstallation == false)
- {
- dotnet = "../dotnet-android/dotnet-local.sh";
- }
- else
- {
- dotnet = "dotnet";
- }
-
- content_global_json =
- """
- {
- "sdk":
- {
- "version": "10.0.100-preview.3.25201.16",
- "rollForward": "patch"
- },
- "msbuild-sdks":
- {
- "MSBuild.Sdk.Extras": "3.0.44",
- "Microsoft.Build.Traversal": "4.1.82",
- "Microsoft.Build.NoTargets": "3.7.56",
- "Xamarin.Legacy.Sdk": "0.2.0-alpha4"
- }
- }
- """;
- System.IO.File.WriteAllText(path_global_json, content_global_json);
-
- RunTarget("binderate");
- Parallel.ForEach
- (
- files_net10_net8.Keys,
- new ParallelOptions
- {
- MaxDegreeOfParallelism = (int) Math.Round(0.75 * Environment.ProcessorCount)
- },
- (string file) =>
- {
- List<(string text_old, string text_new)> replacements = files_net10_net8[file];
-
- string content = System.IO.File.ReadAllText(file);
-
- foreach((string text_old, string text_new) pair in replacements)
- {
- if (pair.text_old == null)
- {
- content = pair.text_new;
- break;
- }
- else
- {
- content = content.Replace(pair.text_old, pair.text_new);
- }
- }
-
- System.IO.File.WriteAllText(file, content);
- }
- );
-
- Information($"{new string('=', 120)}");
- if (IsRunningOnMacOs())
- {
- // StartProcess
- // (
- // dotnet,
- // "build -t:InstallAndroidDependencies"
- // + " " +
- // "./generated/AndroidX.sln"
- // + " " +
- // "-f:net10.0-android"
- // + " " +
- // "-p:AndroidSdkDirectory=\"$HOME/Library/Android/sdk\""
- // + " " +
- // "-p:AcceptAndroidSDKLicenses=True"
- // );
- // StartProcess("sudo", $"{dotnet} workload restore ./generated/AndroidX.sln");
- }
- if (IsRunningOnWindows())
- {
- StartProcess
- (
- dotnet,
- "build -t:InstallAndroidDependencies"
- + " " +
- "./generated/AndroidX.sln"
- + " " +
- "-f:net10.0-android"
- + " " +
- "-p:AndroidSdkDirectory=\"C:\\Android\\android-sdk\\\""
- + " " +
- "-p:AcceptAndroidSDKLicenses=True"
- );
- StartProcess("dotnet", $"workload restore ./generated/AndroidX.sln");
- }
- RunTarget("nuget");
-
- CopyFiles("./global.json", "./output/net10.0-net8.0-build-files/");
- CopyFiles("./Directory.Build.props", "./output/net10.0-net8.0-build-files/");
-
- RunTarget("nuget-uninstall");
-
- //git restore pathTo/MyFile
-
- string s = "generated";
- string t = "generated-net10.0-net8.0";
-
- Information($"{new string('-', 120)}");
- Information($"Moving");
- Information($" source {s}");
- Information($" target {t}");
- MoveDirectory(s, t);
- //CopyDirectory(s, t);
- }
- );
-
-Task ("net8-prepare-binderate-build")
- .Does
- (
- () =>
- {
- Information($"{new string('=', 120)}");
- Information("net8-prepare-binderate-build");
-
- DeleteDirectories(GetDirectories("./output/"), delete_directory_setting);
- DeleteDirectories(GetDirectories("./externals/"), delete_directory_setting);
- DeleteDirectories(GetDirectories("./generated/"), delete_directory_setting);
- EnsureDirectoryExists("./output");
- EnsureDirectoryExists("./output/net8.0-build-files/");
-
- RunTarget("nuget-install");
-
- content_global_json =
- """
- {
- "sdk":
- {
- "version": "8.0.408",
- "rollForward": "patch"
- },
- "msbuild-sdks":
- {
- "MSBuild.Sdk.Extras": "3.0.44",
- "Microsoft.Build.Traversal": "4.1.82",
- "Microsoft.Build.NoTargets": "3.7.56",
- "Xamarin.Legacy.Sdk": "0.2.0-alpha4"
- }
- }
- """;
- System.IO.File.WriteAllText(path_global_json, content_global_json);
-
- if (IsMigratingNet10UsingDotnetInstallation == false)
- {
- dotnet = "../dotnet-android/dotnet-local.sh";
- }
- else
- {
- dotnet = "dotnet";
- }
-
- RunTarget("binderate");
- if (IsRunningOnMacOs())
- {
- // StartProcess
- // (
- // dotnet,
- // "build -t:InstallAndroidDependencies"
- // + " " +
- // "./generated/AndroidX.sln"
- // + " " +
- // "-f:net8.0-android"
- // + " " +
- // "-p:AndroidSdkDirectory=\"$HOME/Library/Android/sdk\""
- // + " " +
- // "-p:AcceptAndroidSDKLicenses=True"
- // );
- // StartProcess("sudo", $"{dotnet} workload restore ./generated/AndroidX.sln");
- }
- if (IsRunningOnWindows())
- {
- StartProcess
- (
- dotnet,
- "build -t:InstallAndroidDependencies"
- + " " +
- "./generated/AndroidX.sln"
- + " " +
- "-f:net8.0-android"
- + " " +
- "-p:AndroidSdkDirectory=\"C:\\Android\\android-sdk\\\""
- + " " +
- "-p:AcceptAndroidSDKLicenses=True"
- );
- StartProcess("dotnet", $"workload restore ./generated/AndroidX.sln");
- }
- RunTarget("nuget");
-
- CopyFiles("./global.json", "./output/net8.0-build-files/");
- CopyFiles("./Directory.Build.props", "./output/net8.0-build-files/");
-
- RunTarget("nuget-uninstall");
-
- string s = "generated";
- string t = "generated-net8.0";
-
- Information($"{new string('-', 120)}");
- Information($"Moving");
- Information($" source {s}");
- Information($" target {t}");
- MoveDirectory(s, t);
- //CopyDirectory(s, t);
- }
- );
-
-Task ("net10-prepare-binderate-build")
- .Does
- (
- () =>
- {
- DeleteDirectories(GetDirectories("./output/"), delete_directory_setting);
- DeleteDirectories(GetDirectories("./externals/"), delete_directory_setting);
- DeleteDirectories(GetDirectories("./generated/"), delete_directory_setting);
- EnsureDirectoryExists("./output");
- EnsureDirectoryExists("./output/net10.0-build-files/");
-
- RunTarget("nuget-install");
-
- content_global_json =
- """
- {
- "sdk":
- {
- "version": "10.0.100-preview.3.25201.16",
- "rollForward": "patch"
- },
- "msbuild-sdks":
- {
- "MSBuild.Sdk.Extras": "3.0.44",
- "Microsoft.Build.Traversal": "4.1.82",
- "Microsoft.Build.NoTargets": "3.7.56",
- "Xamarin.Legacy.Sdk": "0.2.0-alpha4"
- }
- }
- """;
- System.IO.File.WriteAllText(path_global_json, content_global_json);
-
- Information("Change files");
- Parallel.ForEach
- (
- files_net10.Keys,
- new ParallelOptions
- {
- MaxDegreeOfParallelism = (int) Math.Round(0.75 * Environment.ProcessorCount)
- },
- (string file) =>
- {
- List<(string text_old, string text_new)> replacements = files_net10[file];
-
- string content = System.IO.File.ReadAllText(file);
-
- foreach((string text_old, string text_new) pair in replacements)
- {
- if (pair.text_old == null)
- {
- content = pair.text_new;
- break;
- }
- else
- {
- content = content.Replace(pair.text_old, pair.text_new);
- }
- }
-
- System.IO.File.WriteAllText(file, content);
- }
- );
-
- if (IsMigratingNet10UsingDotnetInstallation == false)
- {
- dotnet = "../dotnet-android/dotnet-local.sh";
- }
- else
- {
- dotnet = "dotnet";
- }
-
- RunTarget("binderate");
- if (IsRunningOnMacOs())
- {
- // StartProcess
- // (
- // dotnet,
- // "build -t:InstallAndroidDependencies"
- // + " " +
- // "./generated/AndroidX.sln"
- // + " " +
- // "-f:net10.0-android"
- // + " " +
- // "-p:AndroidSdkDirectory=\"$HOME/Library/Android/sdk\""
- // + " " +
- // "-p:AcceptAndroidSDKLicenses=True"
- // );
- // StartProcess("sudo", $"{dotnet} workload restore ./generated/AndroidX.sln");
- }
- if (IsRunningOnWindows())
- {
- StartProcess
- (
- dotnet,
- "build -t:InstallAndroidDependencies"
- + " " +
- "./generated/AndroidX.sln"
- + " " +
- "-f:net10.0-android"
- + " " +
- "-p:AndroidSdkDirectory=\"C:\\Android\\android-sdk\\\""
- + " " +
- "-p:AcceptAndroidSDKLicenses=True"
- );
- StartProcess("dotnet", $"workload restore ./generated/AndroidX.sln");
- }
- RunTarget("nuget");
-
- CopyFiles("./global.json", "./output/net10.0-build-files/");
- CopyFiles("./Directory.Build.props", "./output/net10.0-build-files/");
-
- RunTarget("nuget-uninstall");
-
- string s = "generated";
- string t = "generated-net10.0";
-
- Information($"{new string('-', 120)}");
- Information($"Moving");
- Information($" source {s}");
- Information($" target {t}");
- MoveDirectory(s, t);
- //CopyDirectory(s, t);
- }
- );
-
-Task ("build-prepare-dotnet-android")
- .Does
- (
- () =>
- {
- if ( BuildSystem.IsRunningOnAzurePipelines || BuildSystem.IsRunningOnGitHubActions )
- {
- Information("IsRunningOnAzurePipelines || IsRunningOnGitHubActions");
- RunTarget("prepare-dotnet-android");
- }
-
- Information("Local Build");
- content_global_json =
- """
- {
- "sdk":
- {
- "version": "8.0.408",
- "rollForward": "patch"
- },
- "msbuild-sdks":
- {
- "MSBuild.Sdk.Extras": "3.0.44",
- "Microsoft.Build.Traversal": "4.1.82",
- "Microsoft.Build.NoTargets": "3.7.56",
- "Xamarin.Legacy.Sdk": "0.2.0-alpha4"
- }
- }
- """;
- System.IO.File.WriteAllText(path_global_json, content_global_json);
-
- string dir = "../dotnet-android/";
- DeleteDirectories(GetDirectories(dir), delete_directory_setting);
-
- StartProcess("git", $"clone --recursive https://github.com/dotnet/android.git {dir}");
-
- ProcessSettings ps = new ProcessSettings
- {
- WorkingDirectory = dir,
- RedirectStandardOutput = true,
- RedirectStandardError = true
- };
-
- Cysharp.Text.Utf16ValueStringBuilder sb = Cysharp.Text.ZString.CreateStringBuilder();
-
- ps.RedirectedStandardOutputHandler = (output) =>
- {
- sb.AppendLine(output);
- return output;
- };
-
- Information("make prepare");
- ps.Arguments = new ProcessArgumentBuilder().Append("prepare");
- StartProcess("make",ps);
- Information(sb.ToString());
- sb.Clear();
-
- Information("make");
- ps.Arguments = new ProcessArgumentBuilder().Append("");
- StartProcess("make",ps);
-
- ps.Arguments = new ProcessArgumentBuilder().Append("--version");
- StartProcess($"{dir}/dotnet-local.sh", ps);
- }
- );
-
-Task ("prepare-dotnet-android")
- .Does
- (
- () =>
- {
- if (IsRunningOnMacOs())
- {
- Information("IsRunningOnMacOs");
- // https://github.com/dotnet/android/blob/main/Documentation/building/unix/dependencies.md
-
- StartProcess("curl", $"-c \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\"");
-
- StartProcess("brew", $"install automake");
- StartProcess("brew", $"install autoconf");
- StartProcess("brew", $"install cmake");
- StartProcess("brew", $"install libtool");
- StartProcess("brew", $"install p7zip");
- StartProcess("brew", $"install gdk-pixbuf");
- StartProcess("brew", $"install gettext");
- StartProcess("brew", $"install coreutils");
- StartProcess("brew", $"install findutils");
- StartProcess("brew", $"install gnu-tar");
- StartProcess("brew", $"install gnu-sed");
- StartProcess("brew", $"install gawk");
- StartProcess("brew", $"install gnutls");
- StartProcess("brew", $"install gnu-indent");
- StartProcess("brew", $"install gnu-getopt");
- StartProcess("brew", $"install intltool");
- StartProcess("brew", $"install ninja");
- StartProcess("brew", $"install scons");
- StartProcess("brew", $"install wget");
- StartProcess("brew", $"install xz");
-
- }
- if (IsRunningOnWindows())
- {
- Information("IsRunningOnWindows");
- // https://github.com/dotnet/android/blob/main/Documentation/building/windows/dependencies.md
- // https://winget.run/search
-
- /*
- StartProcess("winget", $"install -e --id JernejSimoncic.Wget");
- StartProcess("winget", $"install -e --id Ninja-build.Ninja");
- */
- }
-
-
- }
- );
-
-Task ("revert-changes-net8")
- .Does
- (
- () =>
- {
- // NO OP
- }
- );
-
-Task ("revert-changes-net10")
- .Does
- (
- () =>
- {
- foreach(string file in files_net10.Keys)
- {
- StartProcess("git", $"restore {file}");
- }
-
- StartProcess("git", $"restore global.json");
- }
- );
-
-Task ("revert-changes-net10-net8")
- .Does
- (
- () =>
- {
- foreach(string file in files_net10_net8.Keys)
- {
- StartProcess("git", $"restore {file}");
- }
-
- StartProcess("git", $"restore global.json");
- }
- );
-
-
-Dictionary> files_net10;
-Dictionary> files_net10_net8;
-
-
-files_net10 = new Dictionary>
-{
- /*
- {
- "./global.json",
- [
- (
- """ "version": "8.0.404",""",
- """ "version": "10.0.100-preview.2.25102.3","""
- ),
- ]
- },
- {
- "./workloads.json",
- [
- (
- null, // replace all
- """
- {
- "microsoft.net.sdk.android": "35.99.0-preview.2.205/10.0.100-preview.2",
- "microsoft.net.sdk.ios": "18.2.10552-net10-p2/10.0.100-preview.2",
- "microsoft.net.sdk.maccatalyst": "18.2.10552-net10-p2/10.0.100-preview.2",
- "microsoft.net.sdk.macos": "15.2.10552-net10-p2/10.0.100-preview.2",
- "microsoft.net.sdk.maui": "10.0.0-preview.2.25165.1/10.0.100-preview.2",
- "microsoft.net.sdk.tvos": "18.2.10552-net10-p2/10.0.100-preview.2",
- "microsoft.net.workload.mono.toolchain.current": "10.0.0-preview.2.25163.2/10.0.100-preview.2",
- "microsoft.net.workload.emscripten.current": "10.0.0-preview.2.25120.1/10.0.100-preview.2",
- "microsoft.net.workload.emscripten.net6": "10.0.0-preview.2.25120.1/10.0.100-preview.2",
- "microsoft.net.workload.emscripten.net7": "10.0.0-preview.2.25120.1/10.0.100-preview.2",
- "microsoft.net.workload.emscripten.net8": "10.0.0-preview.2.25120.1/10.0.100-preview.2",
- "microsoft.net.workload.emscripten.net9": "10.0.0-preview.2.25120.1/10.0.100-preview.2",
- "microsoft.net.workload.mono.toolchain.net6": "10.0.0-preview.2.25163.2/10.0.100-preview.2",
- "microsoft.net.workload.mono.toolchain.net7": "10.0.0-preview.2.25163.2/10.0.100-preview.2",
- "microsoft.net.workload.mono.toolchain.net8": "10.0.0-preview.2.25163.2/10.0.100-preview.2",
- "microsoft.net.workload.mono.toolchain.net9": "10.0.0-preview.2.25163.2/10.0.100-preview.2",
- "microsoft.net.sdk.aspire": "8.2.2/8.0.100"
- }
- """
- ),
- ]
- },
- */
- {
- "./Directory.Build.props",
- [
- (
- """<_DefaultTargetFrameworks>net8.0""",
- """<_DefaultTargetFrameworks>net10.0"""
- ),
- (
- """<_DefaultTargetFrameworks>net8.0-android""",
- """<_DefaultTargetFrameworks>net10.0-android"""
- ),
- (
- """""",
- """"""
- ),
- (
- """""",
- """"""
- ),
- (
- """""",
- """"""
- ),
- ]
- },
- {
- "./tests/Directory.Build.props",
- [
- (
- """<_DefaultTargetFrameworks>net8.0-android""",
- """<_DefaultTargetFrameworks>net10.0-android"""
- ),
- (
- """<_DefaultNetTargetFrameworks>net8.0""",
- """<_DefaultNetTargetFrameworks>net10.0"""
- ),
- ]
- },
- {
- "./source/androidx.appcompat/typeforwarders/androidx.appcompat.appcompat-resources-typeforwarders.csproj",
- [
- (
- """1.1.0.3""",
- """1.1.0.3$(PackageVersionSuffix)"""
- ),
- ]
- },
-};
-
-files_net10_net8 = new Dictionary>
-{
- /*
- {
- "./global.json",
- [
- (
- """ "version": "8.0.404",""",
- """ "version": "10.0.100-preview.2.25102.3","""
- ),
- ]
- },
- {
- "./workloads.json",
- [
- (
- null, // replace all
- """
- {
- "microsoft.net.sdk.android": "35.99.0-preview.2.205/10.0.100-preview.2",
- "microsoft.net.sdk.ios": "18.2.10552-net10-p2/10.0.100-preview.2",
- "microsoft.net.sdk.maccatalyst": "18.2.10552-net10-p2/10.0.100-preview.2",
- "microsoft.net.sdk.macos": "15.2.10552-net10-p2/10.0.100-preview.2",
- "microsoft.net.sdk.maui": "10.0.0-preview.2.25165.1/10.0.100-preview.2",
- "microsoft.net.sdk.tvos": "18.2.10552-net10-p2/10.0.100-preview.2",
- "microsoft.net.workload.mono.toolchain.current": "10.0.0-preview.2.25163.2/10.0.100-preview.2",
- "microsoft.net.workload.emscripten.current": "10.0.0-preview.2.25120.1/10.0.100-preview.2",
- "microsoft.net.workload.emscripten.net6": "10.0.0-preview.2.25120.1/10.0.100-preview.2",
- "microsoft.net.workload.emscripten.net7": "10.0.0-preview.2.25120.1/10.0.100-preview.2",
- "microsoft.net.workload.emscripten.net8": "10.0.0-preview.2.25120.1/10.0.100-preview.2",
- "microsoft.net.workload.emscripten.net9": "10.0.0-preview.2.25120.1/10.0.100-preview.2",
- "microsoft.net.workload.mono.toolchain.net6": "10.0.0-preview.2.25163.2/10.0.100-preview.2",
- "microsoft.net.workload.mono.toolchain.net7": "10.0.0-preview.2.25163.2/10.0.100-preview.2",
- "microsoft.net.workload.mono.toolchain.net8": "10.0.0-preview.2.25163.2/10.0.100-preview.2",
- "microsoft.net.workload.mono.toolchain.net9": "10.0.0-preview.2.25163.2/10.0.100-preview.2",
- "microsoft.net.sdk.aspire": "8.2.2/8.0.100"
- }
- """
- ),
- ]
- },
- */
- {
- "./Directory.Build.props",
- [
- (
- """<_DefaultTargetFrameworks>net8.0-android""",
- """<_DefaultTargetFrameworks>net8.0-android;net10.0-android"""
- ),
- (
- """<_DefaultNetTargetFrameworks>net8.0""",
- """<_DefaultNetTargetFrameworks>net8.0;net10.0"""
- ),
- (
- """""",
- """
-
-
- """
- ),
- (
- """""",
- """
-
-
- """
- ),
- (
- """""",
- """
-
-
- """
- ),
- ]
- },
- {
- "./tests/Directory.Build.props",
- [
- (
- """<_DefaultTargetFrameworks>net8.0-android""",
- """<_DefaultTargetFrameworks>net8.0-android;net10.0-android"""
- ),
- (
- """<_DefaultNetTargetFrameworks>net8.0""",
- """<_DefaultNetTargetFrameworks>net8.0;net10.0"""
- ),
- ]
- },
- {
- "./source/androidx.appcompat/typeforwarders/androidx.appcompat.appcompat-resources-typeforwarders.csproj",
- [
- (
- """1.1.0.3""",
- """1.1.0.3$(PackageVersionSuffix)"""
- ),
- ]
- },
-};
diff --git a/build/cake/dotnet-next.cake b/build/cake/dotnet-next.cake
deleted file mode 100644
index b8bd084dc..000000000
--- a/build/cake/dotnet-next.cake
+++ /dev/null
@@ -1,34 +0,0 @@
-// Updates repository to be tested on preview versions of .NET
-
-Task ("dotnet-next")
- .Does (() =>
-{
- var next_net_framework_version = Argument ("framework-version");
- var next_api_level_version = Argument ("api-level-version");
- var next_net_sdk_version = Argument ("dotnet-version");
-
- Information ("");
- Information ("Script Arguments:");
- Information (" dotnet Version: {0}", next_net_framework_version);
- Information (" dotnet TF Version: {0}", next_net_sdk_version);
- Information (" Android SDK API Level: {0}", next_api_level_version);
- Information ("");
-
- // Update global.json
- var global_json = File ("global.json");
- var json = JToken.Parse (FileReadText (global_json));
- json["sdk"]["version"] = next_net_sdk_version;
-
- FileWriteText (global_json, json.ToString ());
-
- // Update Directory.Build.props
- var directory_build = File ("Directory.Build.props");
-
- XmlPoke (directory_build, "/Project/PropertyGroup/_DefaultNetTargetFrameworks", $"net{next_net_framework_version}.0");
- XmlPoke (directory_build, "/Project/PropertyGroup/_DefaultTargetFrameworks", $"net{next_net_framework_version}.0-android");
-
- XmlPoke (directory_build, "/Project/ItemGroup/AndroidXNuGetTargetFolders[starts-with (@Include, 'build\\')]/@Include", $@"build\net{next_net_framework_version}.0-android{next_api_level_version}.0");
- XmlPoke (directory_build, "/Project/ItemGroup/AndroidXNuGetTargetFolders[starts-with (@Include, 'buildTransitive\\')]/@Include", $@"buildTransitive\net{next_net_framework_version}.0-android{next_api_level_version}.0");
-
- XmlPoke (directory_build, "/Project/ItemGroup/AndroidXNuGetLibFolders/@Include", $@"lib\net{next_net_framework_version}.0-android{next_api_level_version}.0");
-});
diff --git a/build/cake/nuget-install.cake b/build/cake/nuget-install.cake
deleted file mode 100644
index cbb38998f..000000000
--- a/build/cake/nuget-install.cake
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
-Nuget download
-https://www.nuget.org/api/v2/package/{packageID}/
-https://api.nuget.org/v3/index.json?package=CliWrap&version=3.8.2
-https://api.nuget.org/v3-flatcontainer/cliwrap/3.8.2/cliwrap.3.8.2.nupkg
- },
-https://www.nuget.org/api/v2/package/cake.coreclr/1.3.0/
-*/
-/*
-#addin nuget:https://api.nuget.org/v3/index.json?package=Mono.Cecil&version=0.11.6
-#addin nuget:https://api.nuget.org/v3/index.json??package=HolisticWare.Xamarin.Tools.ComponentGovernance&version=0.0.1.4
-#addin nuget:https://api.nuget.org/v3/index.json??package=HolisticWare.Core.Net.HTTP&version=0.0.4
-#addin nuget:https://api.nuget.org/v3/index.json??package=HolisticWare.Core.IO&version=0.0.4
-*/
-
-Dictionary nuget_packages = new ()
-{
- // { "cake.coreclr", "1.3.0" },
- { "Cake.FileHelpers", "7.0.0"}, // migrated, but needed for windows only???
- { "HolisticWare.Xamarin.Tools.ComponentGovernance", "0.0.1.4" },
- { "HolisticWare.Core.Net.HTTP", "0.0.4" },
- { "HolisticWare.Core.IO", "0.0.4" },
-};
-
-Task("nuget-install")
- .Does
- (
- () =>
- {
- EnsureDirectoryExists("./output");
-
- /*
- nuget.exe must be in the PATH
- NuGetInstall
- (
- "HolisticWare.Xamarin.Tools.ComponentGovernance",
- new NuGetInstallSettings
- {
- Version = "0.0.1.4",
- OutputDirectory = "./tools/Addins"
- }
- );
- NuGetInstall
- (
- "HolisticWare.Core.Net.HTTP",
- new NuGetInstallSettings
- {
- Version = "0.0.4",
- OutputDirectory = "./tools/Addins"
- }
- );
- NuGetInstall
- (
- "HolisticWare.Core.IO",
- new NuGetInstallSettings
- {
- Version = "0.0.4",
- OutputDirectory = "./tools/Addins"
- }
- );
- NuGetInstall
- (
- "CliWrap",
- new NuGetInstallSettings
- {
- Version = "3.8.2",
- OutputDirectory = "./tools/Addins"
- }
- );
- */
- DownloadFile
- (
- "https://api.nuget.org/v3-flatcontainer/cake.filehelpers/7.0.0/cake.filehelpers.7.0.0.nupkg",
- $"./output/cake.filehelpers.7.0.0.nupkg"
- );
- DownloadFile
- (
- "https://api.nuget.org/v3-flatcontainer/cliwrap/3.8.2/cliwrap.3.8.2.nupkg",
- $"./output/cliwrap.3.8.2.nupkg"
- );
- DownloadFile
- (
- "https://api.nuget.org/v3-flatcontainer/holisticware.core.net.http/0.0.4/holisticware.core.net.http.0.0.4.nupkg",
- $"./output/holisticware.core.net.http.0.0.4.nupkg"
- );
- DownloadFile
- (
- "https://api.nuget.org/v3-flatcontainer/holisticware.core.io/0.0.4/holisticware.core.io.0.0.4.nupkg",
- $"./output/holisticware.core.io.0.0.4.nupkg"
- );
- DownloadFile
- (
- "https://api.nuget.org/v3-flatcontainer/holisticware.xamarin.tools.componentgovernance/0.0.1.4/holisticware.xamarin.tools.componentgovernance.0.0.1.4.nupkg",
- $"./output/holisticware.xamarin.tools.componentgovernance.0.0.1.4.nupkg"
- );
- /*
- */
- }
- );
-
-Task("nuget-uninstall")
- .Does
- (
- () =>
- {
- string file;
- // validation fails on CI if the package is in the output directory
-
- file = $"./output/cake.filehelpers.7.0.0.nupkg";
- if (FileExists (file))
- {
- DeleteFile (file);
- }
- file = $"./output/cliwrap.3.8.2.nupkg";
- if (FileExists (file))
- {
- DeleteFile (file);
- }
- file = $"./output/holisticware.core.net.http.0.0.4.nupkg";
- if (FileExists (file))
- {
- DeleteFile (file);
- }
-
- file = $"./output/holisticware.core.io.0.0.4.nupkg";
- if (FileExists (file))
- {
- DeleteFile (file);
- }
-
- file = $"./output/holisticware.xamarin.tools.componentgovernance.0.0.1.4.nupkg";
- if (FileExists (file))
- {
- DeleteFile (file);
- }
- }
- );
\ No newline at end of file
diff --git a/build/ci/build-and-test.yml b/build/ci/build-and-test.yml
index 46d684d57..cf6512479 100644
--- a/build/ci/build-and-test.yml
+++ b/build/ci/build-and-test.yml
@@ -7,59 +7,55 @@ parameters:
- Square
steps:
- # - pwsh: |
- # dotnet cake build.cake `
- # --target=ci-build `
- # --configuration="$(configuration)" `
- # --verbosity="$(verbosity)"
- # displayName: 'Build packages'
- # env:
- # JavaSdkDirectory: $(JAVA_HOME)
- # RepositoryCommit: $(Build.SourceVersion)
- # RepositoryBranch: $(Build.SourceBranchName)
- # RepositoryUrl: $(Build.Repository.Uri)
- # RepositoryType: "git"
+ - pwsh: |
+ dotnet cake build.cake `
+ --target=ci-build `
+ --configuration="$(configuration)" `
+ --verbosity="$(verbosity)"
+ displayName: 'Build packages'
+ env:
+ JavaSdkDirectory: $(JAVA_HOME)
+ RepositoryCommit: $(Build.SourceVersion)
+ RepositoryBranch: $(Build.SourceBranchName)
+ RepositoryUrl: $(Build.Repository.Uri)
+ RepositoryType: "git"
- # - pwsh: |
- # dotnet cake validation.cake `
- # --namespaces="${{ join(',', parameters.validPackagePrefixes) }}" `
- # --verbosity="$(verbosity)"
- # displayName: 'Run NuGet package validation'
+ - pwsh: |
+ dotnet cake validation.cake `
+ --namespaces="${{ join(',', parameters.validPackagePrefixes) }}" `
+ --verbosity="$(verbosity)"
+ displayName: 'Run NuGet package validation'
- # - pwsh: |
- # dotnet cake nuget-diff.cake `
- # --artifacts="${{ parameters.artifactsPath }}" `
- # --output="${{ parameters.artifactsPath }}/api-diff" `
- # --cache="$(Agent.TempDirectory)/api-diff" `
- # --verbosity="$(verbosity)"
- # displayName: 'Generate API diff'
-
- # - pwsh: dotnet cake utilities.cake -t=verify-namespace-file
- # displayName: Verify published namespaces
+ - pwsh: |
+ dotnet cake nuget-diff.cake `
+ --artifacts="${{ parameters.artifactsPath }}" `
+ --output="${{ parameters.artifactsPath }}/api-diff" `
+ --cache="$(Agent.TempDirectory)/api-diff" `
+ --verbosity="$(verbosity)"
+ displayName: 'Generate API diff'
+ condition: eq(variables['Agent.OS'], 'Windows_NT')
- # - pwsh: |
- # dotnet cake build.cake `
- # --target=ci-samples `
- # --configuration="$(configuration)" `
- # --verbosity="$(verbosity)"
- # displayName: 'Build samples'
- # condition: ne(variables['skipSamplesTests'], 'true')
- # env:
- # JavaSdkDirectory: $(JAVA_HOME)
- # RepositoryCommit: $(Build.SourceVersion)
- # RepositoryBranch: $(Build.SourceBranchName)
- # RepositoryUrl: $(Build.Repository.Uri)
- # RepositoryType: "git"
-
- # - task: DotNetCoreCLI@2
- # displayName: Run unit tests
- # condition: ne(variables['skipUnitTests'], 'true')
- # inputs:
- # command: test
- # projects: util/**/*.Tests.csproj
- # arguments: '-c $(configuration)'
+ - pwsh: dotnet cake utilities.cake -t=verify-namespace-file
+ displayName: Verify published namespaces
- pwsh: |
dotnet cake build.cake `
- --target=build-android-libraries-net10-net8
- displayName: 'Build build-android-libraries-net10-net8'
+ --target=ci-samples `
+ --configuration="$(configuration)" `
+ --verbosity="$(verbosity)"
+ displayName: 'Build samples'
+ condition: ne(variables['skipSamplesTests'], 'true')
+ env:
+ JavaSdkDirectory: $(JAVA_HOME)
+ RepositoryCommit: $(Build.SourceVersion)
+ RepositoryBranch: $(Build.SourceBranchName)
+ RepositoryUrl: $(Build.Repository.Uri)
+ RepositoryType: "git"
+
+ - task: DotNetCoreCLI@2
+ displayName: Run unit tests
+ condition: ne(variables['skipUnitTests'], 'true')
+ inputs:
+ command: test
+ projects: util/**/*.Tests.csproj
+ arguments: '-c $(configuration)'
diff --git a/build/ci/build.yml b/build/ci/build.yml
index 1604058e1..dcbdbd1d5 100644
--- a/build/ci/build.yml
+++ b/build/ci/build.yml
@@ -6,15 +6,10 @@ parameters:
# Build Parameters
timeoutInMinutes: 600 # Max job runtime in minutes
runAPIScan: false # Run APIScan analysis
- runDotnetNextTest: false
use1ESTemplate: true
installAndroidDependencies: false
androidSdkRoot: $(Agent.TempDirectory)/android-sdk
- tools: # Additional .NET global tools to install
- - 'Cake.Tool': '5.0.0'
- - 'private-api-tools': '1.0.3'
-
# Reporting/Analysis Parameters
artifactsPath: 'output' # Path to the NuGet packages that need to be signed, verified and published
signListPath: 'SignList.xml' # Path to 'SignList.xml' used for signing NuGet packages
@@ -42,8 +37,6 @@ jobs:
steps:
- template: setup-environment.yml
parameters:
- dotnetTools: ${{ parameters.tools }}
- runDotnetNextTest: ${{ parameters.runDotnetNextTest }}
installAndroidDependencies: ${{ parameters.installAndroidDependencies }}
androidSdkRoot: ${{ parameters.androidSdkRoot }}
diff --git a/build/ci/job-extended-tests.yml b/build/ci/job-extended-tests.yml
index e0dd2ed78..3741f170b 100644
--- a/build/ci/job-extended-tests.yml
+++ b/build/ci/job-extended-tests.yml
@@ -7,13 +7,8 @@ parameters:
testFilter: # Test category filter
testProject: # The test .csproj to build
testAssembly: # The test .dll to execute
- runDotnetNextTest: false
installAndroidDependencies: false
- tools: # Additional .NET global tools to install
- - 'dotnet-test-slicer' : '0.1.0-alpha7'
- - 'Cake.Tool': '5.0.0'
-
jobs:
- job: ${{ parameters.jobName }}_package_tests
displayName: ${{ parameters.jobName }} Package Tests
@@ -25,8 +20,6 @@ jobs:
steps:
- template: setup-environment.yml
parameters:
- dotnetTools: ${{ parameters.tools }}
- runDotnetNextTest: ${{ parameters.runDotnetNextTest }}
installAndroidDependencies: ${{ parameters.installAndroidDependencies }}
- task: DownloadPipelineArtifact@2
@@ -44,7 +37,7 @@ jobs:
# Figure out which tests this slice is running
- pwsh: >-
- dotnet-test-slicer
+ dotnet dotnet-test-slicer
slice
--test-assembly="${{ parameters.testAssembly }}"
--test-filter="${{ parameters.testFilter }}"
diff --git a/build/ci/setup-environment.yml b/build/ci/setup-environment.yml
index 4599eafe4..558486410 100644
--- a/build/ci/setup-environment.yml
+++ b/build/ci/setup-environment.yml
@@ -1,6 +1,4 @@
parameters:
- dotnetTools: []
- runDotnetNextTest: false
installAndroidDependencies: false
androidSdkRoot: $(Agent.TempDirectory)/android-sdk
javaSdkRoot: $(Agent.ToolsDirectory)\jdk11
@@ -22,75 +20,29 @@ steps:
condition: ne('$(dotnetVersion)', '')
- task: UseDotNet@2
- displayName: 'Use dotnet 10.0.100-preview.3.25201.16'
+ displayName: 'Use dotnet $(dotnetNextVersion)'
inputs:
- version: 10.0.100-preview.3.25201.16
+ version: $(dotnetNextVersion)
performMultiLevelLookup: true
includePreviewVersions: true
- condition: ne('$(dotnetVersion)', '')
-
- - ${{ if eq(parameters.runDotnetNextTest, true) }}:
- - task: UseDotNet@2
- displayName: 'Use dotnet $(dotnetNextVersion)'
- inputs:
- version: $(dotnetNextVersion)
- includePreviewVersions: true
+ condition: ne('$(dotnetNextVersion)', '')
- script: dotnet --info
displayName: Display dotnet info
- - ${{ each tool in parameters.dotnetTools }}:
- - ${{ each pair in tool }}:
- - powershell: dotnet tool uninstall ${{ pair.key }} -g
- displayName: 'Uninstall tool: ${{ pair.key }}'
- ignoreLASTEXITCODE: true
- - task: DotNetCoreCLI@2
- displayName: 'Install tool: ${{ pair.key }} ${{ pair.value }}'
- inputs:
- command: custom
- custom: tool
- arguments: >-
- update -g ${{ pair.key }} -v:diag
- --version ${{ pair.value }}
- --add-source "https://api.nuget.org/v3/index.json"
-
- - ${{ if eq(parameters.runDotnetNextTest, true) }}:
- - pwsh: |
- dotnet cake -t=dotnet-next `
- --dotnet-version="$(dotnetNextVersion)" `
- --framework-version="$(dotnetNextFrameworkVersion)" `
- --api-level-version="$(dotnetNextApiLevel)"
- displayName: Set up dotnet-next test changes
-
- - ${{ if eq(parameters.runDotnetNextTest, false) }}:
- - pwsh: |
- Copy-Item -Path .\global.net8.0.json -Destination .\global.json
- dotnet workload update --verbosity diag --source https://api.nuget.org/v3/index.json
- dotnet workload install maui-android android --verbosity diag --source https://api.nuget.org/v3/index.json
- Copy-Item -Path .\global.net10.0.json -Destination .\global.json
- dotnet workload update --verbosity diag --source https://api.nuget.org/v3/index.json
- dotnet workload install maui-android android android-net8 --verbosity diag --source https://api.nuget.org/v3/index.json
- if ($LASTEXITCODE -ne 0) {
- Write-Host "##vso[task.logissue type=error]Failed to install workloads."
- Write-Host "##vso[task.complete result=Failed;]"
- exit 0
- }
- displayName: Install .NET Workloads
-
- - ${{ if eq(parameters.runDotnetNextTest, true) }}:
- - pwsh: |
- Copy-Item -Path .\global.net8.0.json -Destination .\global.json
- dotnet workload update --verbosity diag --source https://api.nuget.org/v3/index.json
- dotnet workload install maui-android android --verbosity diag --source https://api.nuget.org/v3/index.json
- Copy-Item -Path .\global.net10.0.json -Destination .\global.json
- dotnet workload update --verbosity diag --source https://api.nuget.org/v3/index.json
- dotnet workload install maui-android android android-net8 --verbosity diag --source https://api.nuget.org/v3/index.json
- if ($LASTEXITCODE -ne 0) {
- Write-Host "##vso[task.logissue type=error]Failed to install workloads."
- Write-Host "##vso[task.complete result=Failed;]"
- exit 0
- }
- displayName: Install Preview .NET Workloads
+ - powershell: dotnet tool restore
+ displayName: 'Install .NET tools'
+ ignoreLASTEXITCODE: true
+
+ - pwsh: |
+ dotnet workload update --verbosity diag --source https://api.nuget.org/v3/index.json
+ dotnet workload install maui-android android --verbosity diag --source https://api.nuget.org/v3/index.json
+ if ($LASTEXITCODE -ne 0) {
+ Write-Host "##vso[task.logissue type=error]Failed to install workloads."
+ Write-Host "##vso[task.complete result=Failed;]"
+ exit 0
+ }
+ displayName: Install .NET Workloads
- bash: |
if [[ "$(Agent.Name)" == *"Azure Pipelines"* ]]; then
diff --git a/build/ci/stage-extended-tests.yml b/build/ci/stage-extended-tests.yml
index fbf21d318..32a35a69c 100644
--- a/build/ci/stage-extended-tests.yml
+++ b/build/ci/stage-extended-tests.yml
@@ -3,7 +3,6 @@
parameters:
stageCondition: # When to run this stage
buildPool: # VM pool information
- runDotnetNextTest: false
stages:
- stage: extended_tests
@@ -21,7 +20,6 @@ stages:
testProject: $(extendedTestProject)
testAssembly: $(extendedTestAssembly)
buildPool: ${{ parameters.buildPool }}
- runDotnetNextTest: ${{ parameters.runDotnetNextTest }}
# Disabled because of too many failures until MAUI updates its AndroidX packages
# - template: job-extended-tests.yml
diff --git a/build/ci/stage-standard-tests.yml b/build/ci/stage-standard-tests.yml
index dc33bbdab..bbfb2bf67 100644
--- a/build/ci/stage-standard-tests.yml
+++ b/build/ci/stage-standard-tests.yml
@@ -3,7 +3,6 @@
parameters:
buildPool: # VM pool information
stageCondition: and(succeeded(), ne('$(skipUnitTests)', 'true')) # When to run this stage
- runDotnetNextTest: false
installAndroidDependencies: false
stages:
@@ -22,5 +21,4 @@ stages:
testProject: $(standardTestProject)
testAssembly: $(standardTestAssembly)
buildPool: ${{ parameters.buildPool }}
- runDotnetNextTest: ${{ parameters.runDotnetNextTest }}
installAndroidDependencies: ${{ parameters.installAndroidDependencies }}
diff --git a/build/ci/variables.yml b/build/ci/variables.yml
index 0945198d2..9ed02adf3 100644
--- a/build/ci/variables.yml
+++ b/build/ci/variables.yml
@@ -16,28 +16,28 @@ variables:
windowsImage: 1ESPT-Windows2022 # Windows VM image name
# macOS specific variables
- macosAgentPoolName: VSEng-VSMac-Xamarin-Shared # macOS VM pool name
+ macosAgentPoolName: VSEng-VSMac-Xamarin-Shared # macOS VM pool name
# Tool variables
- dotnetVersion: '8.0.408' # .NET version to install on agent
- dotnetWorkloadRollbackFile: 'workloads.json' # Rollback file specifying workload versions to install
+ dotnetVersion: '9.0.301' # .NET version to install on agent
+ dotnetFrameworkVersion: 9 # The number to use for TF (eg: netX.0-android)
dotnetNuGetOrgSource: 'https://api.nuget.org/v3/index.json' # NuGet.org URL to find workloads
dotnetWorkloadSource: 'https://aka.ms/dotnet6/nuget/index.json' # .NET engineering URL to find workloads
# Standard test variables
- standardTestProject: tests/allpackages/AllPackagesTests.csproj # Standard tests project file
- standardTestAssembly: tests/allpackages/bin/$(configuration)/net8.0/AllPackagesTests.dll # Standard tests compiled binary
+ standardTestProject: tests/allpackages/AllPackagesTests.csproj # Standard tests project file
+ standardTestAssembly: tests/allpackages/bin/$(configuration)/net$(dotnetFrameworkVersion).0/AllPackagesTests.dll # Standard tests compiled binary
skipUnitTests: false
skipSamplesTests: true
# Extended test variables
- extendedTestProject: tests/extended/ExtendedTests.csproj # Extended tests project file
- extendedTestAssembly: tests/extended/bin/$(configuration)/net8.0/ExtendedTests.dll # Extended tests compiled binary
+ extendedTestProject: tests/extended/ExtendedTests.csproj # Extended tests project file
+ extendedTestAssembly: tests/extended/bin/$(configuration)/net$(dotnetFrameworkVersion).0/ExtendedTests.dll # Extended tests compiled binary
# dotnet-next test variables
- dotnetNextVersion: 10.0.100-preview.3.25201.16 # .NET preview version to install
- dotnetNextFrameworkVersion: 10 # The number to use for TF (eg: net9.0-android)
- dotnetNextApiLevel: 35 # The Android SDK API Level to use (eg: -android35.0)
+ dotnetNextVersion: 10.0.100-preview.5.25277.114 # .NET preview version to install
+ dotnetNextFrameworkVersion: 10 # The number to use for TF (eg: netX.0-android)
+ dotnetNextApiLevel: 35 # The Android SDK API Level to use (eg: netX.0-androidXX.0)
# dnceng-public variables
NetCorePublicPoolName: NetCore-Public-XL
diff --git a/build/scripts/provision-android/provision-android.csproj b/build/scripts/provision-android/provision-android.csproj
index 6de45ea37..0555101c3 100644
--- a/build/scripts/provision-android/provision-android.csproj
+++ b/build/scripts/provision-android/provision-android.csproj
@@ -1,9 +1,10 @@
- net10.0-android
+
+ $(_DefaultTargetFrameworkNext)
-
-
+
+
diff --git a/docs/buildtoolsinventory.csv b/docs/buildtoolsinventory.csv
index b769bbe6c..dac7dba16 100644
--- a/docs/buildtoolsinventory.csv
+++ b/docs/buildtoolsinventory.csv
@@ -1,13 +1,11 @@
BuildToolName,BuildToolVersion
-dotnet sdk, 8.0.400
-dotnet sdk, patch
-msbuild-sdks MSBuild.Sdk.Extras, 3.0.44
+dotnet sdk, 9.0.301
+dotnet sdk, latestMajor
msbuild-sdks Microsoft.Build.Traversal, 4.1.0
msbuild-sdks Microsoft.Build.NoTargets, 3.7.56
-msbuild-sdks Xamarin.Legacy.Sdk, 0.2.0-alpha4
Mono JIT compiler, 6.12.0.188 (2020-02/ca8abcb6bc4 Thu Oct 13 14:26:22 EDT 2022)
nuget, 6.3.1.1
-private-api-tools,1.0.3
+api-tools,1.4.1
xamarin.androidbinderator.tool,0.5.7
Gradle, 8.10.2
Kotlin, 1.9.24
diff --git a/docs/buildtoolsinventory.md b/docs/buildtoolsinventory.md
index 1cd7a1273..00a34a1e6 100644
--- a/docs/buildtoolsinventory.md
+++ b/docs/buildtoolsinventory.md
@@ -4,20 +4,16 @@
```
{
- "sdk":
- {
- "version": "8.0.400",
- "rollForward": "patch"
+ "sdk": {
+ "version": "9.0.301",
+ "rollForward": "latestMajor",
+ "allowPrerelease": true
},
- "msbuild-sdks":
- {
- "MSBuild.Sdk.Extras": "3.0.44",
+ "msbuild-sdks": {
"Microsoft.Build.Traversal": "4.1.0",
- "Microsoft.Build.NoTargets": "3.7.56",
- "Xamarin.Legacy.Sdk": "0.2.0-alpha4"
+ "Microsoft.Build.NoTargets": "3.7.56"
}
}
-
```
-version8.0.400
-rollForwardpatch
+version9.0.301
+rollForwardlatestMajor
diff --git a/global.json b/global.json
index 0d8cf64bd..682ebb0ce 100644
--- a/global.json
+++ b/global.json
@@ -1,14 +1,11 @@
{
- "sdk":
- {
- "version": "8.0.408",
- "rollForward": "patch"
+ "sdk": {
+ "version": "9.0.301",
+ "rollForward": "latestMajor",
+ "allowPrerelease": true
},
- "msbuild-sdks":
- {
- "MSBuild.Sdk.Extras": "3.0.44",
- "Microsoft.Build.Traversal": "4.1.82",
- "Microsoft.Build.NoTargets": "3.7.56",
- "Xamarin.Legacy.Sdk": "0.2.0-alpha4"
+ "msbuild-sdks": {
+ "Microsoft.Build.Traversal": "4.1.0",
+ "Microsoft.Build.NoTargets": "3.7.56"
}
-}
+}
\ No newline at end of file
diff --git a/global.net10.0.json b/global.net10.0.json
deleted file mode 100644
index 9615bcf0e..000000000
--- a/global.net10.0.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "sdk":
- {
- "version": "10.0.100-preview.3.25201.16",
- "rollForward": "patch"
- },
- "msbuild-sdks":
- {
- "MSBuild.Sdk.Extras": "3.0.44",
- "Microsoft.Build.Traversal": "4.1.82",
- "Microsoft.Build.NoTargets": "3.7.56",
- "Xamarin.Legacy.Sdk": "0.2.0-alpha4"
- }
-}
diff --git a/global.net8.0.json b/global.net8.0.json
deleted file mode 100644
index 0d8cf64bd..000000000
--- a/global.net8.0.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "sdk":
- {
- "version": "8.0.408",
- "rollForward": "patch"
- },
- "msbuild-sdks":
- {
- "MSBuild.Sdk.Extras": "3.0.44",
- "Microsoft.Build.Traversal": "4.1.82",
- "Microsoft.Build.NoTargets": "3.7.56",
- "Xamarin.Legacy.Sdk": "0.2.0-alpha4"
- }
-}
diff --git a/nuget-diff.cake b/nuget-diff.cake
index 874bbe59f..514a16b1f 100644
--- a/nuget-diff.cake
+++ b/nuget-diff.cake
@@ -33,13 +33,14 @@ if (!nupkgs.Any()) {
if (FileExists(versionFile)) {
version = "--version=" + System.IO.File.ReadAllText(versionFile).Trim();
}
- var exitCode = StartProcess("api-tools", new ProcessSettings {
+ var exitCode = StartProcess("dotnet", new ProcessSettings {
Arguments = new ProcessArgumentBuilder()
+ .Append("api-tools")
.Append("nuget-diff")
.AppendQuoted(nupkg.FullPath)
.Append(version)
.Append("--prerelease")
- .Append("--prefer-released")
+ .Append("--prefer-release")
.Append("--group-ids")
.Append("--ignore-unchanged")
.Append("--compare-nuget-structure")
@@ -60,7 +61,7 @@ if (nu_diffs.Any()) {
foreach (var file in nu_diffs) {
using (var input = System.IO.File.OpenRead(file.FullPath)) {
input.CopyTo(output);
- Console.WriteLine();
+ Information("");
}
// Delete the individual file because it makes the assembly diffs hard to find
diff --git a/published-namespaces.txt b/published-namespaces.txt
index 4da35a7c2..908c7446c 100644
--- a/published-namespaces.txt
+++ b/published-namespaces.txt
@@ -2,7 +2,6 @@ _COROUTINE
Android.Annotation
Android.BillingClient
Android.BillingClient.Api
-Android.BillingClient.Ktx
Android.Gms.Actions
Android.Gms.Ads
Android.Gms.Ads.AdManager
@@ -798,16 +797,12 @@ Firebase.Analytics.KtxTesting
Firebase.Annotations
Firebase.Annotations.Concurrent
Firebase.AppCheck
-Firebase.AppCheck.Debug
-Firebase.AppCheck.Debug.Internal
Firebase.AppCheck.Internal
Firebase.AppCheck.Internal.Util
Firebase.AppCheck.Interop
Firebase.AppCheck.Ktx
Firebase.AppCheck.PlayIntegrity
Firebase.AppCheck.PlayIntegrity.Internal
-Firebase.AppCheck.SafetyNet
-Firebase.AppCheck.SafetyNet.Internal
Firebase.AppIndexing
Firebase.AppIndexing.Builders
Firebase.AppIndexing.Internal
@@ -920,7 +915,6 @@ Firebase.Internal.Api
Firebase.Ktx
Firebase.Logger
Firebase.Messaging
-Firebase.Messaging.DirectBoot
Firebase.Messaging.Ktx
Firebase.Messaging.Reporting
Firebase.Messaging.Threads
diff --git a/source/AndroidX.Solution.proj b/source/AndroidX.Solution.proj
index 32ffefe15..5adf0be72 100644
--- a/source/AndroidX.Solution.proj
+++ b/source/AndroidX.Solution.proj
@@ -1,4 +1,4 @@
-
+
diff --git a/source/_PackageLevelCustomizations.cshtml b/source/_PackageLevelCustomizations.cshtml
index 2b6428c52..4f48b1bc7 100644
--- a/source/_PackageLevelCustomizations.cshtml
+++ b/source/_PackageLevelCustomizations.cshtml
@@ -55,12 +55,3 @@
}
-
-@* .NET 9 changes some binding internals that breaks some of our hand bound code. This property reverts
- to the old behavior. Once we are .NET 9+ we should redo our hand bound code and remove this. *@
-@if (@Model.NuGetPackageId == "Xamarin.AndroidX.Media3.ExoPlayer" )
-{
-
- <_AndroidEmitLegacyInterfaceInvokers>true
-
-}
\ No newline at end of file
diff --git a/source/androidx.appcompat/appcompat/Transforms/Metadata.xml b/source/androidx.appcompat/appcompat/Transforms/Metadata.xml
index aefc19a38..7ee09d653 100644
--- a/source/androidx.appcompat/appcompat/Transforms/Metadata.xml
+++ b/source/androidx.appcompat/appcompat/Transforms/Metadata.xml
@@ -287,11 +287,11 @@
TODO:
above metadata did not work
- ./generated/androidx.appcompat.appcompat/obj/Debug/net8.0-android/generated/src/AndroidX.AppCompat.View.SupportActionModeWrapper.cs(609,31): error CS0115: 'SupportActionModeWrapper.SetTitle(ICharSequence?)': no suitable method found to override [./generated/androidx.appcompat.appcompat/androidx.appcompat.appcompat.csproj::TargetFramework=net8.0-android]
- ./generated/androidx.appcompat.appcompat/obj/Debug/net8.0-android/generated/src/AndroidX.AppCompat.View.SupportActionModeWrapper.cs(21,23): error CS0534: 'SupportActionModeWrapper' does not implement inherited abstract member 'ActionMode.SubtitleFormatted.set' [./generated/androidx.appcompat.appcompat/androidx.appcompat.appcompat.csproj::TargetFramework=net8.0-android]
- ./generated/androidx.appcompat.appcompat/obj/Debug/net8.0-android/generated/src/AndroidX.AppCompat.View.SupportActionModeWrapper.cs(21,23): error CS0534: 'SupportActionModeWrapper' does not implement inherited abstract member 'ActionMode.TitleFormatted.get' [./generated/androidx.appcompat.appcompat/androidx.appcompat.appcompat.csproj::TargetFramework=net8.0-android]
- ./generated/androidx.appcompat.appcompat/obj/Debug/net8.0-android/generated/src/AndroidX.AppCompat.View.SupportActionModeWrapper.cs(21,23): error CS0534: 'SupportActionModeWrapper' does not implement inherited abstract member 'ActionMode.TitleFormatted.set' [./generated/androidx.appcompat.appcompat/androidx.appcompat.appcompat.csproj::TargetFramework=net8.0-android]
- ./generated/androidx.appcompat.appcompat/obj/Debug/net8.0-android/generated/src/AndroidX.AppCompat.Widget.ActionBarContextView.cs(881,31): error CS0115: 'ActionBarContextView.SetVisibility(ViewStates)': no suitable method found to override [./generated/androidx.appcompat.appcompat/androidx.appcompat.appcompat.csproj::TargetFramework=net8.0-android]
+ AndroidX.AppCompat.View.SupportActionModeWrapper.cs(609,31): error CS0115: 'SupportActionModeWrapper.SetTitle(ICharSequence?)': no suitable method found to override [./generated/androidx.appcompat.appcompat/androidx.appcompat.appcompat.csproj::]
+ AndroidX.AppCompat.View.SupportActionModeWrapper.cs(21,23): error CS0534: 'SupportActionModeWrapper' does not implement inherited abstract member 'ActionMode.SubtitleFormatted.set' [./generated/androidx.appcompat.appcompat/androidx.appcompat.appcompat.csproj::]
+ AndroidX.AppCompat.View.SupportActionModeWrapper.cs(21,23): error CS0534: 'SupportActionModeWrapper' does not implement inherited abstract member 'ActionMode.TitleFormatted.get' [./generated/androidx.appcompat.appcompat/androidx.appcompat.appcompat.csproj::]
+ AndroidX.AppCompat.View.SupportActionModeWrapper.cs(21,23): error CS0534: 'SupportActionModeWrapper' does not implement inherited abstract member 'ActionMode.TitleFormatted.set' [./generated/androidx.appcompat.appcompat/androidx.appcompat.appcompat.csproj::]
+ AndroidX.AppCompat.Widget.ActionBarContextView.cs(881,31): error CS0115: 'ActionBarContextView.SetVisibility(ViewStates)': no suitable method found to override [./generated/androidx.appcompat.appcompat/androidx.appcompat.appcompat.csproj::]
https://learn.microsoft.com/en-us/dotnet/api/android.views.actionmode.titleformatted?view=xamarin-android-sdk-13
diff --git a/source/androidx.media3/media3-common/Transforms/Metadata.xml b/source/androidx.media3/media3-common/Transforms/Metadata.xml
index 15bbb16b1..9857823ec 100644
--- a/source/androidx.media3/media3-common/Transforms/Metadata.xml
+++ b/source/androidx.media3/media3-common/Transforms/Metadata.xml
@@ -86,8 +86,8 @@
diff --git a/tests/Directory.Build.props b/tests/Directory.Build.props
index d8a473f19..d65e92b58 100644
--- a/tests/Directory.Build.props
+++ b/tests/Directory.Build.props
@@ -3,7 +3,6 @@
which is tuned for building bindings packages. -->
- <_DefaultTargetFrameworks>net8.0-android
- <_DefaultNetTargetFrameworks>net8.0
+ <_DefaultNetTargetFramework>net9.0
diff --git a/tests/allpackages/AllPackagesTests.csproj b/tests/allpackages/AllPackagesTests.csproj
index ace91ec6f..230521d66 100644
--- a/tests/allpackages/AllPackagesTests.csproj
+++ b/tests/allpackages/AllPackagesTests.csproj
@@ -1,7 +1,7 @@
- $(_DefaultNetTargetFrameworks)
+ $(_DefaultNetTargetFramework)
enable
enable
diff --git a/tests/allpackages/TestAllIndividualPackages.cs b/tests/allpackages/TestAllIndividualPackages.cs
index c3622f0a0..6c0a13f34 100644
--- a/tests/allpackages/TestAllIndividualPackages.cs
+++ b/tests/allpackages/TestAllIndividualPackages.cs
@@ -13,7 +13,7 @@ public class TestAllIndividualPackages
static string test_dir = Path.Combine ("output", "tests" , "allpackages");
static string configuration = "Release";
static string platform_version = "29";
- static string net_version = "net8.0";
+ static string net_version = "net9.0";
// These packages are ignored because they contain the same Java code as
// other packages, which causes a conflict when building the project.
@@ -190,7 +190,7 @@ async Task TestAllPackages (string template, bool isGps)
}
xd.Save(proj_file);
- ReplaceInFile (proj_file, ">21", $">{platform_version}");
+ ReplaceInFile (proj_file, ">21", $">{platform_version}");
ReplaceInFile (proj_file, ">21.0", $">{platform_version}");
ReplaceInFile (proj_file, $";{net_version}-ios", "");
ReplaceInFile (proj_file, $";{net_version}-maccatalyst", "");
diff --git a/tests/extended/ExtendedTests.csproj b/tests/extended/ExtendedTests.csproj
index ace91ec6f..230521d66 100644
--- a/tests/extended/ExtendedTests.csproj
+++ b/tests/extended/ExtendedTests.csproj
@@ -1,7 +1,7 @@
- $(_DefaultNetTargetFrameworks)
+ $(_DefaultNetTargetFramework)
enable
enable
diff --git a/tests/extended/TestAllIndividualPackages.cs b/tests/extended/TestAllIndividualPackages.cs
index c42d29d44..daa8e6d40 100644
--- a/tests/extended/TestAllIndividualPackages.cs
+++ b/tests/extended/TestAllIndividualPackages.cs
@@ -13,7 +13,7 @@ public class TestAllIndividualPackages
static string test_dir = Path.Combine ("output", "tests");
static string configuration = "Release";
static string platform_version = "29";
- static string net_version = "net8.0";
+ static string net_version = "net9.0";
static TestAllIndividualPackages ()
{
diff --git a/util/Directory.Build.props b/util/Directory.Build.props
index 1e10d5b4e..55eb537f9 100644
--- a/util/Directory.Build.props
+++ b/util/Directory.Build.props
@@ -1,4 +1,7 @@
+
+ <_DefaultNetTargetFramework>net9.0
+
diff --git a/util/Xamarin.AndroidBinderator/Samples/Templates/AndroidSupportProject.cshtml b/util/Xamarin.AndroidBinderator/Samples/Templates/AndroidSupportProject.cshtml
deleted file mode 100644
index ce7478e20..000000000
--- a/util/Xamarin.AndroidBinderator/Samples/Templates/AndroidSupportProject.cshtml
+++ /dev/null
@@ -1,117 +0,0 @@
-@using System.Linq
-
-
-
- MonoAndroid81
- true
-
- @(Model.NuGetPackageId)
- Resources
- Assets
- False
- True
- Resources\Resource.designer.cs
-
-
-
- @(Model.NuGetPackageId)
- Xamarin Android Support Library - @(Model.Name)
- Xamarin.Android bindings for Android Support Library - @(Model.Name)
- Xamarin.Android bindings for Android Support Library - @(Model.Name)
- Xamarin Android Xamarin.Android Support
- Xamarin Inc.
- Xamarin Inc.
- © Microsoft Corporation. All rights reserved.
- https://go.microsoft.com/fwlink/?linkid=865352
- https://go.microsoft.com/fwlink/?linkid=865381
- https://raw.githubusercontent.com/xamarin/AndroidSupportComponents/master/icons/@(Model.Name)_128x128.png
- @(Model.NuGetVersion)
- true
-
-
-
- class-parse
-
-
-
-
-
-
-
-
- @foreach (var art in @Model.MavenArtifacts) {
-
- }
-
-
- @*
- @foreach (var art in @Model.MavenArtifacts) {
-
- }
- *@
-
-
-
- @foreach (var art in @Model.MavenArtifacts) {
- <_AndroidDocumentationPath Include="..\..\..\externals\@(art.MavenGroupId)\@(art.MavenArtifactId)-paramnames.txt" Condition="Exists('..\..\..\externals\@(art.MavenGroupId)\@(art.MavenArtifactId)-paramnames.txt')" />
- }
-
-
-
-
-
-
-
-
-
-
-
- @if (@Model.MavenArtifacts.Count > 0) {
-
- @foreach (var art in @Model.MavenArtifacts) {
- if (art.ProguardFile != null) {
-
- }
- }
-
- }
-
-
-
- @foreach (var art in @Model.MavenArtifacts) {
- if (art.MavenArtifactPackaging == "aar") {
-
- }
- }
-
-
-
- @if (@Model.MavenArtifacts.Count > 0) {
-
- @foreach (var art in @Model.MavenArtifacts) {
- if (art.MavenArtifactPackaging == "aar") {
-
- } else {
-
- }
- }
-
- }
-
-
- @foreach (var dep in @Model.NuGetDependencies) {
- if (dep.IsProjectReference) {
-
- }
- }
-
-
-
- @foreach (var dep in @Model.NuGetDependencies) {
- if (!dep.IsProjectReference) {
-
- }
- }
-
-
-
diff --git a/util/Xamarin.AndroidBinderator/Samples/Templates/AndroidSupportTargets.cshtml b/util/Xamarin.AndroidBinderator/Samples/Templates/AndroidSupportTargets.cshtml
deleted file mode 100644
index b37bfbaec..000000000
--- a/util/Xamarin.AndroidBinderator/Samples/Templates/AndroidSupportTargets.cshtml
+++ /dev/null
@@ -1,33 +0,0 @@
-@using System.Linq
-
-
- @if (@Model.MavenArtifacts.Count > 0) {
-
- @foreach (var art in @Model.MavenArtifacts) {
- if (art.ProguardFile != null) {
-
- }
- }
-
- }
-
-
- @foreach (var art in @Model.MavenArtifacts) {
- if (art.MavenArtifactPackaging == "aar") {
-
- }
- }
-
-
- @if (@Model.Name == "support-vector-drawable") {
-
-
-
- $(AndroidResgenExtraArgs.TrimEnd(' ')) --no-version-vectors
-
-
- --no-version-vectors
-
-
- }
-
\ No newline at end of file
diff --git a/util/Xamarin.AndroidBinderator/Xamarin.AndroidBinderator.Tests/Xamarin.AndroidBinderator.Tests.csproj b/util/Xamarin.AndroidBinderator/Xamarin.AndroidBinderator.Tests/Xamarin.AndroidBinderator.Tests.csproj
index 11bb32074..a4f363f2f 100644
--- a/util/Xamarin.AndroidBinderator/Xamarin.AndroidBinderator.Tests/Xamarin.AndroidBinderator.Tests.csproj
+++ b/util/Xamarin.AndroidBinderator/Xamarin.AndroidBinderator.Tests/Xamarin.AndroidBinderator.Tests.csproj
@@ -1,7 +1,7 @@
- net8.0
+ $(_DefaultNetTargetFramework)
false
true
disable
diff --git a/util/Xamarin.AndroidBinderator/Xamarin.AndroidBinderator.Tool/Xamarin.AndroidBinderator.Tool.csproj b/util/Xamarin.AndroidBinderator/Xamarin.AndroidBinderator.Tool/Xamarin.AndroidBinderator.Tool.csproj
index 447d51728..9e856be71 100644
--- a/util/Xamarin.AndroidBinderator/Xamarin.AndroidBinderator.Tool/Xamarin.AndroidBinderator.Tool.csproj
+++ b/util/Xamarin.AndroidBinderator/Xamarin.AndroidBinderator.Tool/Xamarin.AndroidBinderator.Tool.csproj
@@ -3,7 +3,7 @@
true
Exe
- net8.0
+ $(_DefaultNetTargetFramework)
xamarin-android-binderator
Xamarin.AndroidBinderator.Tool
true
diff --git a/util/Xamarin.AndroidBinderator/Xamarin.AndroidBinderator/Xamarin.AndroidBinderator.csproj b/util/Xamarin.AndroidBinderator/Xamarin.AndroidBinderator/Xamarin.AndroidBinderator.csproj
index 5b5403949..94841735f 100644
--- a/util/Xamarin.AndroidBinderator/Xamarin.AndroidBinderator/Xamarin.AndroidBinderator.csproj
+++ b/util/Xamarin.AndroidBinderator/Xamarin.AndroidBinderator/Xamarin.AndroidBinderator.csproj
@@ -1,7 +1,7 @@
- net8.0
+ $(_DefaultNetTargetFramework)
12.0
true
AndroidBinderator
diff --git a/util/Xamarin.Build.Download/source/Xamarin.Build.Download.Tests/Xamarin.Build.Download.Tests.csproj b/util/Xamarin.Build.Download/source/Xamarin.Build.Download.Tests/Xamarin.Build.Download.Tests.csproj
index 15c1aa2ef..f571af3c5 100644
--- a/util/Xamarin.Build.Download/source/Xamarin.Build.Download.Tests/Xamarin.Build.Download.Tests.csproj
+++ b/util/Xamarin.Build.Download/source/Xamarin.Build.Download.Tests/Xamarin.Build.Download.Tests.csproj
@@ -1,7 +1,7 @@
- net8.0
+ $(_DefaultNetTargetFramework)
true
Major
diff --git a/utilities.cake b/utilities.cake
index 46298f234..b9f791b0b 100644
--- a/utilities.cake
+++ b/utilities.cake
@@ -287,7 +287,7 @@ Task ("generate-component-governance")
manifest.MappingMavenArtifact2NuGetPackage = mappings_artifact_nuget;
- Console.WriteLine($"Saving ComponetGovernanceManifest cgmanifest.json...");
+ Information($"Saving ComponetGovernanceManifest cgmanifest.json...");
manifest.Save("./cgmanifest.json");
System.IO.File.WriteAllText
@@ -453,7 +453,7 @@ Task ("spell-check")
var dictionary = WeCantSpell.Hunspell.WordList.CreateFromFiles(@"externals/English (American).dic");
string[] words =
- [
+ {
"Xamarin",
"AndroidX",
"IdentifierCommon",
@@ -828,7 +828,7 @@ Task ("spell-check")
"Json",
"ViewTree",
"TypeAnnotations",
- ];
+ };
var dictionary_custom = WeCantSpell.Hunspell.WordList.CreateFromWords(words);
@@ -1743,24 +1743,24 @@ Task("verify-namespace-file")
if (new_ns.Any ()) {
unhandled_changes = true;
- Console.WriteLine ("New Namespaces");
- Console.WriteLine ("--------------");
+ Information ("New Namespaces");
+ Information ("--------------");
foreach (var ns in new_ns)
- Console.WriteLine (ns);
+ Information (ns);
- Console.WriteLine ();
+ Information ("");
}
var removed_ns = old_list.Except (new_list);
if (removed_ns.Any ()) {
unhandled_changes = true;
- Console.WriteLine ("Removed Namespaces");
- Console.WriteLine ("------------------");
+ Information ("Removed Namespaces");
+ Information ("------------------");
foreach (var ns in removed_ns)
- Console.WriteLine (ns);
+ Information (ns);
}
if (unhandled_changes)
@@ -1920,10 +1920,10 @@ Task("tools-executive-oreder-csv-and-markdown")
no version info
let's parse
- dotnet tool list --global
+ dotnet tool list
*/
process = "dotnet";
- process_args = "tool list --global";
+ process_args = "tool list";
process_settings = new ProcessSettings ()
{
Arguments = process_args,
@@ -2053,7 +2053,7 @@ Task("tools-executive-oreder-csv-and-markdown")
return;
} catch (Exception ex) {
// Don't fail the build if this fails.
- Console.WriteLine (ex);
+ Information (ex);
}
}
);