Page MenuHomePhabricator

Evaluate Element as recommended IRC client
Open, Needs TriagePublic

Assigned To
None
Authored By
Tgr
May 3 2019, 3:55 PM
Referenced Files
None
Tokens
"Like" token, awarded by Kristbaum."Like" token, awarded by Aklapper."Like" token, awarded by valerio.bozzolan."Like" token, awarded by Zblace."Like" token, awarded by Akuckartz.

Description

Currently we are using IRC for many functions (it's one of the backchannels for most major events, it's the one of the main places to get tech support, it's a somewhat active nontechnical support forum for various communities and the place to get urgent help from e.g. stewards, it's used for all kinds of real-time tech discussions like deploy coordination), but for all the well-known UX issues it makes it harder for new users to engage the community. We sometimes link to the Libera.chat web GUI as a way of making participation easier, but it's not great. Matrix is probably the main FLOSS alternative today - it's really its own chat network, but it can be bridged to IRC and so a Matrix client can be used as an IRC client. Most notably, their standard web client, Element (formerly called Riot), could be used. This task is about evaluating Element as 1) an alternative interface that can be linked to from a web page, 2) the "officially" suggested IRC client for people new to IRC.

See also: T186061: Evaluate Matrix / Element as the recommended chat system for Wikimedia (as a standalone communication network)


(the part below is outdated and needs to be reevaluated)

