ROS Resources: Documentation | Support | Discussion Forum | Service Status | Q&A answers.ros.org

An instantaneous chat platform for the ROS community

We did discuss this topic in our most recent ROS 2 TSC meeting. The forthcoming minutes from that meeting have more details, but I would summarize the consensus as a combination of the following:

  • What we do now isn’t perfect but seems to work OK. Perhaps we should focus on being more explicit early and often in communicating about designs for new features. We can do this using existing tools.
  • Let’s not introduce a new chat tool as an official comms channel because nobody needs yet another thing to check.
  • However, there’s value in migrating certain technical / design discussions to a chat system on demand. For that purpose, it’s not clear which is the best choice; for all its failings IRC still gets the job done in many situations.
  • There could be value in doing a regular call, perhaps called “office hours”, in which the core dev team communicates to whomever’s listening about what’s currently going on in the project, and then takes questions from folks. It would not be a forum for collecting TODOs for the core dev team. The Cartographer Open House was offered as a model to follow.

It doesn’t sound like we’ll setup any service, but honestly I think groups in riot.im (matrix) are very frustrating because (AFAICT) you cannot share permissions between channels. In general it’s just not as nice to use as a discord server if you have more than one or two channels, which means you’re more likely to put all conversations in one or a few channels which isn’t ideal. In discord can have many channels in a server and if you grant someone permissions in the server, then it can apply to any number of the channels. In matrix, again AFAIK, you need to add permissions to each channel separately for a user.

Matrix is definitely better than IRC, but in my opinion it’s still inferior to discord, not due to the quality of, or number of features in, the client, but from a conceptual standpoint. I understand why matrix did their design that way, and it may be the best open standard option out there, but there are a lot of benefits to the way discord organizes its concepts.

Again, kind of a moot point as there doesn’t seem to be interest in changing anything in this space officially.

Freenode runs a bridge. I just tried it out with another channel I manage on Freenode, and it works flawlessly. From a matrix.org (riot.im) account, join this room and the bridge will just do its thing:

#freenode_#ros:matrix.org

They call them “communities” for anyone doing a search.

Communities appear to be a relatively new feature. They do the job, but they kinda suck from a management perspective and from a UI perspective. It’s hard to find the place to add rooms to a community in the UI, rooms are added to communities rather than communities containing rooms, etc. They’ve made the room the top-level entity rather than the community and this has had significant flow-on effects for the management of things.

Looks like riot already has plans for addressing this:

I’m not entirely sure. One of the linked blogs still talks about communities having a mix of community rooms and global rooms, which implies they are not going to change the hierarchy, and in turn that we will not necessarily get easy-to-manage permissions for a bunch of rooms.

That’s exactly the difference I was talking about, you just put it much better than me :slight_smile:

Question: what speaks against Discord?

It has a proprietary protocol and client, though they do use some open source libraries to produce it according to their website (https://discordapp.com/open-source).

The only other thing I can think of is that they have a sizable investment from TenCent which is a China based company that has taken a lot of flak for being involved in censorship within China, see recent uproar about it w.r.t. investment in reddit.com: https://techcrunch.com/2019/02/12/tencent-reddit-nononono/

On the other hand, many companies have investment from them and they do not have a controlling investment in discord either, and there is no censorship for discord as far as I know, but is presumably possible.

Those are the only reasons I can think of not to use discord.

A discord server is available at -> http://rosdiscord.com

Maybe I’m a bit late in this conversation, but here is a suggestion of a tool that was made exactly for that purpose of instant messaging over an open-source projet, with the ability of saving and accessing useful conversations:

I discovered it when ApolloGraphql chose to move away from Slack in the favor of Spectrum, after considering “tools like Discourse, Discord, Gitter, etc…” :

In a nutshell, it is

“a nice blend between realtime communication and threaded forum like discussion”

with some advantages:

  • free and open-source
  • has long-lived channel history (as opposed to Slack)
  • accessible to search engines crawlers: you can find Spectrum discussions from a Google search
  • it also means that you don’t need to have an account, as opposed to Discord or Slack
  • easily searchable: if the discussion you’re interested in already took place, you’ll find it

Here is Apollo’s Spectrum chat if you want to see how it is: Apollo’s Spectrum

Recent, related discussions in the Rust community:

To add to the discussion that @wjwwood points out, here is a link to the genesis topic form Rust Internals that gives some more background. I linked to a particular comment regarding accessibility issues with Discord, as for others in the community with disabilities (also discussed in the reddit thread above) this has been a long standing barrier with Discord.

Hi all, this thread seems to have a lot of suggestions and discussion but from what I can tell it doesn’t seem to reach a decision. Is there an official chat platform for ROS? If so I’d like to start a navigation2 channel.

1 Like

The current consensus seems to remain IRC

OK, a couple questions:

  • What servers / channels are being used?
  • Is there a recommended web based IRC client?

#ros on Freenode is the place - I don’t think there’s been enough chatter to warrant multiple channels to date.

http://wiki.ros.org/Get%20Involved#IRC

The Freenode web client works well
I am personally using Riot web client to connect, it’s also got mobile clients which is nice (note: channel name through Riot is #freenode_#ros:matrix.org) - thanks @ruffsl for the suggestion, it works really well

Also I connected successfully on the first try using HexChat native client on Linux - which is much more than I can say for most IRC clients I have tried

1 Like

IRC (#ros on freenode) is still the default, as @emersonknapp said. The TSC discussed it and it seems that nothing will be changed:

Though there are several unofficial ones now, including a discord server, I believe it was posted above.

Unfortunately IRC is kind of a dead end now (in my opinion) since the bot we used to have which posted the chat history online is now defunct. So if your client isn’t online 24/7 your likely to miss parts of the conversation.

Ironically discourse was in read-only mode when I was trying to reply and could only use our internal slack ask why :stuck_out_tongue:

logging an irc channel should be a solvable problem.

Yeah, but it’s something someone has to maintain. And has many of the same privacy and accessibility issues as the other platforms (in my opinion). We were piggy backing off of botbot.me (https://github.com/BotBotMe) but it’s hosted service is gone now. There weren’t many hosted options when I last set that up. If someone wants to set that up and the rest of the people in the IRC channel are ok with it, then I’ll help with any channel permissions or w/e, but I can’t afford to spend a lot of time monitoring or fixing it if it goes down.

As I introduced to @emersonknapp, you can use the matrix/riot as personal IRC bouncer, so you can later view/search message history while your client was disconnected, thus making the IRC channel immediately more usable:

FYI, the IRC server will stick kick you off if you remain inactive for more that 30 day.