-
Notifications
You must be signed in to change notification settings - Fork 206
Explain how to install with cabal in README #1179
Comments
@ivanperez-keera I think the main reason for the complexity is that the installation script builds 3 different versions of hie, one for each of the last 3 GHC releases. There is also the problem of the large number of submodules which are because certain dependencies have But you are right that |
@mpickering could you make a PR and document howto use cabal new-build in README? |
I can write some documentation about this. However, this is not a good idea. Before we had install.hs we had a new issue about some error that was due to an incorrect installation every day. Officially supporting a different installation method will bring these back. |
The install.hs almost supports build with only cabal. |
I'm just talking about the fact you can run |
as far as I know it the steps to build
Historically, a few more steps are included, (of which I am unsure if really needed)
Still, there are some gotchas:
Currently, the environment is a bit unstable
As you can see, this is a non-trivial process!. We had a Pros:
Cons:
Hopefully, the build-system will get simpler in the next few months, after following projects have been finished:
adding "building with |
Perhaps this question is naive, but shouldn't the necessary extra compilation steps (calling hoogle, using shake, etc.) be part of the Setup.hs file? Isn't this precisely what those are for? |
Perhaps, but I have no experience with that. Is it possible to initiate building |
No. The way to do something like that would be to change your PATH and re-run, or tell cabal which GHC to use (both of which seems reasonable to me). |
another non-trivial issue was the requirement that Also, can part of the code from the We had poor experiences (in my opinion) with requiring the users to perform extra manual steps. |
I firmly believe that a process like the However, I am open to suggestions on how something lie the |
This repo uses submodules. The recommended way of cloning already does the I cannot find anything in |
Some things that the I suspect, but I don't know for sure, that most "normal" users only have one version of ghc available, for which renaming the executables as Does the need to compile hie for different GHC versions arise from a need to have documentation for all those GHC versions only, or is hie actually linked in such a way that a version compiled with GHC 8.6 makes it useless if I switch to GHC 8.4 for a project? I suspect, but I don't know, that the scripts could make more sense for people developing haskell-ide-engine, but not for people installing it just to use it. I also suspect that some files should be executed after installation, in a way similar to how you need to (EDIT: removed statement that I think is wrong.) |
copyFile' (localBin </> "hie" <.> exe)
(localBin </> "hie-" ++ versionNumber <.> exe)
copyFile' (localBin </> "hie" <.> exe)
(localBin </> "hie-" ++ dropExtension versionNumber <.> exe) My understanding is that,
The decision to introduce a one-stop-shop build and add the dependency to |
Unless users are going to regularly update and reinstall, this should not matter.
I understand your position. But it also draws users away, and it is not necessary (since it installs without). |
We disagree indeed.
since
This is not true for most users (windows & MacOS) in most circumstances (need correct environment for hlint, hoogle, cabal-helper-wrapper, ...) I AM in favor of a install-possibility without stack. However, this is not simple |
I vote to close this issue. Simply adding documentation to the readme is not a wise step. I encourage the development of a build-system that is cabal-only that honors the requirements described in the documentation of the build system. However, I have not enough experience with cabal to do this. |
The README favours installation methods other than cabal. For reasons that at too long to discuss here, some of us do not like using stack.
While the readme states that cabal can be used to install haskell-ide-engine, this is only briefly mentioned, and no explicit instructions are given.
As it turns out, this package compiles just fine with the good-old cabal sandboxes, which are a perfectly good way of keeping things isolated.
Either with v2 or with v1, it would be great if the README contained specific instructions of how to install this with cabal.
The text was updated successfully, but these errors were encountered: