RFC: Moving toward Discord and Discourse for LLVM's discussions

Hello everyone,

Short version:
I’ve set up an LLVM Discord server for real time chat (similar to IRC) and an LLVM Discourse server for forums (similar to email lists):
https://discord.gg/xS7Z362
https://llvm.discourse.group/

Please join and use these new services. They are only partially set up and still very new, so don’t hesitate to improve them and/or reach out to this thread with any issues you see or things you want to fix. Also, both services have dedicated feedback channels.

Do feel free to use Discourse for technical discussions, although try not to create duplicate discussions (any more than you would between the lists and Bugzilla) and make sure the people you’re having the discussion with are fine using Discourse instead of the email list. In case Discourse doesn’t work out, we’ll collect and archive everything so it isn’t lost.

Longer version & more details:
During this year’s Women in Compilers and Tools meeting, folks expressed very clearly that our communication systems cause a non-trivial amount of friction for new people trying to find out about, learn, or contribute to LLVM. Both IRC for chatting and mailing lists for longer-form discussions are unfamiliar, difficult, and often intimidating for newcomers. While I have long been a fan and resistant to change in these areas, the feedback from folks at WiCT was compelling and important for us as a community to address. Even if it means I have to let go of my precious IRC. ;]

We talked to a bunch of people and looked at the options out there and the most promising ones were Discord for chatting and Discourse for longer-form discussions. Meike and I have set up both an initial Discord and Discourse server. You can find them here:
https://discord.gg/xS7Z362
https://llvm.discourse.group/

There is still a lot of work to be done. Notably, it’d be great for folks to clean up and improve the summaries for each of the groups in Discourse, and I’ll be asking various people to help moderate on both Discourse and Discord. If you’d like to help out with a specific set of improvements to these, don’t hesitate to reach out to me or Meike and we can get you set up. Some specific things we’re already working on:

We’re just adding these for now, but I’d like people to seriously try using them. While IRC has served us fairly well, I think it is one of the bigger barriers to entry. Our email lists are more effective, but also have had serious infrastructure challenges over the years: a constant flow of spam, bouncing for several major email providers, etc. Discourse has very powerful email-based workflows available and I think we should seriously consider moving to Discourse long-term instead of the email lists.

I also want to say thanks to all the folks at the WiCT workshop for giving me and others feedback. I was pretty set in my ways around these kind of things, but hearing the kinds of challenges this has posed to people less established in the community was a real eye opener. It takes a lot to speak up like this, and I really appreciate it. I hope this also helps start to address these long-standing issues. Also a huge thanks to Tanya for organizing the WICT workshop and Meike for helping drive this message home to me and doing a bunch of the work getting these things set up. I wouldn’t have been able to do it without her help, especially around Discord bots.

-Chandler

Hello folks,

I sent the message quoted below to llvm-dev@ just now, but it applies to the whole community so sending an FYI here. Probably best to follow up w/ discussion on llvm-dev.

The archive link for reference is here:
http://lists.llvm.org/pipermail/llvm-dev/2019-November/136880.html

Hello folks,

I sent the message quoted below to llvm-dev@ just now, but it applies to the whole community so sending an FYI here. Probably best to follow up w/ discussion on llvm-dev.

The archive link for reference is here:
http://lists.llvm.org/pipermail/llvm-dev/2019-November/136880.html

Hello folks,

I sent the message quoted below to llvm-dev@ just now, but it applies to the whole community so sending an FYI here. Probably best to follow up w/ discussion on llvm-dev.

The archive link for reference is here:
http://lists.llvm.org/pipermail/llvm-dev/2019-November/136880.html

Hello folks,

I sent the message quoted below to llvm-dev@ just now, but it applies to the whole community so sending an FYI here. Probably best to follow up w/ discussion on llvm-dev.

The archive link for reference is here:
http://lists.llvm.org/pipermail/llvm-dev/2019-November/136880.html

Hello folks,

I sent the message quoted below to llvm-dev@ just now, but it applies to the whole community so sending an FYI here. Probably best to follow up w/ discussion on llvm-dev.

The archive link for reference is here:
http://lists.llvm.org/pipermail/llvm-dev/2019-November/136880.html

Hello folks,

I sent the message quoted below to llvm-dev@ just now, but it applies to the whole community so sending an FYI here. Probably best to follow up w/ discussion on llvm-dev.

The archive link for reference is here:
http://lists.llvm.org/pipermail/llvm-dev/2019-November/136880.html

Hello folks,

I sent the message quoted below to llvm-dev@ just now, but it applies to the whole community so sending an FYI here. Probably best to follow up w/ discussion on llvm-dev.

The archive link for reference is here:
http://lists.llvm.org/pipermail/llvm-dev/2019-November/136880.html

Hi Chandler,

One of the things that came up in our discussion at the WiCT workshop as a barrier for new members of the community was the fact that key decisions are often made at round tables at developer meetings without involvement of the wider community, particularly the large fraction that is not able to travel to the West Coast. More broadly, the opacity of the LLVM Project decision making was raised as something that is problematic when attempting to build a wider and more diverse community.

I therefore find it slightly ironic that this is being announced after a 10-person discussion at an ancillary workshop that was attached to the main DevMeeting. This seems like a trend in the wrong direction.

While I am in general in favour of creating new channels to extend the reach of the community, I don't believe that something like this that requires existing community members to participate to be useful should be launched without a wider discussion. This paragraph in your announcement stood out:

> We talked to a bunch of people and looked at the options out there and
> the most promising ones were Discord for chatting and Discourse for
> longer-form discussions.

Who are these 'bunch of people'? Why were they selected to make this decision (and by whom)?

Note that I don't object to the creation of a Discord server (though the 'YOUR CONTENT' section of the T&Cs contains clauses that I'm unwilling to agree to and so I won't be participating), only to the process through which it was set up.

