mobile-shell / mosh

Mobile Shell
https://mosh.org
GNU General Public License v3.0
12.59k stars 729 forks source link

Stop Cygwin CI #1235

Closed cgull closed 1 year ago

cgull commented 1 year ago

Once upon a time I set up CI to check Mosh on Cygwin, using Appveyor on my GitHub project. I never intended it to be official support, but I thought Cygwin offered useful diversity for checking Mosh portability, and it was one route to making Mosh available on Windows. Cygwin's libc newlib is of course different from others, and their other implementations of UNIX APIs are...unique.

make check was never reliable on Cygwin, it would sometimes fail tests (mostly) or hang (sometimes) when run in parallel with make -j. Towards the end of my time as Mosh maintainer, it got worse, and I spent a great deal (too much) time debugging CI issues with Cygwin.

Cygwin has gotten worse since then. A lot worse, it looks like the e2e tests based on tmux always hang because tmux is broken. There have been a lot of console/termios related changes in Cygwin recently, and they aren't improvements as far as Mosh CI is concerned. The CI scripting is very dependent on having a reliable stable implementation of termios and related things like signal dispatch, which is one of the nastiest, ugliest, most antique parts of a UNIX kernel. Cygwin also has some extremely weird scheduling behavior from a UNIX perspective, because it's actually the Windows scheduler under there.

Windows now has WSL 1 and WSL 2 as available options. Both of them worked far better than Cygwin last I looked, though they use a lot of disk space because a Linux distro is required. They've improved more since I last looked.

I'm done with Cygwin. If anybody else cares, say so now.