-
-
Notifications
You must be signed in to change notification settings - Fork 367
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
Disable alpine build by default #2638
Conversation
jneira
commented
Jan 24, 2022
•
edited by gitpod-io
bot
Loading
edited by gitpod-io
bot
- As commented in Restore consistency in ci using alpine in all workflows #2617 (comment)
- It seems binaries from the alpine build cant load files containing template haskell, checked in wsl/ubuntu by myself and in native ubuntu by @kokobd
- That behaviour was not noted explicitly in the pr (Build linux binaries in alpine container #2463) or the issue about (Distribute Alpine binaries #2461)
- We have pending the release of 1.6.0 for January
- So this pr disables it until we clarificate the situation to unblock the release
Uh, good catch. We really should have dogfooded the Musl binaries. But I don't understand what you want to release. We know that statically linking glibc is not a good idea, so let's investigate a bit more before reverting to that.
|
I'm not sure why the alpine binaries don't work, I will investigate. The alternative for now is to do what I suggested in #2431 and compile against glibc, but don't statically link it in. This can be done by using |
013dc3e
to
a334b58
Compare
I want to release the actual binary flavour as it will not break more use cases than the previous one. And i would prefer to make the release within January if possible to at least keep it bimonthly so if investigate and fix the problem will take more time we could do it after the release (and make another one before two months with the new binary)
Sure, i expressed my concerns about when it was added and opened #2617 to restore consistence in ci using the same build in all workflows (including benchmarks)
@kokobd and me tested 8.10.7, the default in ghcup and more used one, but we could test other ones
i did not test them neither, there is no user report here or in the ghcup issue tracker afaik, maybe @hasufell knows |
That alternative could be tested easily changing the rest of workflows. But our distribution channels other than direct download (vscode auto download and ghcup) doesn not take in account the linux distro/version so they should be changed (and that will take more time) |
Will try to adress #2617 in another pr to test the alpine binary in our ci (but i guess it will break catastrophically the test suite) |
GHCup can easily take distros into account when we add a metadata file for the next HLS release: https://github.com/haskell/ghcup-metadata/blob/master/ghcup-0.0.6.yaml#L2698 Instead of adding a single entry for |
yeah, it already takes in account for ghc for necessity, but i will make the hls specific config more complex and the release harder as it is done semimanually |
I think we can re-use GHCup to download and install HLS in vscode, installing it(both GHCup and HLS) locally in the extension storage if it does not exist. I will try to write a patch to do this. |
We have an issue in the repo about: haskell/vscode-haskell#483 Anyways it would delay the incoming release so maybe we should wait to 1.7 to do the adaptation |
OK, for this release what if we distribute generic "linux" binaries statically linked with |
This is not enough, we need to run the testsuite in the |
While I don't like the idea of having two flavours of binaries to support, it can be done if we add another user warning to highlight the statically linked glibc and document it, as in haskell-language-server/ghcide/src/Development/IDE/Core/Rules.hs Lines 828 to 837 in 4386396
|
The |
How does the GHC linker/loader detect that MUsl is being used, and is statically linked? It would need to in order to avoid calling dlopen. |
It depends on the |
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.
Approving since it seems clear that we need to go back to glibc until GHC is set up to detect a static musl binary.
well ghc-9.2.1 was statically linked in alpine, no? and it produced problems in the ghc ci and bug like the described one in #2615 (comment) (ghc ticket https://gitlab.haskell.org/ghc/ghc/-/issues/20977) so @hasufell changed the official ghc bindist for alpine+9.2.1 with a dynamic (or non static? i am a bit lost) ghc in ghcup |
given the actual master branch protection rules, there is no untested commit in master so it would serve to test a release made from a commit out of master, a very bad idea in its own. In exchange ci would be more complex, needing copy the entire test workflow or make use of reused workflows |