Skip to content
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

Restore consistency in ci using alpine in all workflows #2617

Closed
jneira opened this issue Jan 21, 2022 · 11 comments
Closed

Restore consistency in ci using alpine in all workflows #2617

jneira opened this issue Jan 21, 2022 · 11 comments
Labels
CI Continuous integration type: bug Something isn't right: doesn't work as intended, documentation is missing/outdated, etc..

Comments

@jneira
Copy link
Member

jneira commented Jan 21, 2022

@jneira jneira added type: bug Something isn't right: doesn't work as intended, documentation is missing/outdated, etc.. CI Continuous integration labels Jan 21, 2022
@michaelpj
Copy link
Collaborator

I'm more worried about the first one. If we're going to force some build configuration (e.g. using integer-simple) in some workflow, we should do it in all of them, otherwise things will be inconsistent.

I'm less worried about GHC bugs. They happen from time to time, but it's less likely than solver issues IMO.

@jneira
Copy link
Member Author

jneira commented Jan 21, 2022

Well the first one is resolved, as .ghcup downloads ghc versions linked against integer-gmp for all our supported ghc versions. So i removed the particular build configuration for integer-simple and afaics the build configuration is the same now between workflows (#2615)

@jneira
Copy link
Member Author

jneira commented Jan 21, 2022

I'm less worried about GHC bugs. They happen from time to time, but it's less likely than solver issues IMO.

More frequent than desirable i am afraid. And more frequent in not so widely used systems like alpine i guess

@jneira
Copy link
Member Author

jneira commented Jan 21, 2022

From #2615 (comment)

It worths to note that ghc-9.2.1 in alpine seems to be fragile:

btw, someone has done some dogfooding with the alpine based hls executables? do we know they work for sure? They have not passed the test suite

@jneira
Copy link
Member Author

jneira commented Jan 21, 2022

btw, someone has done some dogfooding with the alpine based hls executables? do we know they work for sure? They have not passed the test suite

you can dowload the executables from the build artifacts: https://github.com/jneira/haskell-language-server/suites/5014931778/artifacts/147473084
i've triggered a build in this repo to make available them here too: https://github.com/haskell/haskell-language-server/actions/runs/1728847536#artifacts (the build still have not finished)

@jneira
Copy link
Member Author

jneira commented Jan 22, 2022

Hi,i've tried the linux executable in wsl and when opening a module with template haskell, i get an error in the top of the file:

Unexpected usage error
Dynamic loading not supported

imagen

This is with ghc-8.10.7
And no ide feature is working in the module.
Is this the expected behaviour? hls will directly not work in modules with th?

@jneira
Copy link
Member Author

jneira commented Jan 24, 2022

Is this the expected behaviour? hls will directly not work in modules with th?

cc @wz1000 @pepeiborra

I am not sure if start the new release as this behaviour would break all Linux uses where th is working now

@kokobd
Copy link
Collaborator

kokobd commented Jan 24, 2022

i've triggered a build in this repo to make available them here too: https://github.com/haskell/haskell-language-server/actions/runs/1728847536#artifacts (the build still have not finished)

@jneira I tried an executable from here and encountered the exact same error as yours.

My environment:

  • ubuntu 20.04
  • ghc 8.10.7 (installed by ghcup)

@jneira
Copy link
Member Author

jneira commented Jan 24, 2022

@pepeiborra @wz1000
sorry, but i will open a pr disabling the fully statically build for linux using alpine to unblock the release if i dont have any confirmation that is the expected behaviour (and we decide to keep it) or if it could work with some change here or in the user side

@Anton-Latukha
Copy link
Collaborator

Anton-Latukha commented Jan 29, 2022

  1. Looked into Use alpine in all sensible workflows #2640.

  2. Good idea to test on Alpine.
    Indeed, if it works in a minimal environment - it should work on the majority of other Linux'es.

  3. Would note that Alpine has a caveat, it is not POSIX compliant by default, it relies on BusyBox & I encountered problems with that enough times in my former work to be quite aware of it. It seems to work perfectly, until suddenly something changed & it can not find something from most frequently POSIX support, or GNU Coreutils.

Changing from BusyBox to GNU Coreutils in Alpine - is simple as apk --no-cache add coreutils.

@Anton-Latukha
Copy link
Collaborator

Anton-Latukha commented Jan 29, 2022

If you want, I can tomorrow switch my scope. Would love to look more into how containers work in GitHub CI. & I used to do a lot of containerization & loved to optimize the use of containers to cache the setup, COW deduplication, etc.

I used to have a free autoupdate on container images. Leveraged DockerHub API, simply added webhook into IFFT to rebuild the image on schedule & was leveraging free rebuilds through DockerHub & so always had prebuilt images for main things.

@jneira jneira closed this as completed Apr 18, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CI Continuous integration type: bug Something isn't right: doesn't work as intended, documentation is missing/outdated, etc..
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants