Skip to content
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

Simplify download page further #93

Closed

Conversation

hasufell
Copy link
Contributor

@hasufell hasufell commented Jun 12, 2021

Since ghcup now runs on pretty much any platform and supports stack, I leave this here for discussion of further download page simplification.


It should be noted that there is a minor caveat of ghcup's stack handling: of course it doesn't interact well with stack upgrade, which overwrites binaries (no matter the name of the invoking executable). Users will be notified to use ghcup mechanism for such updates.

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.

One editing nitpick aside, I think this is a reasonable change. That said, since changes to the download page can be a bit contentious within the community, I'd like to get input from some other folks on the committee, and ensure that we have time for community feedback before we merge.

- [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)
Alternative methods to install toolchain components are listed [below](#ghc-install-manual).
Copy link
Collaborator

Choose a reason for hiding this comment

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

Maybe we should combine this section with the next section, or rephrase this. saying "below" when it's literally the next line of text reads a little oddly to me.

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.

I like this. It fits in nicely with the HF unified installer plan.

@hasufell
Copy link
Contributor Author

I like this. It fits in nicely with the HF unified installer plan.

I'm not sure.

@tomjaguarpaw
Copy link
Collaborator

I like this. It fits in nicely with the HF unified installer plan.

I'm not sure.

Correct me if I am wrong, but are these changes not proposed because GHCup now installs Stack and works on Windows? And is that not part of the HF unified install plan?

@hasufell
Copy link
Contributor Author

I like this. It fits in nicely with the HF unified installer plan.

I'm not sure.

Correct me if I am wrong, but are these changes not proposed because GHCup now installs Stack and works on Windows? And is that not part of the HF unified install plan?

Maybe. I can't comment on what HF's goals are or how the proposal will turn out. But I thought haskell.org is independent of HF?

@tomjaguarpaw
Copy link
Collaborator

I can't comment on what HF's goals are

According to the (not yet accepted) installer guidelines proposal

The Haskell Foundation would like see a central Haskell download page in which the Haskell curious could easily download and run a installer to provide a standard Haskell environment that supports the principal build tools (cabal-install and stack) on the main platforms (Linux, macOS and Windows).

The guidelines seem to be aligned with this PR and furthermore you are listed as one of the contributors to the planned work on that proposal!

I thought haskell.org is independent of HF?

It is an independent yet affiliated organisation. I would guess that Haskell.org is likely to (but not required to) drive forward work approved by HF and vice versa.

In any case, I think this PR is a good change to make now that GHCup supports Stack and Windows (thanks!).

@hasufell
Copy link
Contributor Author

I can't comment on what HF's goals are

According to the (not yet accepted) installer guidelines proposal

The Haskell Foundation would like see a central Haskell download page in which the Haskell curious could easily download and run a installer to provide a standard Haskell environment that supports the principal build tools (cabal-install and stack) on the main platforms (Linux, macOS and Windows).

The guidelines seem to be aligned with this PR and furthermore you are listed as one of the contributors to the planned work on that proposal!

Yeah, I've been consulted, but also been very confused about certain events and statements, so I'm not sure.

I thought haskell.org is independent of HF?

It is an independent yet affiliated organisation. I would guess that Haskell.org is likely to (but not required to) drive forward work approved by HF and vice versa.

In any case, I think this PR is a good change to make now that GHCup supports Stack and Windows (thanks!).

Well, if you care about aligning with HF, you might want to wait out the actual proposal.

@tomjaguarpaw
Copy link
Collaborator

Well, if you care about aligning with HF, you might want to wait out the actual proposal.

Fair enough. Still, I think this is a good change regardless. Now that GHCup supports Stack and Windows we should simplify the download instructions!

@gbaz
Copy link
Contributor

gbaz commented Jul 7, 2021

I'd like to encourage merging this now. Ghcup's windows support is quite good at this point, and this would further help clear things up.

@hasufell
Copy link
Contributor Author

hasufell commented Jul 7, 2021

Even if I'm not 100% convinced about the current state of the stack integration, I guess more user reports will help us understand if it's working well or not.

The way is forward.

@hasufell
Copy link
Contributor Author

Wrt windows, there have been more improvements that should make installation smoother:

Wrt stack, the current state is that we print informative post-install messages:

[ Info  ] Stack manages GHC versions internally by default. In order to make it use ghcup installed
[ ...   ] GHC versions you can run the following commands:
[ ...   ]   stack config set install-ghc false --global
[ ...   ]   stack config set system-ghc  true  --global
[ ...   ]
[ ...   ] On windows, you may find the following config options useful too:
[ ...   ]   skip-msys, extra-path, extra-include-dirs, extra-lib-dirs
[ ...   ]
[ ...   ] Also check out: https://docs.haskellstack.org/en/stable/yaml_configuration
[ ...   ]
[ ...   ] !!! Additionally, you should upgrade stack only through ghcup and not use 'stack upgrade' !!!
[ ...   ]

@hasufell
Copy link
Contributor Author

hasufell commented Jul 13, 2021

At this point... we could debate whether we should do away with the entire downloads page and just drop the user to https://www.haskell.org/ghcup/

At the bottom of the page is a "other installation options" link, that I think could then redirect to the gitlab ghcup repo wiki, where I just created a page based on this PR: https://gitlab.haskell.org/haskell/ghcup-hs/-/wikis/Other-installation-options


Of course, I'd expect closer monitoring and feedback from the haskell.org committee on changes to both the wiki and the ghcup page. But I'm putting this forward as an option.

@hasufell
Copy link
Contributor Author

hasufell commented Aug 7, 2021

haskell-org/committee#8

@tomjaguarpaw
Copy link
Collaborator

The effect of this change is to de-emphasise Chocolatey and the direct installation of Stack, and give more prominence to ghcup. I am a happy long-time user of ghcup and I know it to be a high-quality piece of software. Since ghcup now supports installing Stack and installing on Windows unifying installation instructions like this makes sense to me.

However, the Haskell.org committee has a responsibility to navigate carefully around the treacherous waters of controversy. I think it would be very helpful to hear from representatives of Stack and Chocolatey stakeholders. If they are in support of this change then great, let's go ahead!

@hasufell
Copy link
Contributor Author

@tomjaguarpaw absolutely

@tomjaguarpaw
Copy link
Collaborator

How can we facilitate those stakeholders to give their input?

@tomjaguarpaw
Copy link
Collaborator

Perhaps starting discussions on Discourse/Reddit/haskell-cafe would be a good way to get broad input.

@jneira
Copy link
Contributor

jneira commented Aug 11, 2021

How can we facilitate those stakeholders to give their input?

pinging @Mistuke and @snoyberg?

@cdornan
Copy link

cdornan commented Aug 11, 2021

For my part I disagree (strongly) with the proposed change on the grounds that I would never recommend to anybody wishing to use stack to install it with ghcup. I tried to get these issues addressed but the process broke down with familiar disagreements at which point I gave up on the process as it seemed to be diverging while costing too much to all involved.

I have absolutely no interest in reopening this discussion, but I can assure you that the stack team as a whole do not regard ghcup, as it stands, an adequate installer for stack. (Of course, if any prominent member of the stack team disagrees, please leave a comment here explaining your disagreement.)

Maybe at a future point a meaningful process for developing widely recognised universal installers can be established — I certainly hope so — but, as I see it, those conditions have yet to be met. In the meantime I think stack and ghcup should both be offered as methods of installing Haskell development environments on the dowload page.

@hasufell
Copy link
Contributor Author

For my part I disagree (strongly) with the proposed change on the grounds that I would never recommend to anybody wishing to use stack to install it with ghcup.

That's interesting, given that it was you who requested the feature of ghcup being able to install stack. Why did I add it?

but I can assure you that the stack team as a whole do not regard ghcup, as it stands, an adequate installer for stack

Why?

Copy link

@parsonsmatt parsonsmatt left a comment

Choose a reason for hiding this comment

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

I'd personally hold off on removing or deprioritizing the explicit stack installation instructions until the ghcup+stack and ghcup+windows configurations have been in the wild for a while. These are very new features, and recommending them as the first means of installing tools is going to have our newest community members acting as initial testers for these features.

As I understand it, the stack+windows setup has been working smoothly for many years, while ghcup+windows is new and possibly has bugs that haven't been ironed out by real world use and a lot of users. I'm happy to see it mentioned as an option, but I do think we should stick with promoting the options that have the best track record for success here.

My suggestion is to add a line on the old ### Windows section, something like:

3. To install `ghcup` (which supports Windows as of YYYY-MM-DD), follow the instructions [here](windows install link for ghcup)

@hasufell
Copy link
Contributor Author

we should stick with promoting the options that have the best track record for success here

That's a valid alternative stance. My impression however was, that there's consensus that having one set of instructions across all platforms for all tools is the primary goal. And the only way to achieve that is to expose it to users and fix the bugs.

If the idea is to list the most battle-tested ways of installation, then the current download page already violates this, because it doesn't mention e.g. the package manager on gentoo or other distros that correctly package GHC as the primary way to install.

@cdornan
Copy link

cdornan commented Aug 11, 2021

@hasufell said:

That's interesting, given that it was you who requested the feature of ghcup being able to install stack. Why did I add it?

I made it clear throughout — and here — that a unified installer was the goal but that does not mean that we achieved it. To achieve that there would have to be a widely accepted agreement that any given installer was fit for installing a cabal-install and stack development environment. We clearly did not achive that, which should have been obvious to anybody near the process.

but I can assure you that the stack team as a whole do not regard ghcup, as it stands, an adequate installer for stack

Why?

I stepped away from the whole effort because it was too exhausting, while nobody was listening across the well-established lines of contention. My views have not changed. We need a working framework for building trust and resolving these isssues — and this issue tracker is not the place for that. I am sorry but I am not willing to reopen this discussion. The key point here is that the stack development team regard ghcup, as it stands, as an entirely unstaisfactory installer for stack.

@hasufell
Copy link
Contributor Author

We clearly did not achive that, which should have been obvious to anybody near the process.

Can you explain why ghcup did not achieve that? I think this may only be obvious to you.

@cdornan
Copy link

cdornan commented Aug 11, 2021

Can you explain why ghcup did not achieve that?

As I said, I am sorry, but I am not reopening that. My point is that it should have been obvious to anybody participating in the process that it had broken down without satisfactory resolution.

@parsonsmatt
Copy link

That's a valid alternative stance. My impression however was, that there's consensus that having one set of instructions across all platforms for all tools is the primary goal.

I'd much rather have highly reliable and well-tested installation paths for newcomers. These are the folks that are the least able to find support and help with things, and the least likely to be willing to push through installation hassles. Ensuring that they have a good and easy experience is IMO far more important than that there's a single way to do it.

And the only way to achieve that is to expose it to users and fix the bugs.

This statement is true, but it does not follow that "we should recommend novel and relatively less tested workflows to absolute beginners."

IME, beginners rarely report bugs or problems - they assume it's their fault, or they don't know where to report bugs, or they don't know how to make good bug reports. They're the worst audience to use as beta testers, if all you want is user feedback.

Also IME, beginners (rightfully) see problems with recommended installation instructions as a red flag - "Well, if this is broken, then the whole enterprise is probably bad." Asking them to invest further effort in reporting their problems when (by their perception) they've already 'wasted time' trying out the recommended thing is a problem.

ghcup has garnered quite a lot of mind- and market-share - it's a fantastic tool and I heartily recommend it to folks on Linux/Mac for installing ghc and cabal-install for non-Stack projects/workflows. I don't doubt that experienced Haskellers and ghcup users are excited to try out the new Windows functionality and stack management. You'll have your users and your bugs will surface, and it'll be the kind of folks that are already invested.

I do want to clarify that I don't have any reason to believe that ghcup is buggier than any other new software. I just also don't think there's been enough time to determine that it is as reliable as stack's workflow, which has been well-tested for years. I don't think it's necessary to wait years for ghcup to be the sole recommended installer, but ~2 months is definitely not enough time.

@hasufell
Copy link
Contributor Author

hasufell commented Aug 11, 2021

@cdornan

As I said, I am sorry, but I am not reopening that.

I'm afraid that's not a constructive comment.

My point is that it should have been obvious to anybody participating in the process that it had broken down without satisfactory resolution.

I can assure you it's not obvious. You're not speaking for the rest of the people that were involved.

@hasufell
Copy link
Contributor Author

hasufell commented Aug 11, 2021

@parsonsmatt

IME, beginners rarely report bugs or problems - they assume it's their fault, or they don't know where to report bugs, or they don't know how to make good bug reports. They're the worst audience to use as beta testers, if all you want is user feedback.

IME, many new users of ghcup seek help on IRC and they get served swiftly. The ghcup homepage has links to #haskell and #haskell-ghcup via kiwiirc. There's no need to create accounts, post issues or anything. This method has been used since a few years and it has been working well.

I don't think it's necessary to wait years for ghcup to be the sole recommended installer, but ~2 months is definitely not enough time.

Fair enough.

@cdornan
Copy link

cdornan commented Aug 11, 2021

@hasufell I have outlined the key points as I see them. This discussion is now in an utterly non-constructive state, something I am keen to avoid, so I am going to stop here.

@hasufell
Copy link
Contributor Author

I have outlined the key points as I see them.

You haven't. You've just repeated that the stack team doesn't regard ghcup as a satisfactory means to install stack, without any explanation, except that "it should have been obvious to everyone".

This discussion is now in an utterly non-constructive state

@parsonsmatt has raised some valid points that will help the committee make a decision I hope. So there's nothing unconstructive except for your comments.

@parsonsmatt
Copy link

IME, many new users of ghcup seek help on IRC and they get served swiftly. The ghcup homepage has links to #haskell and #haskell-ghcup via kiwiirc. There's no need to create accounts, post issues or anything. This method has been used since a few years and it has been working well.

I'm sure you've helped a lot of people with this, and that's fantastic, but you're filtering for two things: users that didn't give up when they needed help, and users that are comfortable with IRC. That's a shrinking group of people, even among programmers. I've never figured out how to use IRC effectively, and that would be a blocker for me to seek help on something.

The issue that I am concerned with isn't "% of people that ask for help and are helped" - which I'm sure you're doing great with - it's the folks that give up before getting that far.

@hasufell
Copy link
Contributor Author

IME, many new users of ghcup seek help on IRC and they get served swiftly. The ghcup homepage has links to #haskell and #haskell-ghcup via kiwiirc. There's no need to create accounts, post issues or anything. This method has been used since a few years and it has been working well.

The issue that I am concerned with isn't "% of people that ask for help and are helped" - which I'm sure you're doing great with - it's the folks that give up before getting that far.

Sure, but that's a number we don't know about any installation method, including the stack installation script.

That's why I'm not sure that just waiting will get us further if this question needs to be answered.

Even including this question in the haskell survey may not get us further since people who have given up on haskell installation are unlikely to participate in said survey.

@gbaz
Copy link
Contributor

gbaz commented Aug 11, 2021

I think setting a "burn-in" bugfixing period of say two months would be reasonable, in which time people could promote testing of ghcup more widely both in terms of windows and stack support.

At that time, a decision should be made on the basis of data available in terms of if the single solution works well. As a general practice, I think any claim that "x does not work well, but I will not tell you why," no matter from what corner it comes, should not be a blocker. The HF, which haskell.org is affiliated to, states one of its goals, commendably, as "Transparency" and explains "All technical decisions related to HF’s open source projects are proposed and debated in public." So if there is a decision to be made on any technical matter, including in this case, it must be should be made on considerations which can be proposed and debated in public. Suggestions that there are reasons which will not be discussed or explained, but must be respected, undermine the goals of a transparent, open, collaborative software community.

(Edit: People are of course free not to participate in public discussions. But they should in turn have no expectation that their non-public reasoning should then be taken into account.)

Copy link
Contributor

@jaspervdj jaspervdj left a comment

Choose a reason for hiding this comment

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

This is clearly a controversial change. Haskell.org should take community feedback seriously, and this means we cannot merge this as-is; we should seek consensus (ideally) or a compromise. It doesn't look like will reach that in this GitHub thread, unfortunately, so I think the PR should be closed for now.

While this is technically under the purview of the Haskell.org committee, this something we want to collaborate on with the Haskell Foundation, since really we both want to promote Haskell and make things easy for new users.

I think the suggestion by @parsonsmatt to add ghcup as a new option for Windows does make sense; but we probably want to do that in a separate PR, as it doesn't "simplify" the downloads page.

@hasufell
Copy link
Contributor Author

@gbaz right. In fact I'm going to release a bugfix release this week. It probably makes sense to let all the code changes sink in and have sort of a feature freeze for some time.

But I do expect a decision to my proposal PR haskell-org/committee#8

In case it's rejected I hope to get clear reasoning if and when it should be revisited.

@tomjaguarpaw
Copy link
Collaborator

this something we want to collaborate on with the Haskell Foundation

Relatedly, I'd like to make it clear that, although I am a Haskell Foundation board member, in this discussion I am speaking solely in my capacity as a Haskell.org committee member. Chris Dornan is also an HF board member but I believe he is speaking solely in his capacity as representative of Slack (although I am not certain and I don't want to put words into his mouth).

