-
-
Notifications
You must be signed in to change notification settings - Fork 368
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
Prepare for Hackage #1176
Prepare for Hackage #1176
Conversation
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.
Why should some plugins be manual false? My understand was that was almost always the wrong thing to do, and is just inviting a Cabal screwup?
This is one of those occasions where the extra power afforded by In case it's not clear, a flag with |
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.
OK - that makes sense.
I agree with @ndmitchell that The motivation of the previous flag layout was keep the build without flags equivalent to the previous one and make easy add plugins incrementally. Now generate a raw executable with no plugins and formatters needs lot of cabal flags. Even remove all formatters but the desired one needs four flags. |
I don't think that this will bring any problems with the solver. |
Ok, maybe i am overlooking it but i've got bad build plans in the past due to cabal automatic resolution, tbh maybe it is not applicable to our case. So for me it should be temporary workaround for not having the plugins published in hackage and no something to keep forever. |
I think having the plugins default to false also fits in with the larger plan, of then being able to use it as a basis for building your own variant with a custom set of plugins. Perhaps one day haskell-language-server s just a library, and we have a separate hls-exe package. |
Alan, that library is ghcide 0.7.0, which can already load HLS plugins - it currently only loads the ghcide plugin. HLS is the batteries included Version, giving you all plugins by default, or those which are buildable at least. Javier, feel free to change the plugins to Manual:False when they are all in Hackage. I don't have any strong opinions about this. |
I'd like the "default" experience to be great - which I think means we have to default on at least one formatter, and most features. |
The thing is, the "default" experience is to install via the current mechanisms, which brings in the pre-built executables for various compiler versions, and has a full plugin set. I do not feel particularly strongly about this though. The important thing is to avoid confusing people about the standard way to install hls for use, which should not be via hackage. |
I imagine if we start getting shipped with distributions, they will take our code from Hackage and compile it themselves, so it's likely something that will happen whether we want it or not. |
True, and I considered that as I sent my prior message. But that is a good thing, as it should be installed in a coherent way then, so should just work for users. The problem we will have is when someone new to haskell sees this, tries to install, and wonders why it does not work as expected. And I guess the solution is to report clearly when we are not able to match compiler versions, and point the user to alternate install mechanisms. |
Fixes #1175
Backport branch: https://github.com/haskell/haskell-language-server/tree/0.8.0-hackage
Tested: