-
Notifications
You must be signed in to change notification settings - Fork 420
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update mono to 5.10.1.20 #1137
Update mono to 5.10.1.20 #1137
Conversation
perfect - thanks! |
6eeb004
to
3810547
Compare
2a8b4de
to
75130f6
Compare
Ugh. I've made Linux hang now. 😄 |
OK. It looks like the Linux hang is a good thing that revealed another problem. Essentially, Cake tries to launch its It really seems like |
cc @mholo65 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
wow what an obscure thing to find! 🕵️
To give credit where credit is due, @mholo65 found the smoking gun. However, getting to the bottom of it was an ordeal. |
@rchande, @akshita31, @TheRealPiotrP: With this PR, the layout of the *nix OmniSharp releases (e.g. osx, Linux-x86 and linux-x64) have changed a bit. The run script is in the same place, but the Mono runtime itself moved into a I was concerned because we list the Mono runtime in the package.json as one of the "binaries" for each of the *nix OmniSharp runtime dependencies:
The "binaries" entry is used by the package downloader to determine what files should have executable permissions after the package is downloaded and unzipped. The logic to set these permissions is here. Looking at that logic, it appears that the downloader will continue to successful. That is, it won't result in an error if one of the "binaries" doesn't actually exist. However, it won't give the proper permissions to the Mono runtime because its been moved to "bin". To handle this problem (and future-proof it a bit), I've also updated the "run" script (which hasn't moved) to run So, no changes are needed for omnisharp-vscode. However, we should keep the Mono runtime listed in the package.json to allow older OmniSharp releases to continue working. Sorry if that was a bit convoluted. Did it make sense? |
Thanks @DustinCampbell! Curious, do you happen to know if this is needed anymore? When doing the Cake PR, we had problems with hangs due to external processes ( |
I think it's still needed, isn't it? Otherwise, wouldn't it launch |
IIRC, when doing |
I suppose that would make sense. 😄 |
@DustinCampbell Thanks for working through this!
I suspect we could update the "binaries" values to the correct locations once we consume a newer omnisharp in C# for VS Code. Of course, that would require users of that version of the extension to only use omnisharp published after it. Thoughts? |
@rchande: I have no problem with that. I also have no problem leaving it there for all of eternity. 😄 |
This PR takes a new Mono that includes a new platform-specific binary:
libMonoPosixHelper.[so|dylib]
. This binary is needed for Cake to properly unzip NuGet packages. Otherwise, the Cake tests hang.