-
-
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
Delete global cradle files (hie-cabal.yaml, hie-stack.yaml) #741
Comments
If we delete them right away, won't users with older versions (HIE/HLS/ghcide) be unable to work on ghcide/hls anymore? |
If they are hacking in ghcide HEAD they should be using ghcide HEAD. But there's no rush |
Original issue haskell/ghcide#796 |
maybe the files could be kept as an example of a complex project config? |
Can't |
Well, sort of, but the output is not exactly equal (it generates a path for each module in the exe component f.e.). |
A file called All that for what? I personally don't use these files anymore since To summarise, by keeping them we are endorsing the wrong approach and making our lives harder in more than one way. So no, I don't think keeping them around is a good idea. |
Having dedicated examples is fine, even very desirable, but I think HLS should be using best practices, to encourage people to follow. I think we should now recommend not having a hie.yaml in most cases, since its easiest and works well. I've started to delete my hie.yaml files - they force a particular choice (Cabal vs Stack) which different devs make differently, and gen-hie seems to do better than my manual files in most cases. |
Fair enough, i suppose implicit-hie is good enough to push explicit hie.yaml to special corner cases |
So we should remove them, however, i would like to hear the opinion of the later "maintainers" of those files. We will delete the files if nobody is strongly against. |
So the dev flow will be use |
@Ailrun I think the idea is to use the implicit cradle and only generate the explicit config if you hit some corner case where it does not work |
I think deleting global cradle makes sense, but deleting all cradles is not a good idea. |
OK then, sounds good for me. (Though I haven't tried implicit cradle for HLS...) |
Yeah iiuc this is about the global ones, gonna change the description of the issue to make it clear |
One situation where it's unclear whether the implicit cradle works at all is when the hls wrapper is being used to detect the version of ghc before downloading binaries. I think this scenario requires further testing with the implicit cradle |
I just tried loading HLS using implicit cradle, and it works smoothly. (though it seems that some components are recompiled repeatedly many times, which would be another issue not related to cradle) |
It looks like "default" plugins do not work with implicit cradle. |
OK, I have to admit I have agreed to delete global cradles too hastily. It looks like all plugin packages use Cabal cradle, as there is no |
I have used hie.yaml.stack and global stack.yaml alone just worked; however, it turns out that deleting hie.yaml forces us to use Cabal as a backend, which forces rebuild to me... |
I think using BTW, this still does not solve the problem of "default" plugins, so we maybe need to move them into a package or request implicit-hie to handle such a case. |
I think this is great and I'm happy to merge it, but I have a couple of requests that can either be done in this PR of in follow-ups:
Originally posted by @pepeiborra in haskell/ghcide#782 (comment)
The text was updated successfully, but these errors were encountered: