Description
Currently the Downloads page has the following instructions:
- Install GHC, cabal-install and haskell-language-server via GHCup
- To install Stack, follow the Stack installation guide
It has been remarked elsewhere that this situation is undesirable. It would be much simpler and more friendly to have a big "Get Haskell" button. I'd like to move forwards towards that goal.
The first step is to identify what is the difference between the GHCup and Stack installers. Here is my current best understanding:
Stack installer
- Can install Stack and GHC
- By default installs Stack (I'm not sure if it installs GHC upfront or if Stack installs GHC only as required by the user's packages)
- Doesn't install Cabal or HLS
- GUI installer on Windows, CLI installer otherwise.
- Installs GHC from official upstream bindists
GHCup installer
- Can install GHCup, GHC, Cabal, Stack and HLS
- By default installs GHCup, GHC and Cabal
- CLI/TUI installer
- Installs GHC, Cabal and HLS from upstream bindists
- Does it install Stack from upstream bindists? If not, which bindist is it using?
There are three requirements to "merge" the functionality of these installers (but I think only a subset is worth doing) into a universal installer:
- Ensure that the installer installs Stack from upstream bindists otherwise Stack maintainers might get bug reports from a bindist they don't support (perhaps GHCup already does this, I'm not sure)
- Ensure that the installer installs GHC, Cabal and Stack by default
- Ensure that the installer has CLI and GUI functionality on Windows
Personally I don't see much value in supporting 3. I think we can achieve a satisfactory universal installer by making sure GHCup achieves 1 and 2. Perhaps it already satisfies 1. Satisfying 2 should be technically easy.
I would be interested in technical feedback on this idea, particularly from @hasufell. If it looks like GHCup can achieve 1 and 2 technically then with a bit of work I think we can achieve a consensus that that is the way forward.