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

Investigate switching from Gitter to another chat option #13039

Closed
nzakas opened this issue Mar 12, 2020 · 38 comments
Closed

Investigate switching from Gitter to another chat option #13039

nzakas opened this issue Mar 12, 2020 · 38 comments
Assignees
Labels
accepted There is consensus among the team that this change meets the criteria for inclusion archived due to age This issue has been archived; please open a new issue for any further discussion chore This change is not user-facing

Comments

@nzakas
Copy link
Member

nzakas commented Mar 12, 2020

We currently use Gitter for a lot things in the ESLint project:

  1. The community chatroom where people can ask for help in real time
  2. To host publicly-visible TSC meetings
  3. For private group chats

While it has worked reasonably well, recently the quality of Gitter has dropped considerably. Our most recent TSC meeting saw members needing to refresh the entire page just to see what other people have written. The mobile app doesn't work particularly well, either. It's time to consider if the lost productivity is enough to warrant switching to Slack.

(It's worth noting that the Open JS Foundation uses Slack and would be able to help us set it up.)

We'd like some feedback from the community on this. Are there pros and cons for switching to Slack?

@nzakas nzakas added evaluating The team will evaluate this issue to decide whether it meets the criteria for inclusion chore This change is not user-facing labels Mar 12, 2020
@nzakas nzakas self-assigned this Mar 12, 2020
@btmills
Copy link
Member

btmills commented Mar 12, 2020

I could see it working very well for team chats. I have it open all day already, and it works well for other teams I'm on. My primary concern would be about the community chatroom. With Gitter, anyone can sign in with GitHub OAuth, but having to sign up for a hypothetical ESLint Slack channel might introduce friction. @kaicataldo has the Babel team noticed that being an issue?

@kaicataldo
Copy link
Member

I haven’t personally noticed any issues, but I wonder if others on the Babel team might be willing to chime in. @hzoo @nicolo-ribaudo

Slack is a much nicer experience all around, and while signing up for a separate account is a little more overhead, I don’t think it’s a significant one. If anything, it might increase the quality of conversations we can have.

Do we know how we want to handle the limit for the free tier? Does Slack so open source plans/pricing?

@nicolo-ribaudo
Copy link

We have never received any complaint about the need to create an account, and no one ever asked for help about how to do it. However, this is something that it's hard to receive feedback about.

We currently have the plus plan (https://babeljs.slack.com/plans/plus), but I don't know if they give it to all the OSS communities or if it's something custom for us. Probably @hzoo knows.

@nzakas
Copy link
Member Author

nzakas commented Mar 13, 2020

If we leverage the Open JS Foundation Slack, they already have a way to self-invite to the organization.

@platinumazure
Copy link
Member

I agree Gitter has been going downhill. They now support threading but it wasn't very well implemented, and it's hard to read items in a thread (especially on mobile).

I'm 👍 to at least trying Slack. Just in case Slack accessibility proves to be an issue, it may be worth emphasizing that we also have a mailing list and other options for getting support.

@webOS101
Copy link
Contributor

The friction for creating a Slack account can be a barrier. There are groups I was never able to join because their slack auto-invite didn't work properly. Also, if you think the Gitter threads are bad (they are), you won't be much more pleased with Slack threads.

The big advantage of Slack is that the clients are much more reliable than Gitter (though you'll have to figure out the best way to handle the GitHub integrations since just dumping issues and PR's into the main channel will choke conversation. That's one thing that Gitter does well for GitHub projects).

@kaicataldo
Copy link
Member

Another alternative is Discord. They’ve embraced being a platform for open source projects, and it looks like a number of well-established open source communities are using them. It would also solve the issue of worrying about payments/message limits, as well as being a low barrier for entry (though it is another service to create an account with).

@nzakas
Copy link
Member Author

nzakas commented Mar 13, 2020

Oh cool, Discord looks like a good option. I’m going to play around with it.

FWIW, we could setup Slack channels on the OJSF account and not need to worry about payments or message limits.

@kaicataldo
Copy link
Member

FWIW, we could setup Slack channels on the OJSF account and not need to worry about payments or message limits.

This sounds like a good way to test out Slack! My only concern with that is that it might be difficult for people to find, given the larger org and all the channels.

@anikethsaha
Copy link
Member

anikethsaha commented Mar 14, 2020

Even I would back the discord option. they do have a rich voice channel features. Their interface is much cleaner than slack and gitter .
Reactiflux uses it and they have a huge number of members in it ( approx 100K ) and I don't think they faced any major issue!
here are some useful links

@nzakas
Copy link
Member Author

nzakas commented Mar 15, 2020

I and @kaicataldo have been playing with Discord and it does seem like a good option. The one thing we still need to figure out is how to get a transcript of a text channel so we can publish TSC meeting proceedings easily.

@nzakas nzakas changed the title Investigate switching to Slack from Gitter Investigate switching from Gitter to another chat option Mar 15, 2020
@anikethsaha
Copy link
Member

I dont have much solid experience with this case but discord support bots so I think that can fix it.

not sure though, never tried creating one!

@kaicataldo
Copy link
Member

kaicataldo commented Mar 16, 2020

I haven’t found an existing tool that does this, but it definitely seems doable. Discord’s API has an endpoint for obtaining messages in a given channel.

I wonder if the simplest way for us to implement an automated version of this would be to have a GitHub Action that triggers when a PR is merged in eslint/tsc-meetings, and if said PR is adding meeting notes (maybe denoted by a label?), to use this endpoint to obtain all the messages from that day and generate a nicely formatted transcript. I’m assuming this would be committed as a separate text file in the eslint/tsc-meetings repo, but I don’t have a strong opinion about that.

We could also shoot for something much lower tech to begin with and have a generator that one of us can run locally and commit the results.

I’d be happy to work on this after I finish my current task.

@nzakas
Copy link
Member Author

nzakas commented Mar 16, 2020

Oh cool. My gut tells me having a tool we can run manually is the best starting point (we can always look at integrating with GitHub Actions later)

@kaicataldo
Copy link
Member

That sounds good to me!

@nzakas
Copy link
Member Author

nzakas commented Mar 18, 2020

Found in my travels:
https://github.com/Tyrrrz/DiscordChatExporter

@kaicataldo
Copy link
Member

Ah, that looks great 👍 Nice that they have a Docker image to use and everything. Once we can verify that works, I think we could be ready to make the switch. Thoughts?

@nzakas
Copy link
Member Author

nzakas commented Mar 19, 2020

I agree. Maybe we should start by moving the private team chats over first to try it out?

@kaicataldo kaicataldo added the tsc agenda This issue will be discussed by ESLint's TSC at the next meeting label Mar 26, 2020
@kaicataldo
Copy link
Member

kaicataldo commented Mar 26, 2020

TSC Summary
Gitter has become unreliable (this affected our last TSC meeting), and @nzakas and I have been looking into Discord. It allows us to have unlimited messages for free and has become the home for a number of OSS communities. The only thing missing is the ability to point to a meeting transcript, but it seems doable using Discord's APIs and so shouldn't be a blocker.

TSC Question
Do we want to move our private team chats to Discord to try it out? If we like it, we can then move our public chats as well.

@nzakas
Copy link
Member Author

nzakas commented Apr 3, 2020

We decided on the 2020-03-26 meeting to start by moving our private team chats to Discord.

@nzakas
Copy link
Member Author

nzakas commented Apr 3, 2020

Now that we have the Discord server set up, should we move the general chat over? This would involve updating all of our docs, too.

@kaicataldo
Copy link
Member

kaicataldo commented Apr 3, 2020

Sounds good to me! Want to also note that I'd love to have a place where we can write down guidelines/a code of conduct for the chat. I've seen other Discord servers solve this by creating a locked #welcome channel that's pinned to the top of the channels. We don't have anything like this currently, but I think it's helpful to have a list of rules to point to if/when we have to do any kind of moderation.

@ljharb
Copy link
Sponsor Contributor

ljharb commented Apr 3, 2020

Please don't use discord :-/ the UX is terrible. Slack or IRC is much more preferable to me.

@nzakas
Copy link
Member Author

nzakas commented Apr 4, 2020

@kaicataldo do you consider that a blocker? If not, can you open a separate issue to discuss?

@ljharb we’ve been testing out Discord the past couple weeks and it’s been a pleasure to use, especially compared to Gitter. It’s a better fit for us than Slack or IRC, so I hope you’ll join us.

@kaicataldo
Copy link
Member

@nzakas Sorry, I should have been clearer. I do consider this a blocker before advertising the public channels. I think it’s important to set these expectations from the get-go so that everyone can feel safe and we are able to moderate effectively.

I’ll come up with some language and share it with the team. In the meantime, I think it’s fine to start getting those rooms set up!

@nzakas
Copy link
Member Author

nzakas commented Apr 4, 2020

Sounds good. 👍 Is there a reason we can’t just link to our current code of conduct?

@kaicataldo
Copy link
Member

I’d be 👍🏼 for using that to begin with and iterating as we go along. I just want to make sure it’s visible to folks who join.

@nzakas
Copy link
Member Author

nzakas commented Apr 4, 2020

Looks like the old CoC links don’t forward to the new one. All of our links are broken. :( Here’s the current location:
https://github.com/openjs-foundation/cross-project-council/blob/master/CODE_OF_CONDUCT.md

I think we should try to stick with that rather than trying to add on later. It seems pretty comprehensive.

@kaicataldo
Copy link
Member

I actually hadn’t realized that changed and so hadn’t seen the new one. It does look quite comprehensive. SGTM!

@nzakas nzakas removed the tsc agenda This issue will be discussed by ESLint's TSC at the next meeting label Apr 9, 2020
@Tyrrrz
Copy link

Tyrrrz commented Apr 16, 2020

@nzakas I maintain DiscordChatExporter and also use eslint. Let me know if you guys have questions or need help.

@nzakas
Copy link
Member Author

nzakas commented Apr 16, 2020

@Tyrrrz thanks! I think the biggest question is if there's some way to automate exporting chat text? And if there's a way to filter what is exported (just one day of text instead of everything that's ever been typed)?

@Tyrrrz
Copy link

Tyrrrz commented Apr 16, 2020

I think the biggest question is if there's some way to automate exporting chat text?

There is a CLI (also containerized), so you can use it for automation scenarios. The simplest thing is probably create a cron job that runs an export every once in a while, but I'm not sure what do you have in mind.

There's some info on automating exports on the wiki: https://github.com/Tyrrrz/DiscordChatExporter/wiki/Troubleshooting#how-can-i-set-DCE-to-export-automatically-at-certain-times

Also, the wiki has loads of helpful information (kudos to @renanyudi).

And if there's a way to filter what is exported (just one day of text instead of everything that's ever been typed)?

Yes, you can limit the export to a certain time period, down to milliseconds if you want to.

@nzakas
Copy link
Member Author

nzakas commented Apr 17, 2020

Awesome, thanks I’ll dig into wiki.

I think ideally we want to automatically run an export through a GitHub action the day after each TSC meeting (or triggered by a pull request merge...still TBD)

@Tyrrrz
Copy link

Tyrrrz commented Apr 17, 2020

Both should be fairly easy to do 👍

@nzakas
Copy link
Member Author

nzakas commented May 15, 2020

I think at this point it makes sense to make the move to shut down our Gitter and move everything to Discord. One big thing is we will need to update our docs to mention Discord everywhere Gitter is currently mentioned.

@nzakas nzakas added accepted There is consensus among the team that this change meets the criteria for inclusion and removed evaluating The team will evaluate this issue to decide whether it meets the criteria for inclusion labels May 15, 2020
nzakas added a commit that referenced this issue May 15, 2020
* Docs: Gitter -> Discord URL

* Fix issue template errors
@nzakas
Copy link
Member Author

nzakas commented May 15, 2020

Documentation updates are complete on the website and in this repo. Leaving this open until we complete the automation piece for TSC meetings.

@haykam821
Copy link

For people who want to stick with Gitter or IRC, perhaps a chat bridge could be set up.

@kaicataldo
Copy link
Member

Closing this since we now have the ability to generate TSC Meeting transcripts in Discord.

@eslint-deprecated eslint-deprecated bot locked and limited conversation to collaborators Nov 27, 2020
@eslint-deprecated eslint-deprecated bot added the archived due to age This issue has been archived; please open a new issue for any further discussion label Nov 27, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
accepted There is consensus among the team that this change meets the criteria for inclusion archived due to age This issue has been archived; please open a new issue for any further discussion chore This change is not user-facing
Projects
None yet
Development

No branches or pull requests

10 participants