trio icon indicating copy to clipboard operation
trio copied to clipboard

Real time chat and other venues for community interaction beyond github issues

Open ghost opened this issue 8 years ago • 36 comments

Would you be open to creating a gitter community for Trio so we have a place for helping people with learning and using Trio and its ecosystem? Is there already an IRC channel or something out there?

ghost avatar May 21 '17 05:05 ghost

Excellent question! I've been meaning to do something like this, but have been slow to respond because I'm cranky about the available options :-).

  • IRC is obviously a thing, but it's extremely unfriendly to those who haven't already been initiated into its arcane secrets. Obviously I have a bouncer set up etc., but I hesitate to demand that of users. Though I guess we could direct them to IRCCloud. It really seems like we could ought to be able to do better in 2017.

  • Gitter is a thing, it works for lots of projects, but I'm not very happy with it – the UI tends to bog down in my browser, it's a walled-garden proprietary model, and it's always sending me notifications hours late or not at all. I'm not that worried about lock-in on a chat room, switching is not that hard, but again it seems like we ought to be able to do better. Also, I seem to have somehow gotten into a state where there's a python-trio organization (with a distorted logo, for some reason), but it contains zero rooms and I can't add any.

  • Slack is popular but extremely unfriendly for this purpose, because of how difficult it makes it for someone new to jump in and start talking. Also super proprietary.

  • Zulip is a neat open-source chat program, there's a company behind it that I'm told is willing to host it for us for free, and it's possible to do login-via-github, though they don't yet have any kind of anonymous access. The downside here is that it's really designed more for team collaboration; the UI is somewhat confusing and overwhelming when you first log in. Every conversation is labeled with a room + a tag, so conversations thread, but each thread is broken up over days, and when you first log in you don't get "chat log + blinking cursor to add something", you get a bunch of different colored boxes with conversation fragments and have to click on one to reply or else click "start new topic". If anyone's curious you can log into their project chat server here and look around.

  • There are some other open-source chat apps that exist: Matrix and its Riot client. Mattermost. Probably others. I don't know too much about these and don't see an obvious way to set them up. I'd rather not have to host something myself.

  • Discourse is generally in this area, not quite the "quick chat" thing but it overlaps. Unfortunately the hosted version is $100/mo which is super expensive for a hobby project. (And they mighhht do free open source hosting but I don't get the sense that they're interested in talking to small projects.) I could host it myself somewhere, but I'm pretty sure eventually something would break and it would take me a few weeks to fix and ugh.

  • We could do a mailman mailing list. Python.org would be happy to host it.

Is it really 2017 and IRC and mailman are the only decent free options? Anyone else want to weigh in? Maybe I need to try and figure out who to contact to get gitter to unwedge itself...

njsmith avatar May 27 '17 10:05 njsmith

Well, I have managed to create a gitter channel (though apparently it can't be named trio because... I don't know why): https://gitter.im/python-trio/general

Let's give it a shot and see how it goes

njsmith avatar May 28 '17 06:05 njsmith

Mailman3 is another option – they've moved to a kind of hybrid mailing list / web forum model. But (a) this still has the hosting problem (at least until python.org switches, if they do?), and (b) it's not as mature yet as options like Discourse. Here's an example Mailman3 list.

njsmith avatar May 29 '17 02:05 njsmith

Hi there!

I don't have a deep experience with too many community management software out there, but If it may be of any help I've had a pretty good experience so far with Google Groups. Amongst its features it has:

  • Decent thread/topic management
  • Quite good "reply to" and "reply privately" options with good quotes visualization/management (which I find really important to get a good question/answer flow)
  • Good upload pictures/files management (from emails also)
  • Nearly instant notifications of new threads/replies
  • Works pretty well (threads and replies) both from web and email. I use to switch from one to the other without problems quite often
  • Oh, and quite good searching capabilities! 😄

Regarding gitter, I've never used it till now, but I've just looked at some of the existing communities (as for example Django) and I've found it to be a real mess! Conversations are superposed one with the other in a flat view and it has been difficult for me to follow any of the threads because you don't have any indication of which answer is in reply to which question ... Maybe it's a wrong use of gitter by the Django people or it's just me? What I've liked alot from gitter is its good integration with GitHub issues and so on (I've even seen some bots to create GitHub issues right from gitter itself).

By the other hand, Mailman3 looks much better to me than Gitter, althoug I don't have also any experience with it.

xgid avatar May 29 '17 06:05 xgid

Hi @xgid! Thanks for sharing your experience.

