whatwg / meta

Discussions and issues without a logical home
Creative Commons Zero v1.0 Universal
93 stars 161 forks source link

Consider moving chat off Freenode #210

Closed jgraham closed 3 years ago

jgraham commented 3 years ago

Freenode's ownership has changed and it's unclear if it will remain a good venue to host the WHATWG chat.

If we move there are several possible options (implictly assuming the constraint that it should remain free):

One advantage of moving off IRC might be better tools for moderation and better history without requiring a tool like IRCCloud.

domenic commented 3 years ago

Although the ownership change sounds unsavory, I'm unsure if the impacts of the new ownership on WHATWG community members would be negative. Does anyone have information on what the actual downside of the new ownership is? I personally don't recall sharing any information with Freenode besides an auto-generated password for NickServe.

jgraham commented 3 years ago

I think the direct concern is that freenode.net either stops operating an IRC service or becomes less reliable. If I understand correctly all the people running the infrastructure have quit, so I think the medium term future of the service is up in the air, particuarly if there's a mass-exodus.

sideshowbarker commented 3 years ago

I agree the “all the people running the infrastructure have quit” fact seems to suggest we may have a relatively acute/urgent need to consider getting some other place set up where we can reconvene chat for the community.

And while it’s great to see how quickly libera.chat came together, maybe we should take the opportunity to really consider moving on to something other than IRC.

And as far as alternatives to IRC, it seems like in practice the main practical alternative other than Matrix is Slack.

I don’t feel strongly either way about Matrix vs Slack. I know Matrix is a great place for discussions with Mozilla devs and with people working on MDN. As far as Slack, I guess we should note here that chat for both the Chromium and WebKit projects now takes place on Slack instances those projects set up (after migrating away from Freenode IRC last year), and along with those, W3C now has a Slack instance too — as does the Open Web Docs project (where there’s now probably at least as much MDN discussion going on as there is in the MDN room on Matrix, and probably will be a lot more so going forward).

So I suppose that all seems to suggest that setting up a WHATWG Slack instance could be the thing that aligns most closely with where most of our closest peer communities are these days. ⬅ [subsequently coming to see Matrix as a better choice]

More details… As far as the reliability risk with Freenode, it seems like without the infrastructure continuing to be maintained by people who understand it, the timeframe for it becoming much less reliable is possibly just days or a few weeks. It sounds like kind of an “operating on a wing and a prayer” state (or whatever the appropriate metaphor is). There’s also the fact we’ve occasionally had problems with spammers/abusers on the channel (and Freenode as a whole has had even worse problems with that) — and as far as I know the only reason those problems were mitigated was through the efforts of the people running the infrastructure doing some abuse-control measures. And so without them around any longer, it seems likely it may just be a short time before we start to have more serious spam/abuse problems on the channel again. Further, given the circumstances — that essentially a hostile takeover of Freenode seems to have happened — I would imagine there’s also the risk of Freenode now getting hit with some genuine attacks on scale (botnet/DDOS stuff), intentionally designed to bring it down or at least make it as unusable as possible. And while it sounds like libera.chat has the right people on board already to keep it relatively reliable and usable, I think we have a responsibility to consider the known concerns with IRC itself as a place for discussion — concerns which Mozilla documented in their decision to move away from IRC and over to Matrix. IRC just does not seem to provide us with the same capabilities that Matrix and Slack and such do for mitigating abuse and for helping shield users of our community from abusive behavior. And so given that, deciding to switch to libera.chat or any other IRC-based mechanism at this point would not seem to be the responsible choice as far as giving the safety of community members the kind of consideration we should be.
hsivonen commented 3 years ago

On the Matrix vs. Slack issue, Matrix seems better from the dogfood point of view of creating standards for multiple interoperable Web engines. (Slack really likes to push users away from browser and has at least one single-engine feature that could be multi-engine.)

sideshowbarker commented 3 years ago

On the Matrix vs. Slack issue, Matrix seems better from the dogfood point of view of creating standards for multiple interoperable Web engines. (Slack really likes to push users away from browser and has at least one single-engine feature that could be multi-engine.)

Yeah, I’m starting to understand and appreciate the thought that led Mozilla to end up choosing Matrix over the alternatives.

And after spending a modest amount of time myself looking into details of the alternatives today, I’m now hoping we put the strongest consideration into Matrix — or at least that we don’t just follow the trend into Slack that some of our peer communities have followed, and end up contributing to further silo-ization/fragmentation into Slack.