@Bodigrim Bodigrim mentioned this pull request Aug 11, 2021
@cdsmith
Copy link

cdsmith commented Aug 12, 2021

IMO, one clear improvement here would be to list "just install stack and let it install and manage GHC" very prominently in the alternative install methods. I wouldn't personally do it and it shouldn't be billed as a complete install option since it doesn't set up GHC, GHCi, or Cabal to be used directly; but it is a very common workflow that does work for a lot of people and isn't represented well on the current page.

I'm not saying that's enough, but it's better anyway.

@cdsmith
Copy link

cdsmith commented Aug 12, 2021

but I can assure you that the stack team as a whole do not regard ghcup, as it stands, an adequate installer for stack

Why?

I stepped away from the whole effort because it was too exhausting, while nobody was listening across the well-established lines of contention. My views have not changed.

@cdornan As someone who doesn't know where this discussion took place, can you provide a link or anything? Not trying to relitigate; just understand.

@cdsmith
Copy link

cdsmith commented Aug 12, 2021

That's interesting, given that it was you who requested the feature of ghcup being able to install stack. Why did I add it?

@hasufell Regardless of the feelings of the stack team, I want to say that I appreciate ghcup being able to install stack. Having one install tool that can be used for everything is valuable to the Haskell community as a whole. The stack team obviously feels that more people should just use stack for everything and use their own installer so things are less klunky for that specific use case, and they are obviously free to have that opinion; but that doesn't make your work meaningless. I have used stack via ghcup in cases where I just wouldn't have bothered with figuring out how to download and run stack's installer.