Google Groups unfortunately has two show-stoppers: (a) export abilities are awful: last I checked the only way to get your data out are through scripts that scrape the HTML. I know some projects that have tried to switch away from GG and this was a big problem for them. (b) They've blacklisted my primary email address for inscrutable google reasons, so my emails always bounce unless I remember to manually change my from address every time I make a post or a reply. (There's some undocumented rule like... you don't need a gmail address to use GG, but if google thinks that some email address belongs to someone who also owns a gmail address then that email address can't be used to sign up for groups.)

Comparing gitter to Google Groups or mailman3 is sort of apples-to-oranges: they're really designed for different things. Gitter is like IRC or Slack: a tool for real-time, back-and-forth, mostly-emphemeral chat. On the other hand, Google Groups/mailman3/Discourse/etc. are for long-form asynchronous discussion with stable archives. (In the Olden Days every open source project would have an IRC channel and also a mailing list; the two kinds of tools are often complementary.)

I'm kind of mixing the two approaches together here because Github issues already provides a more-or-less-decent venue for asynchronous design discussions for developers, so I feel like the next biggest thing missing is a friendly, low-barrier-to-entry way for folks who are experimenting with trio, and for this I'm not sure which approach is better.

njsmith avatar May 29 '17 09:05 njsmith

(a) export abilities are awful

That seems an important limitation, I agree.

Comparing gitter to Google Groups or mailman3 is sort of apples-to-oranges: they're really designed for different things. Gitter is like IRC or Slack: a tool for real-time, back-and-forth, mostly-emphemeral chat. On the other hand, Google Groups/mailman3/Discourse/etc. are for long-form asynchronous discussion with stable archives.

I also agree, but was somehow confused by your initial list of available options which mixed both approaches.

My only contribution then is that I find Gitter, despite its ephemeral nature, quite unfriendly to use when the number of participants grows so that various discussion threads are held at the same time. Although I don't think this to be a problem for trio, at least in the short time, I'm quite surprised that in 2017 there's no better UI for multi-threaded real-time chats. I'll investigate a little bit on that and see if I can find anything better.

xgid avatar Jun 01 '17 19:06 xgid

I also agree, but was somehow confused by your initial list of available options which mixed both approaches.

Sorry, yeah, that's because I was confusing :-)

multi-threaded real-time chats

If this is the goal, then zulip is probably the answer; the trade off is that the threading is perhaps a bit overwhelming for new users.

But for right now, gitter is probably fine, and by the time it becomes a problem then there are some possibilities:

  • Gitter is exploring some in this direction – I'm not sure how well it matches our hypothetical future needs but we can see when the time comes. They're also apparently going open source

  • Zulip, mailman3, matrix, etc will keep maturing

  • By the time this is a problem, we may be large enough to justify hosted discourse

  • Maybe something else will turn up :-) I'm definitely interested to hear if you find anything.

njsmith avatar Jun 01 '17 21:06 njsmith

Anyone else want to weigh in?

python-trio/messaging :trollface: (actually that would be pretty cool, similar to how various popular frameworks have larger-scale examples).

As a non-gitter user, gitter seems fine; mypy uses it too, and I'll probably find more reasons in the future.

buhman avatar Jun 13 '17 19:06 buhman

As a non-gitter user, gitter seems fine; mypy uses it too, and I'll probably find more reasons in the future.

One thing I'm scared about is if the channel is empty. I personally have set Gitter to " shut up even if I'm mentioned", otherwise I'm interrupted every 2 minutes. And seeing in some channels users asking questions without getting answers for week at a time is (IMHO) more harmful that not having a channel.