More details In particular, as far as Slack: after posting my previous comment, I spent a little time looking further into Slack — including trying to figure out how we could set up a Slack “workspace” (which I’ve never done), and how we could make any Slack workspace discoverable once we had set it up. And the outcome of that is, I found it pretty frustrating to find the info I was looking for. And I also found that stuff in Slack space is inherently not easily discoverable. The Slack model seems to silo/fragment “workspaces” into their own little islands all over the place, with no connections among them. The Slack model seems to be built for the enterprise market — optimized for enterprise needs to the detriment of broader ones. (I suppose that’s probably already well-known, and the name “workspace” should have clued me in to that…) To put it in other terms, Slack really doesn’t seem like an ideal tool for building or fostering open communities — it seems best for the case where you want to have isolated communities where newcomers aren’t actually expected to wander in very easily. Matrix in contrast seems like a better home for a community where newcomers are expected to show up, and encouraged to. And since the \#whatwg channel has been a gateway through which a lot of active contributors to WHATWG work over the years have first come in, preserving as much as we can of the characteristics of openness and discoverability it has would be useful in helping ensure we still have a good place for future newcomers to wander in and end up getting actively involved. And Matrix seems a lot better suited for making that happen than Slack does. (A libera.chat IRC channel would clearly also have good openness and discoverability, but with the downsides of openness to abuse, and inherent difficulties in dealing with abuse when it happens — among other things that I guess were taken into consideration when Mozilla moved to Matrix.)
sideshowbarker commented 3 years ago

I guess we should also be taking Discord into consideration. I have zero experience personally with Discord, but I’ve so far gotten the impression that it might have some possible downsides (some of which are like the IRC downsides — or at least like some particular IRC community characteristics) that might not make it such a great choice for us.

jgraham commented 3 years ago

It appears that W3C IRC is now bridged on matrix.org which seems like it could be a point in favour of matrix if you can use it as a complete replacement for IRC when doing web standards work.

GPHemsley commented 3 years ago

Consider me:

I know nothing about Matrix (and did not follow Mozilla once it left IRC), but I see the main benefits of IRC as being the fact that there is an open protocol that is widely supported, allowing folks to use whatever app they want to connect and not have to be beholden to some proprietary space, as well as the simplicity in its chat functionality.

Slack does not meet either of those requirements, and, IIUC, Discord doesn't either. (Plus, Discord is really still geared primarily to the gaming community.) Zulip is basically just open source Slack (IMHO), so doesn't really meet the requirements either. I don't know too much about Gitter, other than that any time I've encountered a project that uses it, it's basically a ghost town.

jgraham commented 3 years ago

I also get on well with the "bring your own client" nature of IRC. But I think those of us who do are in a minority, and the overall balance of arguments is strongly in favour of moving away from IRC:

Given those two points I think remaining on IRC is probably the wrong choice, and may be harmful to the long term future of the project.

domenic commented 3 years ago

I'm pretty against Matrix based on my experiences with it. If we're going for open protocol, let's stick with IRC.

If we want to move to a closed protocol, Discord is the most user-friendly choice in my experience between Discord and Slack. But both are OK.

I'm still pretty strongly on the side that we should stick with the current Freenode solution until/unless something bad happens. I personally don't plan to move before then.

GPHemsley commented 3 years ago

@jgraham

  • The properties of IRC aren't well understood by people who aren't used to it. For example I've tried to mentor outreachy applicants who were surprised that they were unable to disconnect without losing history. Adding that feature to IRC either requires extensive setup or using a third party service like IRCCloud (which typically require payment).
  • IRC has relatively poor tools for moderation. We've occasionally had problems with spam, and I understand that people who are likely to be the target of abuse or hassasment online often avoid IRC. If we are knowingly using a service that is unwelcoming to some groups, that would arguably fall foul of the commitment in the participant agreement to provide a safe working environment.

Given those two points I think remaining on IRC is probably the wrong choice, and may be harmful to the long term future of the project.

I think these two are salient points that we should not ignore.