Riot roadmap from early 2019, 2019 report / 2020 roadmap (not super relevant since most of these features won't work over IRC)

Major issues:

  • vector-im/riot-web#8646: room search doesn't work. Blocker for recommending as a generic client, not an issue when using it via web links (e.g. for an event). Seems like this is a regression that will be fixed soon.
  • vector-im/riot-web#9264: no guest access. Blocker for using via web links.
  • Freenode antispam features confuse the bridge

Minor issues:

  • privileged actions don't translate well
    • ops using Riot don't receive messages blocked by reduced moderation mode (+mz)
  • vector-im/riot-web#11625: interactions with the bridge are confusing

Event Timeline

Tgr renamed this task from Evaluate Matrix.org / Riot as recommended IRC client to Evaluate Riot as recommended IRC client.May 6 2019, 3:37 AM
Tgr updated the task description. (Show Details)

Web links should probably use https://matrix.to/ which makes it easy to use an alternative client.

Unfortunately the major issues are still open. I would have a hard time recommending Riot as an IRC client. The searching for rooms is hard unless you know what to do, and it's not obvious; nick completion doesn't work; and overall the experience (specifically the IRC bridge experience, not the client overall) feels clunky and not user friendly.

Unfortunately the major issues are still open. I would have a hard time recommending Riot as an IRC client. The searching for rooms is hard unless you know what to do, and it's not obvious; nick completion doesn't work; and overall the experience (specifically the IRC bridge experience, not the client overall) feels clunky and not user friendly.

Nick completion works fine for me (just start typing the name and press tab, or start typing a name prefixed with @). Is that not what you expected or does it not work for you?

Lack of room search is indeed bad, although I wonder how typical it is for other IRC clients to support it. Or do you mean that the whole room join / create dialog (or how to find it) is not obvious?

Do you have more specific feedback about the bridge? I'd like to file / map problems to issues. (Did you use the automatic bridge, ie. did you join a room like #freenode_#mediawiki:matrix.org? Or a real matrix room bridged to an IRC channel?)

Well, there is room search if anyone wonders…. (it's just an example.)

But matrix is not designed as an irc bridge: it is a communication network which can help the interim period of migrating people from irc to matrix by utilising bridges. It is not really good to keep half of the population on irc and the other half on matrix since matrix has lot of features not available for an irc client.

(I am not completely sure about nick completion since it is not a matrix network feature but a *client* feature, and various clients have various nick completion. I believe kostajh means nick completing irc users on matrix... that usually works, but possibly depend on the bridge.)

Riot does have a room search interface, the problem is most Freenode channels don't show up on it. This is probably due to the bridge not being very clever wrt Freenode antispam features (that problem has come up elsewhere as well, e.g. manually bridging to IRC channels with mode +r doesn't work).

I have been using Riot as my primary IRC client. With the exception of the MediaWiki room (which I'm not discussing here), all of my other rooms use the automatic bridge to freenode.

I'm not sure if these are issues with Riot, Matrix, or bridging.

  • There are delays in sending/receiving messages compared to using other IRC clients.
  • Sometimes messages are received out of order when they are sent close together.
  • Performing IRC chanop actions (bans, invex updates, flag changes, etc.) is difficult/impossible. (I gave up on it.)
  • When an IRC channel is +mz (reduced moderation) and I am a chanop, I don't receive the messages that are sent to chanops instead of being blocked. (I do receive them in other IRC clients.)
  • When a *.net *.split occurs, I cannot tell in Riot and there seems to be loss of communication. From other IRC clients, I see my Riot nick part all channels and not rejoin. I cannot figure out how to fix this other than just waiting for a long time. Restarting Riot doesn't help.
  • The room members list is not accurate. For example, if someone changes their nick, the new one is added to the list and the other remains on the list.

Overall, I would not recommend Riot as an IRC client.


nick completion doesn't work

Nick completion works for me.

Nick completion works for me.

This might have been specifically in #wikimedia-staff, which is a private channel. An additional problem there is that the room members list didn't show up at all.

But matrix is not designed as an irc bridge: it is a communication network which can help the interim period of migrating people from irc to matrix by utilising bridges.

In that context, sure that makes sense. And yes maybe we could recommend Riot as an IRC client during a transitional period to Matrix.

I'm not sure if these are issues with Riot, Matrix, or bridging.

  • There are delays in sending/receiving messages compared to using other IRC clients.

This is most probably either the server you're using (matrix.org being almost the slowest possible) or the gateway overloaded. There were cases when ircd limited the connections from the gateway, but I believe these were resolved most of the time with the ircops.

  • Sometimes messages are received out of order when they are sent close together.

In Matrix everything's timestamped (and they are in fact in a directed acyclic graph [DAG]), so when the message is from Matrix to Matrix they are eventually (re)ordered to the correct sequence.

Since iRC is a sequential channel it's not possible to reorder messages so they appear as the gateway receives them (on Matrix) which may be (slightly) out of order. We're interfacing two pretty different systems here.

  • Performing IRC chanop actions (bans, invex updates, flag changes, etc.) is difficult/impossible. (I gave up on it.)
  • When an IRC channel is +mz (reduced moderation) and I am a chanop, I don't receive the messages that are sent to chanops instead of being blocked. (I do receive them in other IRC clients.)
  • When a *.net *.split occurs, I cannot tell in Riot and there seems to be loss of communication. From other IRC clients, I see my Riot nick part all channels and not rejoin. I cannot figure out how to fix this other than just waiting for a long time. Restarting Riot doesn't help.

I believe the "official" gateway should handle generic ircd features (especially bans) but iRC flags and Matrix security levels are very different and sometimes hard to match [for the gateway developers].

  • The room members list is not accurate. For example, if someone changes their nick, the new one is added to the list and the other remains on the list.

It probably depends on what the gateway ("bot") can translate. Since nick changes are logged on iRC this sounds like a missing feature rather than something cannot be done. Gateway developer topic. :-)

Overall, I would not recommend Riot as an IRC client.

I would say I agree if you are administering the channel or the channel uses special irc features.
For simple public channels and for normal participants it's probably pretty useable.

Overall, I would not recommend Riot as an IRC client.

I would say I agree if you are administering the channel or the channel uses special irc features.
For simple public channels and for normal participants it's probably pretty useable.

I can agree with that.


  • When a *.net *.split occurs, I cannot tell in Riot and there seems to be loss of communication. From other IRC clients, I see my Riot nick part all channels and not rejoin. I cannot figure out how to fix this other than just waiting for a long time. Restarting Riot doesn't help.

For the majority of my channels, waiting didn't help this time. I had to leave and rejoin each channel, including getting invites for all of the private ones. (When using other clients, I can join the channels without an invite to the channel ACL or invex.)

Tgr renamed this task from Evaluate Riot as recommended IRC client to Evaluate Element as recommended IRC client.Oct 15 2022, 3:12 PM
Tgr updated the task description. (Show Details)

(For some reasons I cannot assign a Thumb up or heart reaction to this Task since it says «No such token ""!». Please assume that there is another thumb up there.)

https://phabricator.wikimedia.org/token/give/PHID-TASK-uu74ri76fnq4p7oj7ssc/

EDITED: After the 5° attempt it worked. Now you have my thumb up.

((@valerio.bozzolan it just worked for me but with strange (?intentional) delay of few seconds))

Fully on board with this, but would love that we have a table of feature comparison
(I can live without animated gifs and similar decorative aspects of Telegram/Discord/...)
and semi-functional bridges between all (persistent and not) chat clients used in WM.

Still hopeful of Mattermost / Zulip, but any FLOSS convergence is better then .COM hell :-)