@hasufell
Copy link
Contributor Author

hasufell commented Aug 12, 2021

and users that are comfortable with IRC. That's a shrinking group of people, even among programmers. I've never figured out how to use IRC effectively, and that would be a blocker for me to seek help on something.

@parsonsmatt I'm starting to disagree rather strongly on this specific point. Just today I tried to add more communication channels, but they all have worse UX:

  1. Discord: no guest access, so users will have to go through registration, do all sorts of captchas, check their emails, etc etc. It also doesn't allow me to have keyword notifications, so I will basically miss most of the user questions.
  2. Element: again, no easy guest access, see Give us back ILAG guest login, please! element-hq/element-web#9264
  3. Gitter.im: it's dead and notifications have never worked for me
  4. Slack: oh dear

With kiwiirc, you click a link and can start chatting instantly, without registration or anything else. That's the primary goal.

@hasufell
Copy link
Contributor Author

hasufell commented Aug 12, 2021

At any rate, I've added additional help channels to the website and the readme, but I'm afraid this may make support worse, since I only closely monitor IRC (and that's where most of ghcup users seem to be as well). We'll have to see.

@hasufell
Copy link
Contributor Author

hasufell commented Aug 12, 2021

@cdsmith

Regardless of the feelings of the stack team

Well, I don't really know what the stack team thinks, despite Chris' claims.

I want to say that I appreciate ghcup being able to install stack.

There are a couple of ways forward:

  1. leave stack support as-is and take the UX hit wrt duplicated GHC versions
  2. remove stack and focus on cabal support (this might be less confusing for new users, imo)
  3. get the hooks PR merged and integrate properly (this has been tested extensively already... it works well, but there has been no comment in over a month)

@parsonsmatt
Copy link

@parsonsmatt I'm starting to disagree rather strongly on this specific point. Just today I tried to add more communication channels, but they all have worse UX:

UX is a subjective thing. I'm not making any claims about what's better or worse, just what people actually use. IRC has evidently been shrinking since 2003, despite the internet growing remarkably quickly in the same time period.

@hasufell
Copy link
Contributor Author

@parsonsmatt I'm starting to disagree rather strongly on this specific point. Just today I tried to add more communication channels, but they all have worse UX:

UX is a subjective thing. I'm not making any claims about what's better or worse, just what people actually use. IRC has evidently been shrinking since 2003, despite the internet growing remarkably quickly in the same time period.

Sure, but it's an objective advantage to be able to seek help without creating an account or typing in your phone number somewhere.

@goldfirere
Copy link
Contributor

We are in known-dangerous territory here, with an unfortunate history of conflict. May I peaceably suggest that we avoid words/phrases like "of course", "obvious", and "clearly"? I posit that if something is truly obvious, then it does not need to be stated at all. If something does need to be stated, then, the use of these words may make the reader feel out of the loop or less clever than they would like.

For reasons I can only guess at, this page and the installation process for Haskell has evil associated with it, with the power to make conversations highly contentious very quickly. I do not suggest we simply give up in the face of this evil, but instead proceed delicately and with the full knowledge of the evil that is here. In other words, we should all strive to give others the benefit of the doubt -- and then some -- in these discussions. There are a number of closely held opinions here, and the best way, I think, to convince others of your opinion is not to force the issue, but instead to be open to hearing theirs, in the hope that they will reciprocate.

@hasufell
Copy link
Contributor Author

@goldfirere absolutely. I've explained in the past, that I believe that the main goal should be to have one set of instructions and that these may very well be "use the stack install script", see here

I'd be similarly fine with the download page mentioning stack primarily and only having a footnote about cabal, ghcup etc. In that case, we can redirect newcomers to the stack support channels.

My position on this hasn't really changed.

Here's the important part: the download page should not be a battle-field for political parties, but be as simple as possible and give newcomers a pleasing experience. Whatever that may be at a given time. Newcomers shouldn't need to care about any of this.

I've put considerable effort into supporting stack, which was requested, by, well... the Haskell Foundation. If this isn't the way forward, then that's fine and I have less features to maintain!

The impression some people got that ghcup developers have somewhat of an agenda against stack, was a miscommunication within the Haskell Foundation, apparently, amongst other mismanagement issues I have raised with the HF board in great detail. It remains to be seen how you manage your board and your future projects. I hope it will improve.

However, I think this is mainly an issue with haskell.org and so far I have no negative experiences with haskell.org. These are the guys who helped me set up the ghcup homepage, gave me access to github/gitlab/downloads.haskell.org, let me use their GHC CI and so on and so on.

I believe it is totally valid to not merge this PR and put these efforts on hold. Despite some nonconstructive comments here, I believe we made progress:

  1. Apple Silicon is now supported! #126 was merged
  2. we're discussing Update downloads page #125
  3. @parsonsmatt raised valid points that may have an impact on future ghcup development
  4. @cdsmith gave me a useful user experience report (I wasn't sure anyone really is using the stack feature as of now)

I still think that the chocolatey side of things is under-represented (@Mistuke). Another idea I had was to actually inform users of the chocolatey install method on windows when they run the ghcup powershell script and chocolatey is detected on the system. Because, after all, it's a real package manager of sorts.

@hasufell
Copy link
Contributor Author

I'm closing this PR for now, until we have a better picture about what the different stakeholders of the tooling landscape want. Pushing the discussion here seems to have failed, so I hope we can have better discussions in the future.

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.

10 participants