{"push_id":2726791571,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"b4abdd99092b365009e3b27bff1608119a57986c","before":"577c600798ffcc1737883f3c0e44789a8b0dc03b","commits":[{"sha":"b4abdd99092b365009e3b27bff1608119a57986c","author":{"name":"Jonathan Peppers","email":"bada9c05996b779e3b1d99a9591d4bfcbe6ff4f4@gmail.com"},"message":"[Xamarin.Android.Build.Tasks] <CopyIfChanged/> uses last write time (#1968)\n\nFixes: https://github.com/xamarin/xamarin-android/issues/1962\r\n\r\nSince 0adf1ae0, I believe that resource changes on macOS have been\r\nflaky: sometimes working, sometimes not. They have been consistently\r\nworking on Windows, however...\r\n\r\nAfter writing the simplest test I could, I found that my machine on\r\nHigh Sierra could *sometimes* reproduce what our QA team was seeing.\r\nI had to add the `[Repeat]` NUnit attribute before I could get the\r\nfailure to occur regularly.\r\n\r\nAfter debugging for quite some time, I noticed a mistake in the\r\n`<CopyIfChanged/>` task: when comparing timestamps, it looks like it\r\nis using the last *access* time of the destination file instead of\r\nthe last *write* time!\r\n\r\nI think this is likely a typo (unintended), since switching the call\r\nto `File.GetLastWriteTimeUtc()` fixes the problem.  Keeping the test\r\nis a good idea, because it seems a bit scary we didn't catch this yet.\r\n\r\nWith that discovery, we audited the rest of the codebase and found\r\nthat we were using `File.GetLastAccessTimeUtc()` in several places.\r\nWe have deemed these *all* to be accidental, and have replaced all\r\noccurrences of `File.GetLastAccessTimeUtc()` with\r\n`File.GetLastWriteTimeUtc()`.","distinct":true,"url":"https://api.github.com/repos/xamarin/xamarin-android/commits/b4abdd99092b365009e3b27bff1608119a57986c"}]}
{"actor":{"display_login":"jonpryor"}}