I personally maintain my own logs of channels while I'm in them, so I at least have the history of what I've seen and have it restored between sessions, but I have also used the various log archives that are available for the WHATWG channel specifically to facilitate searches. I also am not clear on what moderation tools IRC lacks that are available elsewhere, but that's primarily because I haven't taken the time to educate myself on the details. (I'm sure Mozilla documented this thoroughly during their migration to Matrix. And I do know that Slack in particular lacks any moderation tools, even those available in IRC.)

But none of that matters, because I'm not the audience we would be trying to solve for: I'm already here, and I'm already using IRC.

@domenic I'm still pretty strongly on the side that we should stick with the current Freenode solution until/unless something bad happens.

If this is the option we take (and I'm not clear that it's where the consensus is heading, but I've only just found out about Freenode's issues today), then I think we should instead take the opportunity to properly evaluate all our options in an attempt to maintain the good of what we have and improve along the lines described above.

Krinkle commented 3 years ago

Note that IRC and Matrix could live side-by-side fairly well (yes, I'm aware of imperfections and gotchas with bridging). This would allow people to use a free and modern hosted service with web app, or desktop/mobile app (via https://app.element.io/, or Element apps); whilst also allowing all existing users to connect via their current IRC clients and server (e.g. Freenode, or Libera Chat, or both!).

I'm personally not (yet) super fond of Matrix. It feels a bit quirky to my habituated IRC fingers. But, for a lot of people I think it significantly easier to get into. There are significantly more IRC clients out there than Matrix/Element clients, and so I'm sure somewhere out there is a great client for everyone, including many that have broken away from the traditional IRC look-n-feel. But, finding that can be quite a challenge for a newcomer. The small landscape around Matrix, on average, including Element's own apps, seem to be good a good starting off point.

Based on how things evolve in the coming years, we could then transition to another platform from Matrix, or keep supporting both, or transition to only Matrix if/when it feels "good" for all stakeholders.

There's a number of other projects I've seen switch to, or support, Matrix in this way (e.g. Pixelfed, between Freenode #pixelfed and https://matrix.to/#/+pixelfed:matrix.org).

annevk commented 3 years ago

I'm personally somewhat fed up with the spam on IRC and the lack of easy-to-use moderation tools. We're using Matrix and Slack at work and both are fine. WHATWG SG is currently using Slack and W3C seems to use it as well (at least in the privacy space). Big downside of Slack in my opinion is that you essentially end up with a tab for each Slack workspace. I like the Slack emoji reactions best though.

jgraham commented 3 years ago

I think the point about slack being mainly designed around a closed-community workspace is an important one. Anything that requires specific invites or is limited-seat is a significant barrier to open participation. That seems like more of a problem for WHATWG than W3C (the SG being an exception of course because it's explicitly closed membership).

hsivonen commented 3 years ago

Regarding Discord: Previously, they had terms of use that prohibited work use. I think that's now probably fixed, but now there appear to be some other limits. I haven't investigated this properly, but these things that have anecdotally come to my attention about Discord terms make me think: Why deal with that stuff when there are other options?

Regarding Zulip: It's used for Rust compiler work. It's a rather strange mix of chat and message board. Maybe that's good if you get used to it, but it sure is weird when looking for an IRC replacement.

(I agree with what @jgraham said in the previous comment about closed workspace vs. open for participation.)

andreubotella commented 3 years ago

It seems like LogBot is shutting down soon. Although there's no mention of why it's shutting down, it's almost certainly a result of this hostile takeover. I believe this gives us one more reason to switch services.

In any case, regardless of whether we move the chat to somewhere else or find another logging bot, whenever LogBot publishes the #whatwg archives we should probably host them, as with lists.whatwg.org.

foolip commented 3 years ago

Are there #whatwg IRC log archives somewhere now that we can make a copy of?

sideshowbarker commented 3 years ago

Are there #whatwg IRC log archives somewhere now that we can make a copy of?

https://freenode.logbot.info/_shutdown says:

Once the IRC bots have stopped running I will make archives of each channel's logs available for download.

But I reckon we might at any time be able to get an archive of the logs so far, if somebody just asks glob if he can make us an archive.

jgraham commented 3 years ago

It has also been widely reported that the network admins have taken over several hundred channels for the "policy violation" of mentioning other IRC networks in the /topic.

I don't feel able to tell would-be contributors to join Freenode at this point. I fear that if we just let this slide instead of making a definite decision, we're not only implictly endorsing the way the network is being run, but also valuing a minor inconvenience for people already working on WHATWG standards above our ability to attract new people and keep the project healthy.

@whatwg/sg what's the process to reach a conclusion here? I think the scope of the question is "which synchronous communication channel(s) should we advertise as the official on whatwg.org and consider moderated according to the code of conduct?".

annevk commented 3 years ago

So based on the discussion so far it seems the more serious options are:

  1. Matrix
  2. IRC (Libera)

Is that correct?

Can we do both by setting up the matrix channel as a bridge?

(I'm not sure the SG is best suited to make a decision here, but perhaps it's a good escalation point if we reach some kind of impasse.)

jgraham commented 3 years ago

I believe it's not currently possible to bridge Libera from matrix, but there's a process underway which will make it possible soon.

I think my argument against bridging is that it adds an additional layer of complexity which might be unnecessary. I expect we'd point new users to matrix before suggesting they use IRC since that's much more like the majority of other chat services they're likely to be using. It's also unclear to me (and maybe someone who already bridges to the FreeNode channel can comment) how it affects the functionality of matrix. Do we lose features like reaction emoji (and maybe in the future threads) which don't map 1:1 with IRC? Also, once logbot stops, you'll need to use matrix for logs anyway (unless someone else stands up a logger, or you're using a client with custom logging). So whilst I see that "IRC with an officially endorsed bridge" feels like an easy transition path, I'm not sure it's actually the best long term decision.

jgraham commented 3 years ago

<Bakkot> annevk tc39 is officially moving to matrix, we've just decided

andreubotella commented 3 years ago

I've tried out a few of the Matrix features that don't map to IRC on the #freenode_#whatwg:matrix.org bridge (which is powered by matrix-appservice-irc), and Matrix will let you use those features just fine – it's just that from the IRC side you might not have the best experience.

Here's how they map: - Reaction emoji can be added and removed without any traffic to the IRC side. ![image](https://user-images.githubusercontent.com/8225977/119723389-ad1cf180-be6d-11eb-9e03-53ddfb7eb245.png) - Editing a message will result in the edited version being sent on the IRC side, with an asterisk in front. ![image](https://user-images.githubusercontent.com/8225977/119723566-e2294400-be6d-11eb-9bbb-147b37ca8a4b.png) ![image](https://user-images.githubusercontent.com/8225977/119723910-5532ba80-be6e-11eb-8589-1aa7319772cf.png) - Deleting a message from Matrix will do nothing on the IRC side. ![image](https://user-images.githubusercontent.com/8225977/119724030-772c3d00-be6e-11eb-9117-e5fe913b5850.png) ![image](https://user-images.githubusercontent.com/8225977/119724064-827f6880-be6e-11eb-937e-057b842ab153.png) - Quoting a message will prepend a shortened version of the quoted message. ![image](https://user-images.githubusercontent.com/8225977/119724196-b2c70700-be6e-11eb-985a-3f39dc46c29e.png) ![image](https://user-images.githubusercontent.com/8225977/119724230-bfe3f600-be6e-11eb-9567-ea72c8486f48.png) https://freenode.logbot.info/whatwg/20210526
MayeulC commented 3 years ago

@jgraham

<jgraham >So the freenode_ one is presumably a bridge to this channel. I think nox's objection to the :mozilla.org one is reasonable (or at least I think the concern that the channel should be in a vendor-neutral space is reasonable)

Since most people here do not seem to be familiar with how matrix works, allow me to point out something: On Matrix, a room exists simultaneously on every server. It's only identified by its room id, which is expected to be globally unique. New messages propagate to all participating servers (and are checked against existing rules: a mod can't demote an admin, for instance). Room IDs are unwieldy, and you need to know at least one participating server to join it from a new server, so there is also the concept of room aliases. Anyone can create aliases on their server to point to the room, although one alias can be chosen as the "canonical" one.

Long story short: whatwg:matrix.org and whatwg:mozilla.org (and :ponies.im and :kde.org and whatnot) can all lead to the same room. Server administrators can also override aliases if someone squats them.

About clients, some third-party clients work quite well already. I can mention fluffychat, nheko and gomuks: I tend to use them more often than Element. Also, neochat has progressed quite well lately.

annevk commented 3 years ago

Update: a Matrix room has been established, https://whatwg.org/chat has been updated with details (thanks @sideshowbarker!). For now it still mentions IRC details.

GPHemsley commented 3 years ago

There are now 24 of us (and counting) in the #whatwg channel on Libera Chat. However, the channel is not currently registered and has no topic.

Given how things are escalating on the Freenode side, I think it would be a good idea to get stuff moving on the Libera Chat side, even if Matrix becomes the preferred option for newcomers.

Have any efforts yet been made to make that happen? (I don't know if we'd want to register an entire project, but there is a backlog if we haven't gotten in on that yet.)

annevk commented 3 years ago

I think if Freenode falls we should use Matrix exclusively, especially now that TC39 has picked it as well.

Krinkle commented 3 years ago

Matrix now has a first-party bridge with Libera, suggesting that this is doable now.

https://twitter.com/matrixdotorg/status/1398366903404482564

andreubotella commented 3 years ago

Just as a reminder, these are the current chats and their Matrix bridges:

If we decide we do want to keep the Libera channel, it would be interesting to plumb it into the Matrix room.

sideshowbarker commented 3 years ago

About Freenode, it seems worth noting for the record here: Among the changes Andrew Lee unilaterally made to the source of the Freenode policy document — without any community discussion at all — was a change that completely deleted an implicit prohibition on “political, racial, ethnic, religious or gender-related invective” that had been part of the policy document.

See https://github.com/freenode/web-7.0/pull/513/files and the comments posted at https://github.com/freenode/web-7.0/pull/513 (before Andrew locked it) and at https://github.com/freenode/web-7.0/pull/515 (so far not locked yet).

However, one thing that discussion misses is that the change was subsequently reverted by https://github.com/freenode/web-7.0/commit/53a47a094283bfef9adda5d8ea5fb8b369d7caa1#diff-0e382b024f696a3b7a0ff3bce24ae3166cc6f383d059c7cc61e0a3ccdeed522c and so the original language is still part of the Freenode policy document published at https://freenode.net/policies.

And another thing that discussion misses is, even with that language removed, the Freenode policy document does still in fact have other language implicitly prohibiting “discrimination on the grounds of e.g. race, religion, gender or sexual preference”:

In accordance with UK law freenode has no tolerance for any activity that could be construed as:

  • incitement to racial hatred
  • incitement to religious hatred

or any other behaviour meant to deliberately put upon a person harassment, alarm or distress. We do NOT endorse or encourage discrimination on the grounds of e.g. race, religion, gender or sexual preference and operate with a zero-tolerance policy for libel and defamation.

So my reading of all that is, at least what’s now in the Freenode policy document isn’t completely inconsistent with the WHATWG’s own code of conduct. And it seems Andrew has learned from it all and is unlikely to unilaterally make further changes like that again.

But the narrative here is complicated, and it remains unclear what kind of actual governance Freenode has, and what actual organizational commitment in practice to providing the kind of “friendly, safe, and welcoming environment for all, regardless of level of experience, gender, gender identity and expression, age, sexual orientation, disability, physical appearance, body size, race, ethnicity, religion, nationality, technology choices, or other similar characteristic” the WHATWG is committed to.

So it seems questionable whether it’s consistent with WHATWG’s code of conduct for https://whatwg.org/chat to continue directing community members to any channel on the Freenode network. To me personally, it doesn’t clearly seem inconsistent with the WHATWG code of conduct to do so — but it’s not clear to me that other people wouldn’t make a very different assessment.

foolip commented 3 years ago

Things just got bizarre: https://twitter.com/tabatkins/status/1403490330985439235

I was also banned. I had a hard time caring about the original issue, feeling like maybe it was just maintainers failing to get along and being childish, like some ffmpeg fork drama.

But this makes me quite unimpressed, and my personal preference would be that we save any logs we can find, archive those on whatwg.org, and then stop linking to the Freenode channel.

annevk commented 3 years ago

I created https://github.com/whatwg/whatwg.org/pull/369 for the latter. Per https://freenode.logbot.info/_shutdown we should be able to get our logs for IRC at the end of this month and host them somewhere.

globau commented 3 years ago

Per https://freenode.logbot.info/_shutdown we should be able to get our logs for IRC at the end of this month and host them somewhere.

For reasons I've chosen to shutdown logbot early. You can grab your #whatwg logs from https://archive.logbot.info/

MayeulC commented 3 years ago

@globau wouldn't a torrent and/or IPFS make for a perfect, long-term home for these logs? Since they aren't going to change anytime soon, a content-addressed system looks perfect to me. That way, even if you shut down the web mirror after a while, interested parties might still seed it.

This is also something the Internet Archive might be interested in.

Thanks for your logging service ;)

annevk commented 3 years ago

@bakkot perhaps we could convert the IRC logs to something Matrix-compatible and have your log host those as well? The source files do not seem to be too different.

bakkot commented 3 years ago

Sure, that should be pretty straightforward. I can't promise I'll get to it right away though.

bakkot commented 3 years ago

Alright, done: https://matrixlogs.bakkot.com/irc-whatwg/2006-12-01#L13. My log host is not as full-featured as traditional IRC log hosts like logbot, mind - in particular there's no search, since it's hosted on github pages and therefore strictly static content.

Let me know if there's other historical web platform channels you think it would make sense to add. I automated it (obviously), so it's straightforward to add new channels.

annevk commented 3 years ago

Thanks @bakkot, that looks great!