David

When will the project decide to shutdown one or the other? What will the criteria be?

FWIW I’m a fan of using open-source stuff for open-source projects. Discourse looks open source, but Discord doesn’t as far as I can tell (?).

Are the barriers to newcomers really the tools and not just the community’s general attitude toward newcomers?

mailing lists for longer-form discussions are unfamiliar, difficult, and often intimidating for newcomers

Um… what? While I know (via my own children) that folks nowadays use multiple avenues of communication, it’s really hard to imagine email as a mechanism being unfamiliar/difficult/intimidating. Moving to a new mechanism wouldn’t alter the fact of the very large number of strangers participating, which to my mind would be the unfamiliar/difficult/intimidating part.

–paulr

mailing lists for longer-form discussions are unfamiliar, difficult, and often intimidating for newcomers

Um… what? While I know (via my own children) that folks nowadays use multiple avenues of communication, it’s really hard to imagine email as a mechanism being unfamiliar/difficult/intimidating. Moving to a new mechanism wouldn’t alter the fact of the very large number of strangers participating, which to my mind would be the unfamiliar/difficult/intimidating part.
–paulr

In my (18) personal opinion, I feel that email is a somewhat difficult mechanism of communicating, simply because email requires a different and often complex style of formulating an email and etiquette compared to the instant messaging style of being able to send a few worded messages due to the low cost of sending messages and editing messages. The person writing an email would have to make sure that whatever they send is correct the first time since there is no editing of send messages and the only way to keep a history through email is by either the subject or what is quoted.

A few benefit of using Discord or other new mechanisms that I prefer to have over just emailing list are code formatting, being able to group people together (devs of x, list moderators, etc), and the ability to casually talk about stuff other than just meta or code related issues. Being able to communicate with other developers casually helps reinforce that the other devs are also human and not just a bunch of coders behind a computer screen that might judge you for every word you might say.

Some cases I can think of here:

  • unclear how to reply to a mail that was sent before you subscribed to the ML (obvious newbie problem - generally I’d lurk on the web until I wanted to reply)

  • unclear how to create a partitioned space (new mailing list) for a topic

  • subscription state/bounce messages/moderation are all IMO unclear if you haven’t used mailman before

  • the volume of traffic on (effectively-mandatory) lists is so high that it requires using mail filters, most people don’t use those

(A weak +1 to the concern about this change being made by some people in a conference room somewhere - if that’s the decision-making process that’s fine with me, but it’d be great to know that and have a defined way to get issues on the agenda)

+1 from me for the replacement of the mailing list by a web based forum

> mailing lists for longer-form discussions are unfamiliar, difficult, and often intimidating for newcomers

Um… what? While I know (via my own children) that folks nowadays use multiple avenues of communication, it’s **really** hard to imagine email as a **mechanism** being unfamiliar/difficult/intimidating. Moving to a new mechanism wouldn’t alter the fact of the very large number of strangers participating, which to my mind would be the unfamiliar/difficult/intimidating part.

--paulr

+1 here.
mailing lists and phabricator are lasts things on my "new contributor's barrier" list

FWIW I'm a fan of using open-source stuff for open-source projects. Discourse looks open source, but Discord doesn't as far as I can tell (?).

+1. I don't believe this decision was well thought-through.
The Discord's ToS, lack of open-source clients (if you can even call
the situation like that,
feels like ICQ/Skype all over again), centralization, etc; are pretty
'major' regressions.

As a general, not really LLVM-specific remark,
I find it worrying that the noble goal of usability improvement/entry
barrier lowering is being applied with only said endgoal in mind
and no real assessment of the approach taken, the effect produced
by such approach and the cost it incurs on the existing
ecosystem/community/etc.
But this is very much the norm in nowadays world :confused:

Roman.

While I understand the difficulty regarding mailing lists especially
if one isn't used to setting up mailboxes and filters to classify and
label emails and do think a web forum may be easier to use, I would
have concerns over Discord. Unlike IRC which has a fairly open
protocol and many clients and open source server implementations,
Discord is fairly hostile towards 3rd party clients, and has a
concerning history with regards to privacy. While that may not be a
concern for public channels, private messages are another matter
entirely. The protocol isn't entirely friendly and is relatively new,
which makes it inflexible to use compared to IRC. IRC clients are easy
to leave in tmux sessions and reconnect, as opposed to Discord where
something akin to a web browser is required for a somewhat stable
client and 3rd party clients, aside from stability issues, are flat
out against the terms of service (even if this aspect isn't actively
enforced). On top of that there are too many out of scope features
related to software project development, with Discord being far more
than a transit provider, unlike what a lot of IRC networks are classed
under. So as far as Discord goes, very strong -1 in my opinion.

Hey :confused:

It is weird for me to write something to this subject, because... as an newbie I kinda feel like not being 'allowed' to do so. I'm following the mailing list for quite a while and usually use it to ask questions. I'm not sure how to become a bigger part of the LLVM and if I'm suitable for it...
I often use Discord to stay in touch with friends and for my hobby (Furries) - however, I joined exactly one programming related server about Box2D (a physics library) , again to ask questions. I found it pretty difficult to use Discord for that, because there was one channel for asking questions. So I posted my question, but the next reply was to the previous subject, burying my question directly. So I think... this was bad :confused: Sometimes you were lucky that people dug out your old questions but... that rarely happened.
Also the general chats were kinda silent...

Since I'm only asking questions here, I would like a system where questions are not being drowned by other discussions and the mailing list kinda works for me. Sure, after a while my message might be buried as well, but it takes longer then in Discord. Also the titles help me deciding if the subject is of interest for me or not...

Maybe that helped? Sorry if not >o<