If you post something in gitter after a month is equivalent to /dev/null, while any other async (😉 ) channel seem better. (I consider gitter as sync, as you can't really go away and come back to the discussion later).

python-trio/messaging :trollface: (actually that would be pretty cool, similar to how various popular frameworks have larger-scale examples).

Not that bad of an idea, some projects have repos/orgs for discussion. Actually a github issue is not that far form a "Topic", you can subscribe/unsubscribe individually, or per-repo, and GH UI push messages via websocket. The only drawbacks are:

  • you can't start a thread from a mail client.
  • you need a GitHub account.

Honestly the second one is not a drawback for me, and I think the first one I can do without.

Carreau avatar Jun 13 '17 19:06 Carreau

have repos/orgs for discussion

I was actually trying to suggest we write yet-another-irc-competitor in trio.

buhman avatar Jun 13 '17 19:06 buhman

I was actually trying to suggest we write yet-another-irc-competitor in trio.

that's also possible :-)

Carreau avatar Jun 13 '17 19:06 Carreau

I do have the trio gitter set to notify me on everything. (You can do per-channel overrides to your default notification settings.) Sometimes their email notifications have been flaky for me, but hopefully no one will be waiting a month for a response...

njsmith avatar Jun 13 '17 22:06 njsmith

This discussion came up today (ironically enough) on Gitter, and some limitations (including the Android app being subpar, and for me a dislike of the UI), but that it's advantage is the very low barrier to entry with just signing in with GitHub and being instantly logged in.

Discord seems like a better fit, despite the marketing, with it being a proper chat platform, having a similarly low barrier to entry (click the invite, enter your username, done), and with some other OSS organisations moving to it (including Vue, Yarn and the Opus foundation): there's even a full page on the Discord website for it - https://discordapp.com/open-source. It also has some useful features such as special support for GitHub webhooks and standard markdown support (including HLJS code blocks), so it matches Gitter in that part.

Fuyukai avatar Aug 30 '18 19:08 Fuyukai

@pquentin also pointed out this link to the rust folks talking about trying discord: https://internals.rust-lang.org/t/exploring-new-communication-channels/7859/32

[Edit: Some more projects "We're moving to discord" announcements: Home Assistant, Vue.js]

@fuyukai does discord save all the logs? (As compared to eg slack's free plan, where logs are limited.) Can you export them?

Can you link to bits of chat from the bug tracker? (Not absolutely necessary, but I find this helpful given that gitter is where we do a lot of user support, which often generates follow up bugs.)

Is it possible to get a "preview" of the chat before signing up for an account?

Discord iirc has multiple channels as a core feature – is it possible to push everyone into a single channel for now? (I don't think we're big enough for it to make sense to have multiple channels, and it feels like there are benefits to everyone seeing what everyone is doing.)

How well does discord work on mobile browsers? I've used it on desktop, but I just tried logging into a channel on my phone and what I got was this full screen, clipped, impossible to close overlay...

screenshot_20180830-131800

njsmith avatar Aug 30 '18 20:08 njsmith

does discord save all the logs?

Yes, forever, unless deleted.

Can you export them?

Not currently.

Can you link to bits of chat from the bug tracker?

There's a feature in Canary (the test track) that lets you link directly to messages, so soon enough yes.

Is it possible to get a "preview" of the chat before signing up for an account?

Unfortunately no.

Discord iirc has multiple channels as a core feature – is it possible to push everyone into a single channel for now?

Yes, just don't make any other channels. (Although, it would probably be better to have a #main and a #github channel to separate the webhook spam).

How well does discord work on mobile browsers?

Never used it on a mobile browser but presumably poorly - the way you're meant to do it is with the apps (which are both reasonably good quality).

Fuyukai avatar Aug 30 '18 20:08 Fuyukai

@Fuyukai Is it possible to have a single URL which (a) if you're already a member of the chat, puts you into the chat, (b) if not, invites you to pick a username and then puts you into the chat?

njsmith avatar Aug 31 '18 01:08 njsmith

That's what an invite URL does (e.g. https://discord.gg/GjN3c4).

Fuyukai avatar Aug 31 '18 02:08 Fuyukai

@Fuyukai the reason I asked is that I tried clicking on an invite link for a discord I'm already a member of, and it gave me the "So-and-so invited you to join [discord name] ... Accept invitation?" page instead of putting me in the discord.

njsmith avatar Aug 31 '18 03:08 njsmith

Probably worth writing down the issues we've had with gitter here. The good parts: the onboarding is super-simple – you can view chat, and follow links to archives, totally anonymously; logging is ~three clicks if you're already logged into github. How to use the interface is obvious at a glance: just type in the box at the bottom. Unlike IRC, the history is persistent and it supports code blocks. The desktop web interface basically works fine.

The bad parts: the mobile UX is super buggy, in frustrating ways.

If you use the mobile website, then there's no notification support, and it likes to send half-written messages any time you glance at it funny. (Some things that gitter mobile web treats as hitting send: pasting any text. accidentally touching anywhere outside the text entry box. switching to another app or tab to look something up.)

If you switch to the native android client, then the auto-send thing is reduced (though not entirely eliminated), and you get notifications. The notifications cannot be configured to be silent, though, which is annoying. And, what's worse, the client regularly enters a glitched state where it stops showing other people's incoming messages. It's even common to get a notification, click on it, and find that the notified message isn't visible. Or to talk and think people aren't responding, but they are, you just can't see it. The only solution seems to be to force-quit the app regularly (e.g. go to the app switcher, and push the gitter tab off to the side to remove it from the list). This is not a rare problem; earlier today I had to do this like, 3 times in an hour.

How many people care about mobile? Hard to say. It annoys me, but I can cope if I have to – I'm more worried about accessibility for new users. And we see people mentioning hitting these issues and getting frustrated pretty regularly.

njsmith avatar Aug 31 '18 05:08 njsmith

I occasionally used the Gitter mobile client on iOS and it has similar issues to the Android one. It's good to have mobile access and it's nice to have notifications when you need them, but it's not a tool one can rely on.

sorcio avatar Aug 31 '18 09:08 sorcio

Working on closing up tabs, so here are some more notes I accumulated a while ago:

Rust trying out discord, and some discussion: https://internals.rust-lang.org/t/exploring-new-communication-channels/7859/147

More discussion in the Rust context. Has lots of discussion specifically comparing Discord and Zulip (with people's experiences!): https://internals.rust-lang.org/t/where-should-the-compiler-team-and-perhaps-working-groups-chat/7894/58

Summing up some of the trade-offs:

  • Discord: Terrible accessibility for blind people. If you want to use it on mobile, then native app is mandatory, but good quality. Some companies block access to Discord from their networks because it gets classified as a "game website". Really robust moderation options, for both admins and for individuals. Public logs / linking is weak.

  • Zulip: open-source, written in python, very active community, and I know some of the devs – though their priority is (rightly) on features needed by paying customers. Reasonable moderation for admins, though not as much for individual users (e.g. currently no way to mute/block another user). On mobile, the regular website is fine, or there are mobile apps that aren't as mature yet as Discords, but are under active development. Public logs / linking is weak.

In general, everyone seems to agree discord is easier for users to get started, while zulip is preferred once you get used to it. (One typical reaction.) In particular, zulip's "threading" system makes it much better at handling multiple conversations happening at the same time, and conversations that run over longer periods. It's focused on serious collaboration, not just chat. This is tough, because we kind of care about both use cases a lot. I really really wish Zulip had a lower-friction onramp...

Another one I looked at: spectrum.chat. Interesting hybrid chat/forum model... basically a forum but the UI encourages single-line posts that appear in real-time for anyone else looking at the thread. open-source. pretty immature – they're working on initial versions of mobile apps now (https://github.com/withspectrum/spectrum/issues/1803), and moderator tools are planned but they haven't even started working on them (https://github.com/withspectrum/spectrum/issues/2451). So probably not worth serious consideration yet.

njsmith avatar Oct 19 '18 01:10 njsmith

@njsmith fwiw spectrum joined GH and is offering everything for free now. I personally haven't touched it yet but figured I'd add the info.

goodboy avatar Dec 02 '18 19:12 goodboy

@tgoodlet oh interesting. Well, I guess we'll see whether this is the kind of acquisition where it means they get more resources to fill in the missing pieces, or the incredible journey kind.

njsmith avatar Dec 02 '18 20:12 njsmith

Heh, in case we do want to take advantage of Discourse's free hosting for OSS projects: we recently passed the old qualification requirement (2000 stars), and they dropped that requirement a few months ago :-) https://twitter.com/discourse/status/1059411135382872064

njsmith avatar Jan 15 '19 02:01 njsmith

Maybe it's time to get a Discourse forum? It's a forum, so complementary to the chat channel, and it seems like we might be getting to the point where it'd be helpful to have a place where people can ask longer-form questions, show off their work, etc. Any thoughts?

njsmith avatar Feb 02 '19 09:02 njsmith

A forum sounds like a mighty good idea. I do have a decent hosting solution I'm happy to donate space on if that's an issue. You're welcome to a subdomain on my qap.la domain or if you've one you'd like to use etc etc.

Ninpo avatar Feb 02 '19 12:02 Ninpo

@Ninpo thanks for the offer! I think we're going to try hard to stick to managed hosting though – I've seen too many projects waste too much time on sysadminning instead of working on their actual project :-). And Discourse-the-company offers free hosting for OSS projects.

njsmith avatar Feb 02 '19 18:02 njsmith

OK, I filled out the request-a-free-forum form at https://blog.discourse.org/2016/03/free-discourse-forum-hosting-for-community-friendly-github-projects/, so we'll see what happens next :-)

njsmith avatar Feb 03 '19 02:02 njsmith

Maybe it's time to get a Discourse forum?

Yes please! As I commented some months ago I find Gitter UX really annoying. I know it's intended for ephemeral real-time conversations, but trying to follow any conversation there if you are not directly involved is nearly impossible as soon as two conversations get intermingled. And GitHub has also it's limitations.

I've been lately following Discourse with great interest and I find it really well thought. One of the greatest features I've found so far is the possibility to move off-topic messages to other topics to keep the topic "focused": it's the same than refactoring a too long function into several functions to keep away from spagetti-code, but applied to discussions. It's a brilliant idea!

Of course, it demands some moderation effort to keep it all organized... but at least you have the possibility! 😉

I'll be following this with great interest.

xgid avatar Feb 04 '19 03:02 xgid

The Discourse forum seems to be working well. Is there anything left to do here?

oremanj avatar Mar 12 '19 11:03 oremanj