Skip to content

Update downloads page #125

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

Merged
merged 1 commit into from
Oct 6, 2021
Merged

Update downloads page #125

merged 1 commit into from
Oct 6, 2021

Conversation

Bodigrim
Copy link
Contributor

@Bodigrim Bodigrim commented Aug 11, 2021

Message after @tomjaguarpaw's changes

The specifics of this change are to replace Chocolatey with ghcup as the preferred installation method of GHC, cabal-install and haskell-language-server on Windows. The overall effect is that the install instructions become common over Windows, Linux and MacOS.

In my view this makes something better without making anything worse. However, the Haskell.org committee can't proceed to merge this without broad community input.

Counterpoints:

  • @parsonsmatt suggests that ghcup on Windows is not sufficiently well-tested.

@Bodigrim's original message

Since #93 has descended into chaos, I’ll take a risk to suggest an alternative, more conservative approach, which merely mentions that ghcup supports Windows and can install Stack, but does not go any further. I hope it could be more palatable, but if I’m wrong feel free to close, no hard feelings on my part.

This PR still offers a considerable simplification and unification, because installation instructions for all major platforms are now uniform.

- [Configure Chocolatey](https://chocolatey.org/install) on your machine
- At an elevated command prompt, run `choco install haskell-dev`, followed by `refreshenv`.
2. To install stack, follow the instructions [here](https://docs.haskellstack.org/en/stable/install_and_upgrade/#windows)
1. Use [GHCup](https://www.haskell.org/ghcup/) to install
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This suggests to install cabal/GHC via ghcup on windows and lists chocolatey as an alternative. Is that intentional?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This part is no longer a platform-specific instruction: it suggests to use 1) ghcup, 2) stack to install Haskell toolchain wherever you are.

Chocolatey was moved below under platform-specific instructions for package managers. If this move is controversial, I'm happy to restore it back, this was done in the interest of clarity and brevity, not because of partisan preferences.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Chocolatey was moved below under platform-specific instructions for package managers. If this move is controversial, I'm happy to restore it back, this was done in the interest of clarity and brevity, not because of partisan preferences.

True, I agree here. But the argument from @parsonsmatt was that neither windows nor stack support are sufficiently "battle-tested".

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah this PR has the same problem as the other one, as far as I am concerned

I think the safest option is to add ghcup as an option under Windows, but not make it the preferred/recommended/"most obvious choice" until it's been in the wild for a bit more time.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@parsonsmatt I'm sympathetic to your view in a context of the previous PR. However, here no installation method is removed, only one added.

Note that ghcup is actually the only tool, fully capable of installing Haskell toolchain (as defined above). So unless there is a specific known issue with regards to Windows support in ghcup, I think it's worth to list it as proposed. But - again - I'm happy to leave it for haskell.org committee to deliberate and decide.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR does quite a bit more than add an option to the list, which would be completely fine IMO.

The first presented option that is relevant to a user should be a well-tested "blessed" choice, with extremely little chance of failure or problems. The current page structure accomplishes this. The user selects their platform, and is given the 'blessed' path - ghcup for Linux/OSX/FreeBSD and chocolatey+stack for Windows.

The simplest change that adds ghcup as an option is to just add it as an option in the current Windows section.

 ### Windows { #windows }
 
 1. Install GHC and cabal-install via Chocolatey 
 	- [Configure Chocolatey](https://chocolatey.org/install) on your machine
 	- At an elevated command prompt, run `choco install haskell-dev`, followed by `refreshenv`.
 2. To install stack, follow the instructions [here](https://docs.haskellstack.org/en/stable/install_and_upgrade/#windows)
+3. `ghcup` recently acquired Windows support. To install `ghcup`, follow the instructions [here](wherever this needs to be)

This change accomplishes pretty much what everyone wants: ghcup gets mentioned under Windows support, ghcup gets exposure and more users and more testers, the stack team's concerns about ghcup as an installation method for stack are satisfied, my concerns about new-users being funneled into relatively less-tested workflows is abated.

In ~6 months (or whatever timeline works for folks), when there is more confidence in ghcup's Windows support, then we can switch to this unified installer plan. Then we have one main "How to get Haskell" section (heck yes) and alternatives for different platforms listed below.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR does quite a bit more than add an option to the list, which would be completely fine IMO.

The first presented option that is relevant to a user should be a well-tested "blessed" choice, with extremely little chance of failure or problems. The current page structure accomplishes this. The user selects their platform, and is given the 'blessed' path - ghcup for Linux/OSX/FreeBSD and chocolatey+stack for Windows.

The simplest change that adds ghcup as an option is to just add it as an option in the current Windows section.

 ### Windows { #windows }
 
 1. Install GHC and cabal-install via Chocolatey 
 	- [Configure Chocolatey](https://chocolatey.org/install) on your machine
 	- At an elevated command prompt, run `choco install haskell-dev`, followed by `refreshenv`.
 2. To install stack, follow the instructions [here](https://docs.haskellstack.org/en/stable/install_and_upgrade/#windows)
+3. `ghcup` recently acquired Windows support. To install `ghcup`, follow the instructions [here](wherever this needs to be)

This change accomplishes pretty much what everyone wants: ghcup gets mentioned under Windows support, ghcup gets exposure and more users and more testers, the stack team's concerns about ghcup as an installation method for stack are satisfied, my concerns about new-users being funneled into relatively less-tested workflows is abated.

This is specifically what I do not want: add more options/choice for the user.

The reason the DL page was confusing is exactly this: listing all sorts of installation methods, leaving the user confused.

Ultimately, it should be one single instruction. If that's not feasible, it should be one single instruction per platform. Alternatives are to be listed as a footnote or not at all.

1. Install GHC, cabal-install and haskell-language-server via [GHCup](https://www.haskell.org/ghcup/)
2. To install stack, follow the instructions [here](https://docs.haskellstack.org/en/stable/install_and_upgrade/)

*Note: Apple Silicon is not yet supported. You will have to install GHC in `arch -x86_64` compatibility mode using rosetta. See [here](https://derflounder.wordpress.com/2020/11/17/installing-rosetta-2-on-apple-silicon-macs/) and [here](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/101) for more pointers.*
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we really want to remove this warning?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, because it is perfectly supported right now!

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great! That's a good improvement on its own. Let's get in it separately: #126

Copy link
Collaborator

@tomjaguarpaw tomjaguarpaw left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The specifics of this change are to replace Chocolatey with ghcup as the preferred installation method of GHC, cabal-install and haskell-language-server on Windows. The overall effect is that the install instructions become common over Windows, Linux and MacOS. Great!

Chocolatey is moved to "Using a package manager". We should check how @Mistuke feels about this. Still, I am strongly in support of moving towards a common installation method.

I approve this PR. I think it makes some things better without making anything worse. In particular it doesn't impinge on Stack at all. I think a few others from the committee should have a look.

[I will make a few minor cosmetic edits to this later.]

tomjaguarpaw added a commit to tomjaguarpaw/www.haskell.org that referenced this pull request Aug 11, 2021
tomjaguarpaw added a commit that referenced this pull request Aug 12, 2021
@jneira
Copy link
Contributor

jneira commented Aug 12, 2021

The change looks good and it will help to increase ghcup adoption for stack and windows users so 👍

@hasufell
Copy link
Contributor

I'm in favor of this change, because windows support is something I have full control over and can adjust and fix freely.

Fixing integration issues with stack may require collaboration, which is in limbo right now.

@tomjaguarpaw
Copy link
Collaborator

windows support is something I have full control over and can adjust and fix freely.

This is an important point. I would augment it with the observation that we are grateful that @Mistuke developed and supports the Chocolately installer despite being busy with many other things. Regarding ghcup Windows support, based on @hasufell's track record, we can be confident he will be extremely responsive and effective in supporting it, should any problems arise. (Because it is written in Haskell it is easier for others to support too, should the need arise.)

@tomjaguarpaw
Copy link
Collaborator

@Bodigrim I rebased your branch on master and made some cosmetic changes: #129. Could you please take a look and if you approve force push it on top of this branch?

@hasufell
Copy link
Contributor

Wrt chocolatey, I created https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/208

@Bodigrim
Copy link
Contributor Author

@tomjaguarpaw sorry, I'm AFK until next week. Feel free to push force the rebased version over my branch, you should have necessary permissions.

@tomjaguarpaw
Copy link
Collaborator

I have force pushed my cosmetic changes and Julian's suggestions from #129 to this branch.

@tomjaguarpaw
Copy link
Collaborator

I've simplified this further, minimizing the diff (in part by splitting out #130, which is logically separate).

@Bodigrim
Copy link
Contributor Author

@tomjaguarpaw any chance to merge this soon?

@tomjaguarpaw
Copy link
Collaborator

Since this counts as a "controversial change" it will need a majority of the Haskell.org committee to approve it before merge. The committee is required to take into account the interests of the full range of the Haskell community. The effect of this PR is to promote ghcup and de-emphasise Chocolatey so the opinion of Chocolately users and developers is particularly welcome. Other stakeholders should have their input too.

Another concern, raised by @parsonsmatt, was whether ghcup on Windows is sufficiently well-tested. ghcup has had Windows support for a while now. Perhaps we have enough evidence to say yes it is sufficiently well-tested.

@hasufell
Copy link
Contributor

hasufell commented Sep 27, 2021

The effect of this PR is to promote ghcup and de-emphasise Chocolatey so the opinion of Chocolately users and developers is particularly welcome.

Note that ghcup prints a message on windows if it detects chocolatey and allows the user to stop and use that instead: https://gitlab.haskell.org/haskell/ghcup-hs/-/blob/5a39ead5237f2fff60ce111f4e3f470fd1e9ded8/scripts/bootstrap/bootstrap-haskell.ps1#L163

whether ghcup on Windows is sufficiently well-tested. ghcup has had Windows support for a while now. Perhaps we have enough evidence to say yes it is sufficiently well-tested.

@jneira has used it extensively there, any opinion?

@Bodigrim
Copy link
Contributor Author

@tomjaguarpaw all right, what would it take to trigger Haskell.org committee vote on this? The PR is open for 7 weeks, I would like to have it resolved one way or another.

@jneira
Copy link
Contributor

jneira commented Sep 28, 2021

@jneira has used it extensively there, any opinion?

I have to say that i cant imagine manage the haskell toolchain without ghcup now. I was doing it manually before that and was cumbersome. Unify the haskell toolchain setup process for all main platforms is a must imo and ghcup is the working alternative
right now.

More importantly, the issues reproduced in windows has been resolved diligently by ghcup developers and the project is running its test suite in windows to avoid regressions. And it is previsible it will continue that way.

@tomjaguarpaw
Copy link
Collaborator

The next meeting of the committee is in two weeks. It is also possible to hold the vote asynchronously. I will communicate my support for this PR to the committee.

@tomjaguarpaw
Copy link
Collaborator

@alirezaghey
Copy link

alirezaghey commented Oct 2, 2021

I'm a nobody and have little to no experience but haven't seen but good from ghcup, although I haven't used it on Windows. It made the setup very straightforward for me and I wished I had found it earlier.

@cartazio
Copy link
Member

cartazio commented Oct 2, 2021

i support @hasufell's tooling as the recommended general user installation for all platforms he feel confident about supporting.

@tomjaguarpaw
Copy link
Collaborator

I sought community input on Discourse, Reddit and haskell-cafe. There was significant support for this change. No one objected to Chocolatey being de-emphasised. The Slack maintainership have told me they have no objection to this change.

I strongly recommend this PR to the committee.

@tomjaguarpaw tomjaguarpaw requested a review from idabzo October 5, 2021 11:31
@tomjaguarpaw
Copy link
Collaborator

Copy link
Contributor

@idabzo idabzo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Copy link
Member

@TikhonJelvis TikhonJelvis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice, let's do it. Thanks for gathering clear community feedback @tomjaguarpaw!

Copy link
Collaborator

@rebeccaskinner rebeccaskinner left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me, I think this is a great change. Thanks!

@tomjaguarpaw tomjaguarpaw merged commit 9812419 into haskell-infra:master Oct 6, 2021
@tomjaguarpaw
Copy link
Collaborator

Thanks everyone for your input!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.