Closed
Description
-
To reflect some recent discussions in the irc channel and get more broad feedback
-
Actually we have a stack.yaml for each supported ghc
-
Keeping them up-to-date needs some effort, most times mechanical and boring but sometimes tricky
-
The install script uses those stack.yaml's to define the list of supported/available ghcs to install hls, even if the script uses cabal underneath
- But we are discussing deprecate and remove the install script
-
Pros:
- They make easier to possible contributors using stack start to work on hls, so we get more chances to get contributions.
- They make easier for advanced users using stack build hls from source and we are suggesting that as workaround for some issues
- The alternative to the install script,
ghcup compile hls
only allow using cabal for the build
- The alternative to the install script,
- It is much harder to create a new stack.yaml from the air for those all possible case uses than update an existing one.
stack init
does not work for hls. - More broadly, we send out a signal to the haskell community: hls aims to support stack in parity with cabal for users, maintainers and contributors. I firmly think that it helps to the friendly coexistence of both tools in the community.
-
Contras
- We have to maintain all those stack.yamls, which is a error prone and boring task most of times and a tricky one sometimes
- We have to maintain the circleci setup and worry about it
- Contributors not using stack can find difficulties in update those stack.yamls and it could make them stop working on hls (as commented by @fendor)
-
Alternatives:
- Remove all stack.yamls and require cabal or nix to work on hls (i think nobody has suggested that at the moment but for completeness)
- Keep only one stack.yaml with the last lts or other (suggested by @wz1000)
- Keep two stack.yamls: last lts and nightly (they could be the same ghc at some point though) (suggested by @fendor? not sure)
- Keep one stack.yaml for supported ghc: it will remove the ghcs of minor versions (one or two) (suggested by @simonmichael iirc)
- Keep the actual state of things
Keeping some of the stack.yamls makes pros and contras only vary quantitatively.
Personally i am for 4 or 5.