{"push_id":2941242201,"size":206,"distinct_size":4,"ref":"refs/heads/linux-deps-update","head":"93d254cb79da5cd5c62ba9d370e29c7fe0fa2466","before":"04035bb21d75b14babdd45d67bbf39ec401714fb","commits":[{"sha":"d18c45ac770414086abe8251c2e28c85a0b95793","author":{"name":"Radek Doulik","email":"8c3caa5027485880905e098c642caed827dcbdb6@users.noreply.github.com"},"message":"[build] Build and config jnimarshalmethod-gen.exe (#1750)\n\nAdd the `Xamarin.Android.Tools.JniMarshalMethodGenerator.csproj`\r\nproject to `Xamarin.Android.sln`, so that `jnimarshalmethod-gen.exe`\r\nwill be built into the output directory\r\n`bin/$(Configuration)/lib/xamarin.android/xbuild/Xamarin/Android`.\r\n\r\n`jnimarshalmethod-gen.exe` will be used to generate Marshal Methods\r\nduring packaging time, when enabled via the\r\n`$(AndroidGenerateJniMarshalMethods)` MSBuild property.\r\n\r\n`jnimarshalmethod-gen.exe` in turn uses\r\n`Java.Runtime.Environment.dll`, which uses\r\n`Java.Runtime.Environment.dll.config` to determine what native\r\nlibrary to load instead `java-interop`; we want it to instead use\r\nthe `mono-android.debug` native lib that xamarin-android builds.\r\nThis is similar to what we already did for `Java.Interop.dll`\r\nwithin the `src/monodroid` build.","distinct":false,"url":"https://api.github.com/repos/grendello/xamarin-android/commits/d18c45ac770414086abe8251c2e28c85a0b95793"},{"sha":"83d843bfb6e6d44eedf45bf5a6a04878cc6f7150","author":{"name":"Dean Ellis","email":"049ca2a632b02fd8d7fb6fd36ea8779ff1a63a3d@googlemail.com"},"message":"[Xamarin.Android.Build.Tasks] Fix inconsistent library cache files. (#1818)\n\nFixes: https://github.com/xamarin/xamarin-android/issues/1814\r\n\r\nBoth of the `GetImportedLibraries` and\r\n`ResolveLibraryProjectImports` targets have a problem where the cache\r\nfiles they generate are not always consistent between builds: in some\r\ncases, additional entries are added or removed:\r\n\r\n\tdiff -u old.cache Bug15162/obj/Debug/libraryprojectimports.cache\r\n\t--- old.cache\t2018-06-14 11:12:10.000000000 +0100\r\n\t+++ Bug15162/obj/Debug/libraryprojectimports.cache\t2018-06-14 11:12:28.000000000 +0100\r\n\t@@ -1,8 +1,6 @@\r\n\t ﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n\t <Paths>\r\n\t   <Jars>\r\n\t-    <Jar>obj/Debug/lp/0/jl/formsviewgroup.jar</Jar>\r\n\t-    <Jar>obj/Debug/lp/7/jl/support-annotations.jar</Jar>\r\n\t     <Jar>/Users/dean/Downloads/Bug15162-1/Bug15162/obj/Debug/lp/0/jl/formsviewgroup.jar</Jar>\r\n\t     <Jar>/Users/dean/Downloads/Bug15162-1/Bug15162/obj/Debug/lp/10/jl/bin/classes.jar</Jar>\r\n\t     <Jar>/Users/dean/Downloads/Bug15162-1/Bug15162/obj/Debug/lp/11/jl/bin/classes.jar</Jar>\r\n\r\n\tdiff -u old.cache Bug15162/obj/Debug/libraryimports.cache\r\n\t--- old.cache\t2018-06-14 11:29:41.000000000 +0100\r\n\t+++ Bug15162/obj/Debug/libraryimports.cache\t2018-06-14 11:30:42.000000000 +0100\r\n\t@@ -3,27 +3,40 @@\r\n\t   <ManifestDocuments>\r\n\t     <ManifestDocument>obj/Debug/lp/10/jl/AndroidManifest.xml</ManifestDocument>\r\n\t     <ManifestDocument>obj/Debug/lp/11/jl/AndroidManifest.xml</ManifestDocument>\r\n\t+    <ManifestDocument>obj/Debug/lp/11/jl/manifest/AndroidManifest.xml</ManifestDocument>\r\n\t     <ManifestDocument>obj/Debug/lp/12/jl/AndroidManifest.xml</ManifestDocument>\r\n\r\nAs a result targets like `_UpdateAndroidResgen` will run when they\r\nreally do not need to, increasing build times.\r\n\r\nFor the `ResolveLibraryProjectImports` target, the extra `jars.Add()`\r\nwas not need because at the end of the task we add *all* of the jar\r\nfiles we find within the output directory.  The additional\r\n`jars.Add()` calls were responsible for adding the non-fullpath\r\nvariants of the files.\r\n\r\nThe `GetImportedLibraries` target was adding the files from a\r\n`manifest` subdirectory in the `lp` intermediate directories, which\r\nlikewise isn't needed.","distinct":false,"url":"https://api.github.com/repos/grendello/xamarin-android/commits/83d843bfb6e6d44eedf45bf5a6a04878cc6f7150"},{"sha":"0db3dc446cafaf0715afd5731ddf3ef5e3daed59","author":{"name":"Dean Ellis","email":"049ca2a632b02fd8d7fb6fd36ea8779ff1a63a3d@googlemail.com"},"message":"[build] Fix the list of ILRepack assemblies. (#1820)\n\nWe had a duplicate `Nuget.Common` when we need a `Nuget.Protocol`.","distinct":false,"url":"https://api.github.com/repos/grendello/xamarin-android/commits/0db3dc446cafaf0715afd5731ddf3ef5e3daed59"},{"sha":"987a05fa890b8a24513820942f2c134099273950","author":{"name":"Jonathan Pryor","email":"b6b5f08a9ad84752891e1a4399d908390ba0b40c@vt.edu"},"message":"[build] Normal & Diagnostic Log Verbosity, at once!\n\nFixes: https://github.com/xamarin/xamarin-android/issues/1792\n\nWe have a bit of a conundrum: when things break, the diagnostic build\nlogs are *essential* to tracking down *why* something broke.\n\nHowever, the sheer *verbosity* of those diagnostic logs makes it\ndifficult to determine *what* broke; it's very easy to get lost.\nAdditionally, the gigantic log files make the **Console Output**\nJenkins link nearly useless, as most web browsers will cease up when\nattempting to download ~1GB log files.\n\nSplit the difference: introduce a new `$(call MSBUILD_BINLOG)` syntax\nwhich creates an [MSBuild binary log][0] file, which is like\ndiagnostic output *but even moreso*, while *also* overriding the\nconsole logging to `/v:normal`.\n\n[0]: https://github.com/Microsoft/msbuild/wiki/Binary-Log\n\nThis should allow the **Console Output** link to be a bit more\nreasoanble, and if something goes wrong we can download the separate\n`*.binlog` files for further analysis.\n\nMSBuild binary log files can be read with MSBuild itself:\n\n\tmsbuild /v:diag bin/BuildDebug/msbuild-*.binlog\n\nNote: above command will actually fail; you can only print one log\nfile at a time with that syntax.\n\nThe created log files follow the pattern `msbuild-EPOCH-NAME`, where\nEPOCH is the `time_t`/Unix epoch value *at the time the command was\nexecuted*.  This should allow filenames to be non-colliding, and allow\nplausibly sane sorting behavior.  (Maybe.)","distinct":false,"url":"https://api.github.com/repos/grendello/xamarin-android/commits/987a05fa890b8a24513820942f2c134099273950"},{"sha":"bb8183c8c16667b18ba9197e78294b17a0af532c","author":{"name":"Dean Ellis","email":"049ca2a632b02fd8d7fb6fd36ea8779ff1a63a3d@googlemail.com"},"message":"[Xamarin.Android.Build.Tasks] Aapt2: Allow '-' in Resource filenames (#1789)\n\nFixes: https://github.com/xamarin/xamarin-android/issues/1780\r\n\r\nIf a project has an `@(AndroidResource)` with a filename that\r\ncontains a `-`, `aapt2` will not support it *unless* the filename is\r\nin the `values` directory.\r\n\r\nUnfortunately, the `<CheckForInvalidResourceFileNames/>` task didn't\r\nspecial-case the `values*` directories, resulting in errors for files\r\nwhich `aapt2` would otherwise support:\r\n\r\n        Resources\\values\\base-strings.xml : error APT0000: Invalid file name: It must contain only [a-zA-Z0-9_.].\r\n\r\nUpdate the `<CheckForInvalidResourceFileNames/>` task so that it\r\nsupports `-` within filename characters for files within the\r\n`values*` directories.\r\n\r\nFor all other resource directories, `-` is still not permissable.","distinct":false,"url":"https://api.github.com/repos/grendello/xamarin-android/commits/bb8183c8c16667b18ba9197e78294b17a0af532c"},{"sha":"1589dff3c9e38f0761f65c4e0bbe33a21acd8589","author":{"name":"Dean Ellis","email":"049ca2a632b02fd8d7fb6fd36ea8779ff1a63a3d@googlemail.com"},"message":"[Xamarin.Android.Build.Tasks] Dont Import `Xamarin.Android.DefaultOutputPaths.targets` on mac (#1826)\n\nContext: https://github.com/xamarin/xamarin-android/issues/1824\r\n\r\nWe seem to be getting some odd behaviour since commit 13d216f which\r\nintroduced the `DefaultOutputPaths` targets.  For example we see\r\nthe following types of paths on macOS:\r\n\r\n\tobj\\/Debug\\foo\r\n\r\nThe theory is that the new target is causing this weirdness. So lets\r\nnot import that target on macOS at all.  This is OK because most of\r\nthe code in the target is not used.  This should fix these weird path\r\nissues for 15.8, and will give us time to figure out how to get this\r\nnew functionality working on macOS for the next release.","distinct":false,"url":"https://api.github.com/repos/grendello/xamarin-android/commits/1589dff3c9e38f0761f65c4e0bbe33a21acd8589"},{"sha":"f8175e63cebf634beae752598d354fbb9c45bdd4","author":{"name":"Dean Ellis","email":"049ca2a632b02fd8d7fb6fd36ea8779ff1a63a3d@googlemail.com"},"message":"[Xamarin.Android.Buiild.Tasks] Allow uncompressed native libraries in apk (#1827)\n\nFixes: https://github.com/xamarin/xamarin-android/issues/1822\r\n\r\nCurrently we only apply the\r\n`$(AndroidStoreUncompressedFileExtensions)` MSBuild property to the\r\nresources added to the apk via `aapt2`.  All the other resources\r\nadded by the `<BuildApk/>` task are added as `Deflate`.  As a result\r\nthis means an Xamarin.Android apk cannot run on `Android.Things`\r\nsince it requires the native libraries to be uncompressed.\r\n\r\nWe should we using the `$(AndroidStoreUncompressedFileExtensions)`\r\nproperty as part of the `<BuildApk/>` task to ensure that files which\r\nneed to be left uncompressed *are* left uncompressed.","distinct":false,"url":"https://api.github.com/repos/grendello/xamarin-android/commits/f8175e63cebf634beae752598d354fbb9c45bdd4"},{"sha":"4947f5950c09ac9e47a01b7e2a3771cee03ba0f3","author":{"name":"Marek Habersack","email":"b0507016d1b41902ec9f231681636654cd7fb604@twistedcode.net"},"message":"Bump to mono/2018-02/f3235f3d (#1839)\n\nContext: https://github.com/mono/mono/issues/8866\r\nContext: https://github.com/xamarin/xamarin-android/pull/1815","distinct":false,"url":"https://api.github.com/repos/grendello/xamarin-android/commits/4947f5950c09ac9e47a01b7e2a3771cee03ba0f3"},{"sha":"821e905a14056aa502c8ef2fa16ec2649e5ac78e","author":{"name":"Jonathan Pryor","email":"b6b5f08a9ad84752891e1a4399d908390ba0b40c@vt.edu"},"message":"[build] Fix `make framework-assemblies`\n\nCommit 987a05fa [broke][0] the `make framework-assemblies` target:\n\n\t/bin/sh: -c: line 0: syntax error near unexpected token `)'\n\t/bin/sh: -c: line 0: `rm -f bin/Debug/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Xamarin.Android.NUnitLite.dll;     msbuild /p:Configuration=Debug /p:AutoProvision=True /p:AutoProvisionUsesSudo=True /p:IgnoreMaxMonoVersion=False /v:diag /v:normal /binaryLogger:\"/Users/builder/jenkins/workspace/xamarin-android/xamarin-android//bin/BuildDebug/msbuild-`date +%s`-NUnitLite.binlog\"  rm -f bin/Release/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v1.0/Xamarin.Android.NUnitLite.dll;        msbuild /p:Configuration=Debug /p:AutoProvision=True /p:AutoProvisionUsesSudo=True /p:IgnoreMaxMonoVersion=False /v:diag /v:normal /binaryLogger:\"/Users/builder/jenkins/workspace/xamarin-android/xamarin-android//bin/BuildRelease/msbuild-`date +%s`-NUnitLite.binlog\" /p:Configuration=Debug /p:AutoProvision=True /p:AutoProvisionUsesSudo=True /p:IgnoreMaxMonoVersion=False /v:diag src/Xamarin.Android.NUnitLite/Xamarin.Android.NUnitLite.csproj               /p:Configuration= /p:AndroidSupportedTargetJitAbis=armeabi:armeabi-v7a:arm64-v8a:x86:x86_64 /p:AndroidSupportedHostJitAbis=Darwin:mxe-Win32:mxe-Win64 /p:AndroidSupportedTargetAotAbis=armeabi:arm64:x86:x86_64:win-armeabi:win-arm64:win-x86:win-x86_64                /p:AndroidApiLevel=10 /p:AndroidPlatformId=10           /p:AndroidFrameworkVersion=v2.3 || exit 1; )'\n\tmake: *** [framework-assemblies] Error 2\n\nThe were too many `)`s in the `$(call MSBUILD_BINLOG)`, causing the\n`$(foreach)` to be closed prematurely.\n\nFix the `$(call)` use, allowing `make framework-assemblies` to finish.\n\n[0]: https://jenkins.mono-project.com/view/Xamarin.Android/job/xamarin-android/1051/","distinct":false,"url":"https://api.github.com/repos/grendello/xamarin-android/commits/821e905a14056aa502c8ef2fa16ec2649e5ac78e"},{"sha":"c24c8f2102ccae90b2b75293287580d746255751","author":{"name":"Jonathan Peppers","email":"bada9c05996b779e3b1d99a9591d4bfcbe6ff4f4@gmail.com"},"message":"[Xamarin.Android.Build.Tasks] fix for android:name=\"$\" in manifest (#1837)\n\nFixes: https://github.com/xamarin/xamarin-android/issues/1698\r\n\r\nIn the project reproducing this issue, the Xamarin.Firebase.lid NuGet\r\npackage produces an `AndroidManifest.xml` with the following line:\r\n\r\n    <permission android:name=\"${applicationId}.permission.C2D_MESSAGE\" android:protectionLevel=\"signature\" />\r\n\r\nUnfortunately our manifest merging code is throwing an exception and\r\nproducing a warning such as:\r\n\r\n    Xamarin.Android.Common.targets(1910,3): warning : Name cannot begin with the '$' character, hexadecimal value 0x24.\r\n\r\nWe also aren't getting the contents of this `AndroidManifest.xml`\r\nmerged, so this is definitely an issue!\r\n\r\nThe exception is coming from the following code:\r\n\r\n    var existing = (name != null) ?\r\n        doc.XPathSelectElement (string.Format (\"/manifest/{0}[@android:name='{1}']\", top.Name.LocalName, XmlConvert.VerifyNCName (name.Value)), nsResolver) :\r\n        doc.XPathSelectElement (string.Format (\"/manifest/{0}\", top.Name.LocalName));\r\n\r\nApparently `XmlConvert.VerifyNCName()` throws an exception if the\r\ninput value contains a `$`.\r\n\r\nIt appears it has been this way for quite some time, prior to becoming\r\nopen source:\r\n\r\nhttps://github.com/xamarin/xamarin-android/blame/bb8183c8c16667b18ba9197e78294b17a0af532c/src/Xamarin.Android.Build.Tasks/Utilities/ManifestDocument.cs#L444\r\n\r\nI suspect the original goal was to validate the XPath expression\r\nwouldn't throw an exception, but it seems to work fine to use the\r\nvalue as-is. Let's just not call `XmlConvert.VerifyNCName()` at all.\r\n\r\nAfter the fix, I get additional lines in my\r\n`obj/Debug/android/AndroidManifest.xml`:\r\n\r\n    <permission android:name=\"com.companyname.DollarSignProb.permission.C2D_MESSAGE\" android:protectionLevel=\"signature\" />\r\n    <uses-permission android:name=\"com.companyname.DollarSignProb.permission.C2D_MESSAGE\" />\r\n\r\nSo it is now properly merging the `AndroidManifest.xml`.\r\n\r\nOther changes:\r\n\r\n  - Updated `ManifestTest.MergeLibraryManifest` test so it also verifies\r\n    this fix\r\n  - Added `XA4302` as part of the effort towards:\r\n    https://github.com/xamarin/xamarin-android/issues/1560","distinct":false,"url":"https://api.github.com/repos/grendello/xamarin-android/commits/c24c8f2102ccae90b2b75293287580d746255751"},{"sha":"ea7441594003c1f8e3b2dcff8f5610bf86e67868","author":{"name":"Jonathan Peppers","email":"bada9c05996b779e3b1d99a9591d4bfcbe6ff4f4@gmail.com"},"message":"[build] fix for monodroid.targets on Windows (#1834)\n\nContext: https://devdiv.visualstudio.com/DevDiv/_build?buildId=1778402\r\n\r\nSince d18c45a, the build has been failing on Windows with:\r\n\r\n    src\\monodroid\\monodroid.targets(162,5): Error MSB4018: The \"ReplaceFileContents\" task failed unexpectedly.\r\n    System.IO.FileNotFoundException: Could not find file 'E:\\A\\_work\\2\\s\\external\\Java.Interop\\src\\Java.Runtime.Environment\\Java.Runtime.Environment.dll.config'.\r\n    File name: 'E:\\A\\_work\\2\\s\\external\\Java.Interop\\src\\Java.Runtime.Environment\\Java.Runtime.Environment.dll.config'\r\n    at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)\r\n    at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)\r\n    at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)\r\n    at System.IO.StreamReader..ctor(String path, Encoding encoding, Boolean detectEncodingFromByteOrderMarks, Int32 bufferSize, Boolean checkHost)\r\n    at System.IO.StreamReader..ctor(String path)\r\n    at System.IO.File.OpenText(String path)\r\n    at Xamarin.Android.BuildTools.PrepTasks.ReplaceFileContents.Execute() in E:\\A\\_work\\2\\s\\build-tools\\xa-prep-tasks\\Xamarin.Android.BuildTools.PrepTasks\\ReplaceFileContents.cs:line 35\r\n    at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()\r\n    at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext()\r\n\r\nCurrently nothing on Windows creates this file, since it is generated\r\nby [a Makefile][0].\r\n\r\n[0]: https://github.com/xamarin/java.interop/blob/5efe5c29a0f0e1b7e80bc0b51d847c339d438f9a/Makefile#L89\r\n\r\nFor now, we can just skip the `ReplaceFileContents` task if the file\r\ndoesn't exist.","distinct":false,"url":"https://api.github.com/repos/grendello/xamarin-android/commits/ea7441594003c1f8e3b2dcff8f5610bf86e67868"},{"sha":"796b8288943c81099cb9feedf50006587d8c8c45","author":{"name":"Jonathan Pryor","email":"b6b5f08a9ad84752891e1a4399d908390ba0b40c@vt.edu"},"message":"[build] `make package-build-status` captures binlog files (#1854)\n\nCommit 987a05fa updated the build system to create MSBuild `binlog`\r\nfiles, so that the \"normal\" build logs could be smaller.\r\n\r\nThere's just one problem with this arrangement: when something goes\r\nwrong, we need the `*.binlog` files to determine what went wrong, but\r\n*nothing was preserving the `.binlog` files*!\r\n\r\nOops.\r\n\r\nUpdate the `make package-build-status` target so that it stores\r\ngenerated `*.binlog` files into the `build-status-*` file.\r\n\r\nAdditionally, alter the `.binlog` filename format so that instead of\r\ncontaining the Unix time_t/epoch value, it instead uses ISO 8601\r\nnotation of `<year><month><date>T<hour><minute><second>`.  This\r\nresults in more human readable values, and will allow for saner\r\nintegration in the future for when we migrate unit test execution over\r\nto also produce `.binlog` files, as producing ISO-8601 format is\r\nstraightforward from .NET `System.DateTime`; time_t isn't as easy.","distinct":false,"url":"https://api.github.com/repos/grendello/xamarin-android/commits/796b8288943c81099cb9feedf50006587d8c8c45"},{"sha":"7c8b6e4ce93b2395f71ff7762afe7aadc416d3f3","author":{"name":"Marek Habersack","email":"b0507016d1b41902ec9f231681636654cd7fb604@twistedcode.net"},"message":"[monodroid] Build all targets with cmake (#1815)\n\n`src/monodroid` is built for several targets - Android, host system,\r\nand cross builds for Windows.  Android builds use the make-based\r\n`ndk-build` mechanism while the host and cross build put all the\r\nbuilding steps into the `.csproj` file, which is neither native for\r\nMSBuild nor nice for maintenance.  In effect we specify C/C++\r\ncompiler/linker flags as well as source files in two locations, thus\r\nmaking it error prone when making changes/fixing bugs.\r\n\r\nThe Android SDK, however, *also* ships its own copy of `cmake` (for\r\nall supported platforms), while the Android NDK *also* ships support\r\nfor building native Android apps with `cmake`.  Cmake shipped with\r\nthe SDK can be used to build the host versions of `src/monodroid` and\r\nthis lets us use a single build script for all the targets we need.\r\n\r\nThis commit adds the `cmake` script and changes monodroid targets to\r\ninvoke `cmake` in order to build Ninja (instead of make) build files\r\n(ninja is shipped with the Android SDK `cmake`), letting us use the\r\nsame configuration and build command across all platforms we support.","distinct":false,"url":"https://api.github.com/repos/grendello/xamarin-android/commits/7c8b6e4ce93b2395f71ff7762afe7aadc416d3f3"},{"sha":"634a8803e70e7a2d754116cd26d86d53f2af97c0","author":{"name":"Atsushi Eno","email":"a95780cd1889428e251c3ed102baff744df81a50@gmail.com"},"message":"[docs] Update HowToAddNewApiLevel.md (#1859)","distinct":false,"url":"https://api.github.com/repos/grendello/xamarin-android/commits/634a8803e70e7a2d754116cd26d86d53f2af97c0"},{"sha":"103b5a755c048c6eaedb43c139cac32b920372cd","author":{"name":"Jonathan Peppers","email":"bada9c05996b779e3b1d99a9591d4bfcbe6ff4f4@gmail.com"},"message":"[Mono.Android] ResourceIdManager.UpdateIdValues called N times (#1855)\n\nFixes: https://github.com/xamarin/xamarin-android/issues/1544\r\n\r\nI was able to verify that my app's `Resource.UpdateIdValues()` was\r\ngetting invoked multiple times with VS 15.7.4:\r\n\r\n  - Create a new Xamarin.Android app\r\n  - Create a new Xamarin.Android library, reference it from the app\r\n  - (Optional) call\r\n    `Android.Runtime.ResourceIdManager.UpdateIdValues()` directly\r\n\r\nBy placing a breakpoint, and/or `Log.Debug()` messages, I can verify\r\nthat my app's `Resource.UpdateIdValues()` was being called 5 times!\r\n\r\nThe issue lies in this code:\r\n\r\n    if (id_initialized)\r\n        return;\r\n    //System.Reflection code to call Resource.UpdateIdValues() in the app\r\n    id_initialized = true;\r\n\r\nWhile `Resource.UpdateIdValues()` is being invoked,\r\n`ResourceIdManager.UpdateIdValues()` is called recursively.  The\r\n`id_initialized` field will not be set until after the reflection\r\ncode has finished.\r\n\r\nThe fix is to immediately set the flag:\r\n\r\n    if (id_initialized)\r\n        return;\r\n    id_initialized = true;\r\n    //System.Reflection code to call Resource.UpdateIdValues() in the app\r\n\r\nI was able to verify the fix in my app:\r\n\r\n  - Build the app with `xabuild`\r\n  - Re-add the `Log.Debug` message in my app's\r\n    `Resource.UpdateIdValues()`\r\n  - Deploy the app with `xabuild`\r\n  - Upon launch, I *now* only see 1 log message with `adb logcat`\r\n\r\nThe performance impact is likely:\r\n\r\n  - The reflection code would be slow in\r\n    `Android.Runtime.ResourceIdManager.UpdateIdValues()`\r\n  - In the app's `Resource.UpdateIdValues()`, mostly fields are being\r\n    read and set. It *helps* to skip this, but it shouldn't be as\r\n    slow as the reflection code.","distinct":false,"url":"https://api.github.com/repos/grendello/xamarin-android/commits/103b5a755c048c6eaedb43c139cac32b920372cd"},{"sha":"77cf939df5e6d3bf657cb191db819abc99b6957b","author":{"name":"Jonathan Peppers","email":"bada9c05996b779e3b1d99a9591d4bfcbe6ff4f4@gmail.com"},"message":"[tests] kill adb when Xamarin.Android.Build.Tests complete (#1844)\n\nContext: https://devdiv.visualstudio.com/DevDiv/_build?buildId=1768391\r\nContext: https://devdiv.visualstudio.com/DevDiv/_build?buildId=1778620\r\n\r\nThere are a couple issues happening on VSTS:\r\n\r\n 1. If the build needs to delete/recreate `~\\android-toolchain\\sdk`,\r\n    sometimes `adb.exe` is running and so the directory cannot be\r\n    deleted.\r\n 2. Sometimes the `<Exec/>` MSBuild task will hang indefinitely,\r\n    even though the NUnit tests have completed.\r\n\r\nOur test run `adb.exe` here, to determine if a device/emulator is\r\nconnected:\r\n\r\nhttps://github.com/xamarin/xamarin-android/blob/103b5a755c048c6eaedb43c139cac32b920372cd/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/Utilities/BaseTest.cs#L19-L21\r\n\r\nIt turns out the two issues are directly related. If you launch\r\n`adb.exe`, and it is the first instance of `adb`, it will continue to\r\nrun as a daemon-like process.  The `<Exec/>` task will block until\r\nall child processes of `nunit3-console.exe` exit, and so we get a\r\nhang running our tests...\r\n\r\nTo fix this, I setup a `[SetUpFixture]`, which is a feature of NUnit\r\nthat lets you run code before and after all the tests complete. I\r\nmoved the `static ctor` of `BaseTest` into a `[OneTimeSetUp]` method,\r\nand then created a `[OneTimeTearDown]` method to kill `adb`.\r\n\r\nOther changes:\r\n\r\n  - I let VS sort the using statements, since they were oddly ordered.","distinct":false,"url":"https://api.github.com/repos/grendello/xamarin-android/commits/77cf939df5e6d3bf657cb191db819abc99b6957b"},{"sha":"d80a5c1aa7ef5d1adbcc815dfef70ce8df6502fd","author":{"name":"Atsushi Eno","email":"a95780cd1889428e251c3ed102baff744df81a50@gmail.com"},"message":"[android-toolchain] Install Android platform-tools r28 (#1858)\n\nIf you are running Android O or above as the Android target to test\r\n`make run-apk-tests`, it will fail because of an `adb` server version\r\nmismatch (39 vs. 40).  This is a common `adb` issue e.g.:\r\n\r\nhttps://sqa.stackexchange.com/questions/20524/how-to-resolve-adb-server-version-32-doesnt-match-this-client-36-killin\r\n\r\nBump to Android platform-tools r28 so that we have an updated `adb`,\r\nwhich will avoid the version mismatch error.","distinct":false,"url":"https://api.github.com/repos/grendello/xamarin-android/commits/d80a5c1aa7ef5d1adbcc815dfef70ce8df6502fd"},{"sha":"3c632cb7e8cbc9a1945db8732abe00fd99d66244","author":{"name":"Marek Habersack","email":"b0507016d1b41902ec9f231681636654cd7fb604@twistedcode.net"},"message":"[monodroid] Remove Android.mk (#1865)\n\nCommit 7c8b6e4c switched our `src/monodroid` builds from using\r\n`ndk-build` and `.csproj` custom code to uniform use of `cmake`\r\nacross all the supported platforms, which means that `Android.mk`,\r\na file used by `ndk-build`, is no longer needed.\r\n\r\nIt should have been removed in 7c8b6e4c.\r\n\r\nRemove `Android.mk`.","distinct":false,"url":"https://api.github.com/repos/grendello/xamarin-android/commits/3c632cb7e8cbc9a1945db8732abe00fd99d66244"},{"sha":"47c78ccc9ea788920f4e4fa3e7dfe0a3f33c27ba","author":{"name":"Jonathan Pryor","email":"b6b5f08a9ad84752891e1a4399d908390ba0b40c@vt.edu"},"message":"[build] Split out bundle download from xa-prep-tasks (#1864)\n\nA minor SNAFU was observed earlier this week: *all* macOS PR builds\r\nwere [failing][0] because `NuGet.exe` couldn't be downloaded:\r\n\r\n\tbuild-tools/xa-prep-tasks/xa-prep-tasks.targets(91,5): error :\r\n\tUnable to download URL `https://dist.nuget.org/win-x86-commandline/latest/nuget.exe` to `/Users/builder/jenkins/workspace/xamarin-android-pr-builder/xamarin-android/build-tools/xa-prep-tasks/../../.nuget/NuGet.exe`:\r\n\tAn error occurred while sending the request\r\n\r\nWhat we believe happened was as follows:\r\n\r\n 1. A [PR to use mono:2018-06 was built][1], which\r\n    [updated the *system* mono to 5.16.0 (also from mono:2018-06)][2]:\r\n\r\n        Downloading `https://xamjenkinsartifact.azureedge.net/build-package-osx-mono/2018-06/7/7627a5f9eeba0fd846731ad0c498556f55be1a34/MonoFramework-MDK-5.16.0.5.macos10.xamarin.universal.pkg` to `/Users/builder/android-archives/.MonoFramework-MDK-5.16.0.5.macos10.xamarin.universal.pkg.download`.\r\n        sudo installer -pkg \"/Users/builder/android-archives/MonoFramework-MDK-5.16.0.5.macos10.xamarin.universal.pkg\" -target /\r\n\r\n 2. This particular mono had a \"broken\" `HttpClient`, in that it\r\n    couldn't download `https://dist.nuget.org/win-x86-commandline/latest/nuget.exe`\r\n\r\n 3. All following PR builds that ran on xam-mac-mini-6 would fail, as\r\n    mono 5.16.0 would fail to download `nuget.exe`, causing the\r\n    overall build to fail.\r\n\r\n\"Funnily enough,\" this is more or less why we have the\r\n`$(MonoRequiredMaximumVersion)` MSBuild property; see 2bf62cb9.  The\r\nproblem *here* is that the download failure and subsequent build\r\nfailure happened *before* the mono version was checked, meaning our\r\nbuild system code to check the mono version was ~useless.\r\n\r\nOuch.\r\n\r\nThus, the *real* problem is that our dependency checks were being\r\nperformed *after* we attempted to download anything.  If instead we\r\nchecked the mono version *before* we tried to download files, we would\r\nhave installed a \"known good\" mono, and everything would have worked.\r\n\r\nThis in turn means that `build-tools/xa-prep-tasks` should *not*\r\nperform any downloads, as `xa-prep-tasks` is a dependency for building\r\n`build-tools/dependencies`.\r\n\r\nFix our build ordering problem by moving the download logic out of\r\n`build-tools/xa-prep-tasks` and into a new\r\n`build-tools/download-bundle` project.  This will allow xa-prep-tasks\r\nto build (which is necessary), after which `build-tools/dependencies`\r\ncan sanity-check the build environment, and only *after* that\r\nvalidation is performed will we attempt to download anything and\r\ncontinue the normal build.\r\n\r\n[0]: https://jenkins.mono-project.com/view/Xamarin.Android/job/xamarin-android-pr-builder/3424/\r\n[1]: https://github.com/xamarin/xamarin-android/pull/1836\r\n[2]: https://jenkins.mono-project.com/view/Xamarin.Android/job/xamarin-android-pr-builder/3373/","distinct":false,"url":"https://api.github.com/repos/grendello/xamarin-android/commits/47c78ccc9ea788920f4e4fa3e7dfe0a3f33c27ba"},{"sha":"673757d85ce9d3d14745f01d3c34a6c24e00126e","author":{"name":"Jonathan Peppers","email":"bada9c05996b779e3b1d99a9591d4bfcbe6ff4f4@gmail.com"},"message":"[build] cmake fixes for Windows (#1863)\n\nFixes for unzipping the `cmake` download:\r\n\r\n  - `android-toolchain.projitems` doesn't need to specify `.zip`, as\r\n    the targets append this extension automatically\r\n  - It appears that the zip of `cmake` doesn't have a subdirectory:\r\n      - Added a `%(NoSubdirectory)` item metadata\r\n      - Set `<UnzipDirectoryChildren NoSubdirectory=\"True\"/>` so that\r\n        `cmake` is extracted correctly\r\n\r\nIssues with paths:\r\n\r\n  - cmake does not appear to like odd combinations of paths, such as\r\n    `\\/` or `\\\\`. These are likely mistakes that *happen to work*, so\r\n    we should clean them up.\r\n  - `Configuration.props` had a double path separator in\r\n    `$(XAInstallPrefix)`, since `$(MSBuildThisFileDirectory)`\r\n    contains a trailing slash.\r\n  - `monodroid.targets` had a path with `\\/` on Windows, since\r\n    `$(OutputPath)` has a trailing slash.\r\n  - `CMakeLists.txt` had two places I needed to replace Windows-style\r\n    paths `\\` -> `/`, since these were generating paths that had a\r\n    combination of `\\` and `/`.","distinct":false,"url":"https://api.github.com/repos/grendello/xamarin-android/commits/673757d85ce9d3d14745f01d3c34a6c24e00126e"}]}
{"actor":{"display_login":"grendello"}}