{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":55075302,"defaultBranch":"main","name":"xamarin-android","ownerLogin":"xamarin","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2016-03-30T15:37:14.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/790012?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1717165883.0","currentOid":""},"activityList":{"items":[{"before":"3b25208d8fd0cc16138a098b33d36a0ddfca0cde","after":"819f3ef176b6baeea6fc822cf773715bf7b2b031","ref":"refs/heads/dev/grendel/perfetto-integration","pushedAt":"2024-06-03T16:33:58.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"grendello","name":"Marek Habersack","path":"/grendello","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/184788?s=80&v=4"},"commit":{"message":"Fix a typo","shortMessageHtmlLink":"Fix a typo"}},{"before":"b712d86523c26e187988257308fe2b87c226cb57","after":"fc50aee0e30e881043189a7e7286de75bd76ca51","ref":"refs/heads/darc-release/8.0.2xx-4ab43175-9393-4d50-9088-6259eb1c0948","pushedAt":"2024-06-03T13:23:20.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"dotnet-maestro[bot]","name":null,"path":"/apps/dotnet-maestro","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/16706?s=80&v=4"},"commit":{"message":"Update dependencies from https://github.com/dotnet/runtime build 20240520.19\n\nMicrosoft.NET.ILLink , Microsoft.NET.ILLink.Tasks , Microsoft.NETCore.App.Ref\n From Version 8.0.4-servicing.24168.9 -> To Version 8.0.7-servicing.24270.19\n\nDependency coherency updates\n\nMicrosoft.NET.Workload.Emscripten.Current.Manifest-8.0.100\n From Version 8.0.4 -> To Version 8.0.7 (parent: Microsoft.NETCore.App.Ref","shortMessageHtmlLink":"Update dependencies from https://github.com/dotnet/runtime build 2024…"}},{"before":"fe2e573d64422b0150716b1d40db5a13058c96a8","after":"6f1aa55457e1615177c28b15eb9a44751b2e43b3","ref":"refs/heads/darc-release/8.0.2xx-de067317-8c3f-4c80-b68d-e242fb658170","pushedAt":"2024-06-03T13:22:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"dotnet-maestro[bot]","name":null,"path":"/apps/dotnet-maestro","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/16706?s=80&v=4"},"commit":{"message":"Update dependencies from https://github.com/dotnet/installer build 20240412.27\n\nMicrosoft.Dotnet.Sdk.Internal\n From Version 8.0.204-servicing.24169.39 -> To Version 8.0.205-servicing.24212.27","shortMessageHtmlLink":"Update dependencies from https://github.com/dotnet/installer build 20…"}},{"before":"9cc0b9376f72239e1d30d8f53921f6aa3f6b22eb","after":"e490c3e40217e67cd0c0f0fd75f7949974aa6cf5","ref":"refs/heads/darc-main-e62967e2-2bc8-4b3d-bc31-e2dcd0734008","pushedAt":"2024-06-03T13:13:20.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"dotnet-maestro[bot]","name":null,"path":"/apps/dotnet-maestro","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/16706?s=80&v=4"},"commit":{"message":"Update dependencies from https://github.com/dotnet/sdk build 20240602.3\n\nVS.Tools.Net.Core.SDK.Resolver\n From Version 9.0.100-preview.5.24262.2 -> To Version 9.0.100-preview.6.24302.3\n\nDependency coherency updates\n\nMicrosoft.NETCore.App.Ref,Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100.Transport,Microsoft.NET.ILLink.Tasks\n From Version 9.0.0-preview.5.24256.1 -> To Version 9.0.0-preview.6.24281.1 (parent: VS.Tools.Net.Core.SDK.Resolver","shortMessageHtmlLink":"Update dependencies from https://github.com/dotnet/sdk build 20240602.3"}},{"before":"2934099d5e85de96e71f6cc67908bc50bce5be5d","after":"3b25208d8fd0cc16138a098b33d36a0ddfca0cde","ref":"refs/heads/dev/grendel/perfetto-integration","pushedAt":"2024-06-03T10:45:11.000Z","pushType":"push","commitsCount":11,"pusher":{"login":"grendello","name":"Marek Habersack","path":"/grendello","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/184788?s=80&v=4"},"commit":{"message":"Merge branch 'main' into dev/grendel/perfetto-integration\n\n* main:\n [ci] Update .NET version installed for MAUI tests (#8995)\n [ci] Run \"Push Internal\" job on AzurePipelines-EO pool (#8991)\n [Xamarin.Android.Build.Tasks] LLVM Marshal Methods by Default, Take 2 (#8925)\n $(AndroidPackVersionSuffix)=preview.6; net9 is 34.99.0.preview.6 (#8989)\n [ci] Update path for generated `*.include.*` files (#8980)\n Bump to xamarin/xamarin-android-tools/main@da2c33e (#8984)\n Bump to xamarin/Java.Interop/main@f935001 (#8985)\n Bump to xamarin/monodroid/main@93ab95e18 (#8959)\n Force loc task pool image to windows (#8983)\n [git] Re-format `.gitmodules` (#8978)","shortMessageHtmlLink":"Merge branch 'main' into dev/grendel/perfetto-integration"}},{"before":"9b89ae5fd9481b632087c414c1b1371db54fcbda","after":"9d627825a5e19f7277eab761f5d79427bd209777","ref":"refs/heads/fastdev","pushedAt":"2024-06-03T07:26:28.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"dellis1972","name":"Dean Ellis","path":"/dellis1972","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/810617?s=80&v=4"},"commit":{"message":"Bump monodroid","shortMessageHtmlLink":"Bump monodroid"}},{"before":"219983c251377b5199175d6a2ad1c0bf4d537b00","after":"9b89ae5fd9481b632087c414c1b1371db54fcbda","ref":"refs/heads/fastdev","pushedAt":"2024-05-31T14:39:33.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dellis1972","name":"Dean Ellis","path":"/dellis1972","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/810617?s=80&v=4"},"commit":{"message":"Fix DeviceAbi selection","shortMessageHtmlLink":"Fix DeviceAbi selection"}},{"before":"f349ccca2333adef7886dd760ff8faa9138deb4c","after":null,"ref":"refs/heads/dev/pjc/maui-net9-arcadefix","pushedAt":"2024-05-31T14:31:23.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"pjcollins","name":"Peter Collins","path":"/pjcollins","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2000163?s=80&v=4"}},{"before":"0803452d3630e7384a14b605afd6e0a8e1fbc99a","after":"17f8b79c46b7b6fa11a42d527a831d8d3fc2e437","ref":"refs/heads/main","pushedAt":"2024-05-31T14:31:22.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"pjcollins","name":"Peter Collins","path":"/pjcollins","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2000163?s=80&v=4"},"commit":{"message":"[ci] Update .NET version installed for MAUI tests (#8995)\n\nThe MAUI integration job started failing recently seemingly due to some\r\nof the arcade integration changes they are making:\r\n\r\n C:\\Users\\cloudtest\\.nuget\\packages\\microsoft.dotnet.arcade.sdk\\9.0.0-beta.24274.1\\tools\\RepositoryValidation.proj(33,5): error MSB4018: The \"Microsoft.DotNet.Arcade.Sdk.GetLicenseFilePath\" task failed unexpectedly.\r\n C:\\Users\\cloudtest\\.nuget\\packages\\microsoft.dotnet.arcade.sdk\\9.0.0-beta.24274.1\\tools\\RepositoryValidation.proj(33,5): error MSB4018: System.IO.FileNotFoundException: Could not load file or assembly 'System.Runtime, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified.\r\n C:\\Users\\cloudtest\\.nuget\\packages\\microsoft.dotnet.arcade.sdk\\9.0.0-beta.24274.1\\tools\\RepositoryValidation.proj(33,5): error MSB4018: File name: 'System.Runtime, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'\r\n\r\nAttempt to fix this by installing a .NET 9 preview that will be used to\r\nrun their build tasks that provision a local .NET install.\r\n\r\nThe `installLegacyDotNet` setup-test-environment parameter did not seem\r\nto be in use anywhere and has also been removed.","shortMessageHtmlLink":"[ci] Update .NET version installed for MAUI tests (#8995)"}},{"before":null,"after":"7eeb996786f354e71e14cbd75f5ee19b5ae341b2","ref":"refs/heads/dev/pjc/build-full-docs","pushedAt":"2024-05-30T20:17:36.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"pjcollins","name":"Peter Collins","path":"/pjcollins","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2000163?s=80&v=4"},"commit":{"message":"[Mono.Android] Test building docs with javadoc info","shortMessageHtmlLink":"[Mono.Android] Test building docs with javadoc info"}},{"before":"f1284d67c9fbc01d85effeb1bcbe3925685f5faf","after":"c8158ac603316d53a692e6928147ec4df55768bb","ref":"refs/heads/release/9.0.1xx-preview5","pushedAt":"2024-05-30T19:23:51.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jonpryor","name":"Jonathan Pryor","path":"/jonpryor","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/155958?s=80&v=4"},"commit":{"message":"[Xamarin.Android.Build.Tasks] LLVM Marshal Methods by Default, Take 2 (#8925)\n\nContext: 68368189d67c46ddbfed4e90e622f635c4aff11e\r\nContext: 8bc7a3e84f95e70fe12790ac31ecd97957771cb2\r\n\r\nCommit 8bc7a3e8 enabled LLVM Marshal Methods by default, and commit\r\n68368189 *disabled* LLVM Marshal Methods by default, because it\r\nappeared to contribute to hangs in MAUI+Blazor apps.\r\n\r\nAfter lots of additional cleanup, refactoring, and investigation… we\r\n*still* don't understand why MAUI+Blazor apps hang, and we want the\r\napp time startup improvements that LLVM Marshal Methods allow.\r\n\r\nSquare this circle by enabling LLVM Marshal Methods by default,\r\n*unless* Blazor is detected, in which case LLVM Marshal Methods will\r\nbe *disabled* automatically.\r\n\r\n~~ App startup time improvements ~~\r\n\r\nMeasurements are across 50 runs if a test app, with the fastest and\r\nslowest runs removed from the set.\r\n\r\n * Displayed time\r\n * Best result: **15.73%** faster (default settings\r\n *without* ProfiledAOT and compression)\r\n * Default settings result: **12.66%** faster.\r\n * Native to managed transition\r\n * Best result: **1.31%** faster\r\n * Default settings result: **0.35%** slower\r\n * Total managed runtime init\r\n * Best result: **2.55%** faster (default settings without ProfiledAOT)\r\n * Default settings result: **0.71%** faster\r\n\r\n\r\n~~ Build Target Interdependencies ~~\r\n\r\nWhile developing this change, we ran into an odd bug, via the\r\n`InstallAndRunTests.EnableAndroidStripILAfterAOT(false)` test:\r\n\r\n\t% dotnet new android\r\n\t% dotnet build -c Release -v:diag -p:AndroidEnableMarshalMethods=true \\\r\n\t -p:AndroidStripILAfterAOT=true -p:AndroidEnableProfiledAot=false > b.txt\r\n\t% dotnet build -c Release -v:diag -p:AndroidEnableMarshalMethods=true \\\r\n\t -p:AndroidStripILAfterAOT=true -p:AndroidEnableProfiledAot=false -t:Install > i.txt\r\n\t% dotnet build -c Release -t:StartAndroidActivity\r\n\r\nThe app immediately crashes on startup; from `adb logcat`:\r\n\r\n\tF mono-rt : [ERROR] FATAL UNHANDLED EXCEPTION: System.InvalidProgramException: Invalid IL code in Android.Runtime.JNIEnvInit:Initialize (Android.Runtime.JNIEnvInit/JnienvInitializeArgs*): method body is empty.\r\n\r\nThe reason fo the crash is that during the first `dotnet build`\r\ninvocation, the marshal methods classifier works as it should and,\r\nconsequently, the marshal methods rewriter *modifies the assemblies*:\r\nremoves connector methods, generates wrapper methods, etc etc.\r\nAs part of this, the `_GenerateJavaStubs` target eventually creates a\r\nstamp file which it then uses to decide whether all the inputs are up\r\nto date with regards to their corresponding outputs.\r\n\r\nHowever, at the end of the first `dotnet build`, `ILStrip` runs which\r\nmodifies assemblies *after* marshal methods processing is done.\r\n\r\nWhen we run the `dotnet build -t:Install` command, the\r\nthe `_GenerateJavaStubs` target runs *again* as MSBuild notices that\r\nthe stamp file is older than some of the inputs: assemblies modified\r\nby `ILStrip` after `_GenerateJavaStubs` created its stamp file.\r\nThis causes the target to run completely:\r\n\r\n\tTarget \"_GenerateJavaStubs: (TargetId:337)\" in file \"/usr/local/share/dotnet/packs/Microsoft.Android.Sdk.Darwin/34.0.95/tools/Xamarin.Android.Common.targets\" from project \"…/gxa-8925.csproj\" (target \"_GeneratePackageManagerJava\" depends on it):\r\n\tBuilding target \"_GenerateJavaStubs\" completely.\r\n\tInput file \"obj/Release/net8.0-android/android-arm/linked/gxa-8925.dll\" is newer than output file \"obj/Release/net8.0-android/stamp/_GenerateJavaStubs.stamp\".\r\n\r\nwhich causes the whole marshal methods processing to be initiated\r\nagain, but this time the connector methods and anything else the\r\nclassifier looks for aren't there, because they were previously\r\nremoved by the rewriter during the first `dotnet build` command.\r\nThis, in turn, causes the classifier to decide that types need to be\r\nregistered dynamically, but they can't because the connector methods\r\nwhich are required to create delegates are no longer there and we get\r\na runtime crash instead.\r\n\r\nThe solution is to update the `_GenerateJavaStubs` stamp file after\r\n`ILStrip` is done, within the `_AndroidAotCompilation` target,\r\nif it modified any assemblies.\r\n\r\nOne problem with that is that the path to the stamp file's directory\r\nis different when `_GenerateJavaStubs` runs during the build phase,\r\nand when AOT and `ILStrip` run. In the former case, the stamp file\r\nis created in `obj/${Configuration}/stamp` directory, in the latter\r\ncase in `obj/${Configuration}/android-ARCH/stamp` directory, but\r\n*both* locations are initialized in the same spot: at the top of\r\n`Xamarin.Android.Common.targets`. In effect, after `ILStrip` runs,\r\nwe don't really know where `_GenerateJavaStubs` created its stamp file.\r\n\r\nWorkaround this by taking advantage of the fact that we know where\r\nthe stamp directories are in relation to each other. It's a hack,\r\nbut if the relation is somehow broken, the\r\n`InstallAndRunTests.EnableAndroidStripILAfterAOT(false)` test will\r\nbreak again.","shortMessageHtmlLink":"[Xamarin.Android.Build.Tasks] LLVM Marshal Methods by Default, Take 2 ("}},{"before":"8ce6d551e605a4d336385f6ced54adb87c845deb","after":"afaf07216b968eca1203183fccef46f3f811bf70","ref":"refs/heads/dev/pjc/optmono","pushedAt":"2024-05-30T18:50:52.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"pjcollins","name":"Peter Collins","path":"/pjcollins","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2000163?s=80&v=4"},"commit":{"message":"Merge remote-tracking branch 'origin/main' into dev/pjc/optmono","shortMessageHtmlLink":"Merge remote-tracking branch 'origin/main' into dev/pjc/optmono"}},{"before":"ac7087af819b53eaff5d96e9363af5b02b1a296f","after":"f349ccca2333adef7886dd760ff8faa9138deb4c","ref":"refs/heads/dev/pjc/maui-net9-arcadefix","pushedAt":"2024-05-30T18:32:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pjcollins","name":"Peter Collins","path":"/pjcollins","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2000163?s=80&v=4"},"commit":{"message":"Fix script params","shortMessageHtmlLink":"Fix script params"}},{"before":null,"after":"0b0bc597024385dc1bd2aa32d88a1da151e3a945","ref":"refs/heads/dev/jonp/jonp-use-dotnet-api-docs","pushedAt":"2024-05-30T17:47:34.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"jonpryor","name":"Jonathan Pryor","path":"/jonpryor","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/155958?s=80&v=4"},"commit":{"message":"Bump to dotnet/android-api-docs/main@f72d4b9f\n\nUse dotnet/android-api-docs instead of xamarin/android-api-docs.","shortMessageHtmlLink":"Bump to dotnet/android-api-docs@f72d4b9f"}},{"before":"13b0ed1ec127ad7174fc995b85c5341fdb263d41","after":"ac7087af819b53eaff5d96e9363af5b02b1a296f","ref":"refs/heads/dev/pjc/maui-net9-arcadefix","pushedAt":"2024-05-30T17:38:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pjcollins","name":"Peter Collins","path":"/pjcollins","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2000163?s=80&v=4"},"commit":{"message":"Don't set quality param","shortMessageHtmlLink":"Don't set quality param"}},{"before":null,"after":"13b0ed1ec127ad7174fc995b85c5341fdb263d41","ref":"refs/heads/dev/pjc/maui-net9-arcadefix","pushedAt":"2024-05-30T15:51:44.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"pjcollins","name":"Peter Collins","path":"/pjcollins","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2000163?s=80&v=4"},"commit":{"message":"[ci] Update .NET version installed for MAUI tests\n\nThe MAUI integration job started failing recently seemingly due to some\nof the arcade integration changes they are making:\n\n C:\\Users\\cloudtest\\.nuget\\packages\\microsoft.dotnet.arcade.sdk\\9.0.0-beta.24274.1\\tools\\RepositoryValidation.proj(33,5): error MSB4018: The \"Microsoft.DotNet.Arcade.Sdk.GetLicenseFilePath\" task failed unexpectedly.\n C:\\Users\\cloudtest\\.nuget\\packages\\microsoft.dotnet.arcade.sdk\\9.0.0-beta.24274.1\\tools\\RepositoryValidation.proj(33,5): error MSB4018: System.IO.FileNotFoundException: Could not load file or assembly 'System.Runtime, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified.\n C:\\Users\\cloudtest\\.nuget\\packages\\microsoft.dotnet.arcade.sdk\\9.0.0-beta.24274.1\\tools\\RepositoryValidation.proj(33,5): error MSB4018: File name: 'System.Runtime, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'\n\nAttempt to fix this by installing a .NET 9 preview that will be used to\nrun their build tasks that provision a local .NET install.\n\nThe `installLegacyDotNet` setup-test-environment parameter did not seem\nto be in use anywhere and has also been removed.","shortMessageHtmlLink":"[ci] Update .NET version installed for MAUI tests"}},{"before":"4212bea2a85332bd65e3d5f08a696144795ce168","after":"219983c251377b5199175d6a2ad1c0bf4d537b00","ref":"refs/heads/fastdev","pushedAt":"2024-05-30T14:24:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"dellis1972","name":"Dean Ellis","path":"/dellis1972","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/810617?s=80&v=4"},"commit":{"message":"Fix DeviceAbi selection","shortMessageHtmlLink":"Fix DeviceAbi selection"}},{"before":null,"after":"82264edcd852f9cfc24057a2b52b916086fd2228","ref":"refs/heads/dependabot/submodules/external/android-api-docs-a993a89","pushedAt":"2024-05-30T02:10:08.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"},"commit":{"message":"Bump external/android-api-docs from `9b7ea12` to `a993a89`\n\nBumps [external/android-api-docs](https://github.com/xamarin/android-api-docs) from `9b7ea12` to `a993a89`.\n- [Commits](https://github.com/xamarin/android-api-docs/compare/9b7ea12a1366b566f32a93bef20fc079288d9244...a993a8996fe6dc94bea8807893f0cf933847a30e)\n\n---\nupdated-dependencies:\n- dependency-name: external/android-api-docs\n dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] ","shortMessageHtmlLink":"Bump external/android-api-docs from 9b7ea12 to a993a89"}},{"before":"de0118b89745fd4d4847895ec394283c588083b2","after":"7c16995c9b4a035a65d1743098d0bef9ec6dcf58","ref":"refs/heads/dev/pjc/net-api-docs","pushedAt":"2024-05-29T21:57:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pjcollins","name":"Peter Collins","path":"/pjcollins","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2000163?s=80&v=4"},"commit":{"message":"Update external docs paths","shortMessageHtmlLink":"Update external docs paths"}},{"before":"e288818f8148e39b15d322e1fb645db26ac99d2c","after":"8ce6d551e605a4d336385f6ced54adb87c845deb","ref":"refs/heads/dev/pjc/optmono","pushedAt":"2024-05-29T20:48:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pjcollins","name":"Peter Collins","path":"/pjcollins","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2000163?s=80&v=4"},"commit":{"message":"Update readme","shortMessageHtmlLink":"Update readme"}},{"before":"c61174316fcb69959fc8731964edbf2e7df7d726","after":"f1284d67c9fbc01d85effeb1bcbe3925685f5faf","ref":"refs/heads/release/9.0.1xx-preview5","pushedAt":"2024-05-29T20:40:22.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pjcollins","name":"Peter Collins","path":"/pjcollins","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2000163?s=80&v=4"},"commit":{"message":"[ci] Run \"Push Internal\" job on AzurePipelines-EO pool (#8991)\n\nWe've been running into issues with the `AzureFileCopy` task on the\r\nMicroBuild pool, which will hopefully be resolved by using a different\r\nimage:\r\n\r\n Failed to perform Auto-login: 'Get-AzAccessToken' command was found in the module 'Az.Accounts', but the module could not be loaded.","shortMessageHtmlLink":"[ci] Run \"Push Internal\" job on AzurePipelines-EO pool (#8991)"}},{"before":"9ba585f3196a9a75f84085cfc0b3679ef14fd3be","after":null,"ref":"refs/heads/dev/pjc/azpnetpreprel","pushedAt":"2024-05-29T20:18:42.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"pjcollins","name":"Peter Collins","path":"/pjcollins","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2000163?s=80&v=4"}},{"before":"a9706b6ef0429250ecaf1e500d77cd19e94e2eb5","after":"0803452d3630e7384a14b605afd6e0a8e1fbc99a","ref":"refs/heads/main","pushedAt":"2024-05-29T20:18:41.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"pjcollins","name":"Peter Collins","path":"/pjcollins","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2000163?s=80&v=4"},"commit":{"message":"[ci] Run \"Push Internal\" job on AzurePipelines-EO pool (#8991)\n\nWe've been running into issues with the `AzureFileCopy` task on the\r\nMicroBuild pool, which will hopefully be resolved by using a different\r\nimage:\r\n\r\n Failed to perform Auto-login: 'Get-AzAccessToken' command was found in the module 'Az.Accounts', but the module could not be loaded.","shortMessageHtmlLink":"[ci] Run \"Push Internal\" job on AzurePipelines-EO pool (#8991)"}},{"before":null,"after":"e288818f8148e39b15d322e1fb645db26ac99d2c","ref":"refs/heads/dev/pjc/optmono","pushedAt":"2024-05-29T20:10:31.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"pjcollins","name":"Peter Collins","path":"/pjcollins","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2000163?s=80&v=4"},"commit":{"message":"[build] Add option to skip Mono MDK provisioning\n\nThe mono related CLI parameters for xaprepare have been updated to make\nit possible to skip installation of the Mono MDK via the following:\n\n make prepare-update-mono PREPARE_AUTOPROVISION=1 PREPARE_AUTOPROVISION_SKIP_MONO=1\n make prepare PREPARE_AUTOPROVISION=1 PREPARE_AUTOPROVISION_SKIP_MONO=1\n\nUnused `ignore-*-mono-version=` parameters have been removed and\nreplaced with their default values.\n\nBuild warnings in the project have also been fixed on macOS.","shortMessageHtmlLink":"[build] Add option to skip Mono MDK provisioning"}},{"before":null,"after":"de0118b89745fd4d4847895ec394283c588083b2","ref":"refs/heads/dev/pjc/net-api-docs","pushedAt":"2024-05-29T19:20:22.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"pjcollins","name":"Peter Collins","path":"/pjcollins","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2000163?s=80&v=4"},"commit":{"message":"Bump to dotnet/android-api-docs@c14203771a\n\nThe xamarin/android-api-docs repo has been archived and replaced with\nhttps://github.com/dotnet/android-api-docs.","shortMessageHtmlLink":"Bump to dotnet/android-api-docs@c14203771a"}},{"before":"a4ffa9fde96e819e328657084b183f68cbe16593","after":"4212bea2a85332bd65e3d5f08a696144795ce168","ref":"refs/heads/fastdev","pushedAt":"2024-05-29T14:33:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"dellis1972","name":"Dean Ellis","path":"/dellis1972","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/810617?s=80&v=4"},"commit":{"message":"remove issue","shortMessageHtmlLink":"remove issue"}},{"before":"804e0eef4dcf04685de3b690b13d2f5f7f0e11e3","after":"a4ffa9fde96e819e328657084b183f68cbe16593","ref":"refs/heads/fastdev","pushedAt":"2024-05-29T14:30:41.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dellis1972","name":"Dean Ellis","path":"/dellis1972","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/810617?s=80&v=4"},"commit":{"message":"fix up tests","shortMessageHtmlLink":"fix up tests"}},{"before":null,"after":"9ba585f3196a9a75f84085cfc0b3679ef14fd3be","ref":"refs/heads/dev/pjc/azpnetpreprel","pushedAt":"2024-05-29T14:30:36.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"pjcollins","name":"Peter Collins","path":"/pjcollins","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2000163?s=80&v=4"},"commit":{"message":"[ci] Run \"Push Internal\" job on AzurePipelines-EO pool\n\nWe've been running into issues with the `AzureFileCopy` task on the\nMicroBuild pool, which will hopefully be resolved by using a different\nimage.","shortMessageHtmlLink":"[ci] Run \"Push Internal\" job on AzurePipelines-EO pool"}},{"before":"e779c215debc92559e674e7265124c6d283b1e0d","after":null,"ref":"refs/heads/dev/grendel/enable-marshal-methods","pushedAt":"2024-05-28T23:26:32.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"jonpryor","name":"Jonathan Pryor","path":"/jonpryor","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/155958?s=80&v=4"}},{"before":"935808b4ce00d68f709c0835b3371d2a268388e9","after":"a9706b6ef0429250ecaf1e500d77cd19e94e2eb5","ref":"refs/heads/main","pushedAt":"2024-05-28T23:26:31.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jonpryor","name":"Jonathan Pryor","path":"/jonpryor","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/155958?s=80&v=4"},"commit":{"message":"[Xamarin.Android.Build.Tasks] LLVM Marshal Methods by Default, Take 2 (#8925)\n\nContext: 68368189d67c46ddbfed4e90e622f635c4aff11e\r\nContext: 8bc7a3e84f95e70fe12790ac31ecd97957771cb2\r\n\r\nCommit 8bc7a3e8 enabled LLVM Marshal Methods by default, and commit\r\n68368189 *disabled* LLVM Marshal Methods by default, because it\r\nappeared to contribute to hangs in MAUI+Blazor apps.\r\n\r\nAfter lots of additional cleanup, refactoring, and investigation… we\r\n*still* don't understand why MAUI+Blazor apps hang, and we want the\r\napp time startup improvements that LLVM Marshal Methods allow.\r\n\r\nSquare this circle by enabling LLVM Marshal Methods by default,\r\n*unless* Blazor is detected, in which case LLVM Marshal Methods will\r\nbe *disabled* automatically.\r\n\r\n~~ App startup time improvements ~~\r\n\r\nMeasurements are across 50 runs if a test app, with the fastest and\r\nslowest runs removed from the set.\r\n\r\n * Displayed time\r\n * Best result: **15.73%** faster (default settings\r\n *without* ProfiledAOT and compression)\r\n * Default settings result: **12.66%** faster.\r\n * Native to managed transition\r\n * Best result: **1.31%** faster\r\n * Default settings result: **0.35%** slower\r\n * Total managed runtime init\r\n * Best result: **2.55%** faster (default settings without ProfiledAOT)\r\n * Default settings result: **0.71%** faster\r\n\r\n\r\n~~ Build Target Interdependencies ~~\r\n\r\nWhile developing this change, we ran into an odd bug, via the\r\n`InstallAndRunTests.EnableAndroidStripILAfterAOT(false)` test:\r\n\r\n\t% dotnet new android\r\n\t% dotnet build -c Release -v:diag -p:AndroidEnableMarshalMethods=true \\\r\n\t -p:AndroidStripILAfterAOT=true -p:AndroidEnableProfiledAot=false > b.txt\r\n\t% dotnet build -c Release -v:diag -p:AndroidEnableMarshalMethods=true \\\r\n\t -p:AndroidStripILAfterAOT=true -p:AndroidEnableProfiledAot=false -t:Install > i.txt\r\n\t% dotnet build -c Release -t:StartAndroidActivity\r\n\r\nThe app immediately crashes on startup; from `adb logcat`:\r\n\r\n\tF mono-rt : [ERROR] FATAL UNHANDLED EXCEPTION: System.InvalidProgramException: Invalid IL code in Android.Runtime.JNIEnvInit:Initialize (Android.Runtime.JNIEnvInit/JnienvInitializeArgs*): method body is empty.\r\n\r\nThe reason fo the crash is that during the first `dotnet build`\r\ninvocation, the marshal methods classifier works as it should and,\r\nconsequently, the marshal methods rewriter *modifies the assemblies*:\r\nremoves connector methods, generates wrapper methods, etc etc.\r\nAs part of this, the `_GenerateJavaStubs` target eventually creates a\r\nstamp file which it then uses to decide whether all the inputs are up\r\nto date with regards to their corresponding outputs.\r\n\r\nHowever, at the end of the first `dotnet build`, `ILStrip` runs which\r\nmodifies assemblies *after* marshal methods processing is done.\r\n\r\nWhen we run the `dotnet build -t:Install` command, the\r\nthe `_GenerateJavaStubs` target runs *again* as MSBuild notices that\r\nthe stamp file is older than some of the inputs: assemblies modified\r\nby `ILStrip` after `_GenerateJavaStubs` created its stamp file.\r\nThis causes the target to run completely:\r\n\r\n\tTarget \"_GenerateJavaStubs: (TargetId:337)\" in file \"/usr/local/share/dotnet/packs/Microsoft.Android.Sdk.Darwin/34.0.95/tools/Xamarin.Android.Common.targets\" from project \"…/gxa-8925.csproj\" (target \"_GeneratePackageManagerJava\" depends on it):\r\n\tBuilding target \"_GenerateJavaStubs\" completely.\r\n\tInput file \"obj/Release/net8.0-android/android-arm/linked/gxa-8925.dll\" is newer than output file \"obj/Release/net8.0-android/stamp/_GenerateJavaStubs.stamp\".\r\n\r\nwhich causes the whole marshal methods processing to be initiated\r\nagain, but this time the connector methods and anything else the\r\nclassifier looks for aren't there, because they were previously\r\nremoved by the rewriter during the first `dotnet build` command.\r\nThis, in turn, causes the classifier to decide that types need to be\r\nregistered dynamically, but they can't because the connector methods\r\nwhich are required to create delegates are no longer there and we get\r\na runtime crash instead.\r\n\r\nThe solution is to update the `_GenerateJavaStubs` stamp file after\r\n`ILStrip` is done, within the `_AndroidAotCompilation` target,\r\nif it modified any assemblies.\r\n\r\nOne problem with that is that the path to the stamp file's directory\r\nis different when `_GenerateJavaStubs` runs during the build phase,\r\nand when AOT and `ILStrip` run. In the former case, the stamp file\r\nis created in `obj/${Configuration}/stamp` directory, in the latter\r\ncase in `obj/${Configuration}/android-ARCH/stamp` directory, but\r\n*both* locations are initialized in the same spot: at the top of\r\n`Xamarin.Android.Common.targets`. In effect, after `ILStrip` runs,\r\nwe don't really know where `_GenerateJavaStubs` created its stamp file.\r\n\r\nWorkaround this by taking advantage of the fact that we know where\r\nthe stamp directories are in relation to each other. It's a hack,\r\nbut if the relation is somehow broken, the\r\n`InstallAndRunTests.EnableAndroidStripILAfterAOT(false)` test will\r\nbreak again.","shortMessageHtmlLink":"[Xamarin.Android.Build.Tasks] LLVM Marshal Methods by Default, Take 2 ("}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEWypzsAA","startCursor":null,"endCursor":null}},"title":"Activity · xamarin/xamarin-android"}