<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Jan 17, 2020 at 7:02 AM Ömer Sinan Ağacan <<a href="mailto:omeragacan@gmail.com">omeragacan@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">> Now we have rewritten the CI and it's pointing out actual issues in the<br>
> compiler. And your suggestion is well let's just ignore it.<br>
<br>
When is the last time Windows CI caught an actual bug? All I see is random<br>
system failures [1, 2, 3].<br></blockquote><div><br></div><div>[1]: Symbolic link privileges are missing from the CI user, something has gone wrong with the permissions on that slave.</div><div>      There's code in the testsuite to symlink or copy. Should fix the permissions, or add permission detection to the python code or switch to copy.<br></div><div>[2]: git checkout error, disk probably full. Testsuite runs tend to create a lot of temp files which aren't cleaned up. Over time the disk fills and you get errors such as these.</div><div>      There's a cron job to periodically clean these, but of course that is prone to a race condition. This can be made more reliable by using OS event triggers instead of a cron job.</div><div>      i.e. monitor disk 80% full events and run the cleanup.</div><div>[3]: It's either trying to execute a non-executable file or something it executed loaded a shared library for a different architecture. Hard to tell which one by just that output. Will need more logs.</div><div><br></div><div>Now to answer your question [4] and [5] are issues the CI caught that were quite important.</div><div><br></div><div>[4] <a href="https://gitlab.haskell.org/ghc/ghc/issues/17480">https://gitlab.haskell.org/ghc/ghc/issues/17480</a></div><div>[5] <a href="https://gitlab.haskell.org/ghc/ghc/issues/17691">https://gitlab.haskell.org/ghc/ghc/issues/17691</a></div><div><br></div><div>just to name two, I can go on, plugin test failures, which pointed out someone submitted an patch tested only on ELF that broke loading on plugins as non-shared objects, etc.</div><div>The list is quite long.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
It must be catching *some* bugs, but that's a rare event in my experience.<br></blockquote><div><br></div><div>Sure if you go "ahh it's just Windows that's broken" and don't look at the underlying issues.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Sure, I don't write Windows-specific code (e.g. IO manager, or library code),<br>
but then why am I fighting the Windows CI literally every day, it makes no<br>
sense. Give an option to skip Windows CI for my patches.<br>
<br>
> How about you use some of that energy to help I stead of taking the easy way?<br>
> And I bet you're going to say you don't care about Windows to which I would<br>
> say I don't care about the non-threaded runtime and wish we would get rid of<br>
> it. But can't always get what you want.<br>
<br>
I'm not suggesting we release buggy GHCs for Windows or stop Windows support.<br></blockquote><div><br></div><div>I'm sorry, how is disabling the Windows CI not exactly that? If you Disabling the CI just means you test it even less.</div><div>You test it even less means by the time you get to testing it the issues are too many to fix. Over time you just stop</div><div>trying and stop releasing it.  So sorry, how *exactly* is your suggestion not exactly that.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
> And to say we'll actually fix anything before release doesn't align with what<br>
> I've seen so far, which had me scrambling last minute to ensure we can release<br>
> Windows instead of making releases without it.<br>
<br>
Are you saying we skip a platform we support when it's buggy? That makes no<br>
sense. I don't know when did Windows become a first-tier platform but since it<br>
is now we should be releasing Windows binaries similar to Linux and OSX<br>
binaries.<br></blockquote><div><br></div><div>It's *always* been a tier one platform as far as I can tell. It's certainly been for the past 6 years.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
It's not uncommon to do some testing for every patch, and do more comprehensive<br>
testing before releases. We did this many times in other projects in the past<br>
and I know some other compilers do this today.<br></blockquote><div><br></div><div>Yes, but a project that doesn't test a tier one platform during development, which is what your want to do</div><div>means it's not tier one. Which means you won't fix it for release.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
> Quite frankly I don't need you to tell me to submit MRs to fix it since that's<br>
> what I spent again a lot of time doing. Or maybe you would like to pay my<br>
> paycheck so I can spend more than a considerable amount of my free time on it.<br>
<br>
I wish someone paid me for the time I wasted because I'm only paid by the time I<br>
spend productively. I'd be happier waiting for the CI then.<br></blockquote><div><br></div><div>Yeah, not waiting for CI is how we got in this mess in the first place.</div><div><br></div><div>Tamar.<br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Ömer<br>
<br>
[1]: <a href="https://gitlab.haskell.org/ghc/ghc/-/jobs/237457" rel="noreferrer" target="_blank">https://gitlab.haskell.org/ghc/ghc/-/jobs/237457</a><br>
[2]: <a href="https://gitlab.haskell.org/osa1/ghc/-/jobs/238236" rel="noreferrer" target="_blank">https://gitlab.haskell.org/osa1/ghc/-/jobs/238236</a><br>
[3]: <a href="https://gitlab.haskell.org/osa1/ghc/-/jobs/237279" rel="noreferrer" target="_blank">https://gitlab.haskell.org/osa1/ghc/-/jobs/237279</a><br>
<br>
Phyx <<a href="mailto:lonetiger@gmail.com" target="_blank">lonetiger@gmail.com</a>>, 17 Oca 2020 Cum, 09:49 tarihinde şunu yazdı:<br>
><br>
> Oh I spent a non-insignificant amount of time back in the phabricator days to make the CI stable. Now because people were committing to master directly without going through CI it was always a cat and mouse game and I gave up eventually.<br>
><br>
> Now we have rewritten the CI and it's pointing out actual issues in the compiler. And your suggestion is well let's just ignore it.<br>
><br>
> How about you use some of that energy to help I stead of taking the easy way? And I bet you're going to say you don't care about Windows to which I would say I don't care about the non-threaded runtime and wish we would get rid of it. But can't always get what you want.<br>
><br>
> And to say we'll actually fix anything before release doesn't align with what I've seen so far, which had me scrambling last minute to ensure we can release Windows instead of making releases without it.<br>
><br>
> Quite frankly I don't need you to tell me to submit MRs to fix it since that's what I spent again a lot of time doing. Or maybe you would like to pay my paycheck so I can spend more than a considerable amount of my free time on it.<br>
><br>
> Kind regards,<br>
> Tamar<br>
><br>
><br>
> Sent from my Mobile<br>
><br>
> On Fri, Jan 17, 2020, 06:17 Ömer Sinan Ağacan <<a href="mailto:omeragacan@gmail.com" target="_blank">omeragacan@gmail.com</a>> wrote:<br>
>><br>
>> We release more often than once in 6 months.<br>
>><br>
>> We clearly have no idea how to test on Windows. If you know how to do it then<br>
>> feel free to submit a MR. Otherwise blocking every MR indefinitely is worse than<br>
>> testing Windows less frequently.<br>
>><br>
>> Ömer<br>
>><br>
>> Phyx <<a href="mailto:lonetiger@gmail.com" target="_blank">lonetiger@gmail.com</a>>, 17 Oca 2020 Cum, 09:10 tarihinde şunu yazdı:<br>
>> ><br>
>> > Sure because only testing once every 6 months is a very very good idea...<br>
>> ><br>
>> > Sent from my Mobile<br>
>> ><br>
>> > On Fri, Jan 17, 2020, 06:03 Ömer Sinan Ağacan <<a href="mailto:omeragacan@gmail.com" target="_blank">omeragacan@gmail.com</a>> wrote:<br>
>> >><br>
>> >> Hi Ben,<br>
>> >><br>
>> >> Can we please disable Windows CI? I've spent more time fighting the CI than<br>
>> >> doing useful work this week, it's really frustrating.<br>
>> >><br>
>> >> Since we have no idea how to fix it maybe we should test Windows only before a<br>
>> >> release, manually (and use bisect in case of regressions).<br>
>> >><br>
>> >> Ömer<br>
>> >><br>
>> >> Ben Gamari <<a href="mailto:ben@smart-cactus.org" target="_blank">ben@smart-cactus.org</a>>, 14 Oca 2020 Sal, 14:30 tarihinde şunu yazdı:<br>
>> >> ><br>
>> >> > Hi all,<br>
>> >> ><br>
>> >> > Currently Windows CI is a bit flaky due to some unfortunately rather elusive testsuite driver bugs. Progress in resolving this has been a bit slow due to travel over the last week but I will be back home tomorrow and should be able to resolve the issue soon thereafter.<br>
>> >> ><br>
>> >> > Cheers,<br>
>> >> ><br>
>> >> > - Ben<br>
>> >> > _______________________________________________<br>
>> >> > ghc-devs mailing list<br>
>> >> > <a href="mailto:ghc-devs@haskell.org" target="_blank">ghc-devs@haskell.org</a><br>
>> >> > <a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs</a><br>
>> >> _______________________________________________<br>
>> >> ghc-devs mailing list<br>
>> >> <a href="mailto:ghc-devs@haskell.org" target="_blank">ghc-devs@haskell.org</a><br>
>> >> <a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs</a><br>
</blockquote></div></div>