Page MenuHomeSoftware Heritage

Move real-time discussion away from Freenode
Open, HighPublic

Description

Freenode has recently changed management. The change of management caused most of the volunteer staff to resign, and create a new irc network over at libera.chat.

The way the change in management was conducted, and recent moves by the admin team (e.g. https://www.devever.net/~hl/freenode_abuse and the following change of policy, https://github.com/freenode/web-7.0/pull/513/commits/2037126831a84c57f978268f090fc663cf43ed7a) makes Freenode a poor choice of discussion network going forward.

A lot of large communities have moved away or are in the process of moving away, e.g. Wikimedia, Ubuntu, Gentoo, Django, ... At this point, within a week, 2/3ds of the channels I was joined to have moved away from Freenode, and moving SWH away would remove a good chunk of these remaining channels.

To avoid getting land grabbed, the Software Heritage channels have been registered on OFTC and libera.chat. We've also applied to a Project namespace on libera.chat, which was granted over the weekend.

During the week, we also discussed whether it would be a good idea to move off of IRC as a /native/ discussion environment (e.g. in favor of native Matrix rooms, which would be then plumbed to IRC). I think this may be a good idea, seeing how around half the staffers use matrix natively, and how we put matrix forward in our documentation. This would give us better control over the Matrix side of things than what is offered when using the "portaled" rooms backed by an IRC channel. For instance, it would allow us to keep users who are idle on matrix for more than 30 days.

Unfortunately, going matrix-native with matrix -> IRC plumbing seems to imply:

  • managing a matrix homeserver
  • creating the rooms on that homeserver
  • managing an instance of the appservice-irc
  • getting that instance of the appservice-irc connected to an irc network (and get an exemption to connect all our matrix ghosts)
  • managing the channels on the irc network

One of the advantages of having our own home server would be allowing authentication to be wired to our keycloak instance, rather than need staff to create their own matrix identity somewhere else. I'm not sure that's a very compelling benefit compared to the cost of hosting all this stuff.

There's also the possibility of using non-native bridging via a bot, which would give us the maximum control on both sides for the least need of own administration, but the resulting experience on both sides is pretty bad.

So, here are the choices in front of us:

  1. matrix or IRC native
    • 1a. Stay IRC-native, use matrix portal rooms; live with users idle on all of matrix for 30 days leaving the channels
    • 1b. Go Matrix-native, maintain own homeserver and irc appservice
    • 1c. Be native on both sides, maintain irc/matrix bridging bot
  1. choice of IRC network for the future
    • 2a. stay on Freenode
    • 2b. move to libera.chat
    • 2c. move to OFTC

Event Timeline

olasd triaged this task as High priority.Mon, May 24, 2:01 PM
olasd created this task.

My own choices would be:

1a > further discussion > 1c > 1b
2b > 2c > further discussion > 2a

Thanks for raising this. I wanted to do so too, but couldn't find the time :)

I'm for staying on IRC native (for now, until there are better and less costly for us solutions for Matrix → IRC bridging).
And also for moving from FreeNode to Libera.
(Identical choices as yours, if you want condorcet votes.)

But. There is another factor here which is timing.

I don't see any immediate threat for us as a project in staying on FreeNode, and I do see the cost of coordinating our move away (not everyone on the team is very fluent with IRC, and we might have to do some hand-holding to migrate, which is not particularly easy to do while remote).
Also, given how big the mayhem has been, I do not exclude that things might change again on the FreeNode side. (I'm not holding my breath for it, but it's been less than a week since the drama started, so it's too soon to predict what's gonna happen mid-term.)

We should ask ourselves what would be the best timing to migrate away. I think a good answer could be: "shortly before we start leaving for summer holiday", i.e., end of June / beginning of July.

In T3341#65356, @zack wrote:

But. There is another factor here which is timing.

Yeah, that's a very good point.

I don't see any immediate threat for us as a project in staying on FreeNode, and I do see the cost of coordinating our move away (not everyone on the team is very fluent with IRC, and we might have to do some hand-holding to migrate, which is not particularly easy to do while remote).

Agreed, although I think most of our not-irc-fluent users are using the matrix bridge, so it would just be a matter of pinging them with the links to the new channels, and making sure that they join them.

Also, given how big the mayhem has been, I do not exclude that things might change again on the FreeNode side. (I'm not holding my breath for it, but it's been less than a week since the drama started, so it's too soon to predict what's gonna happen mid-term.)

Seeing some of the people who have been brought on board by the new management, I don't see that happening for the better.

We should ask ourselves what would be the best timing to migrate away. I think a good answer could be: "shortly before we start leaving for summer holiday", i.e., end of June / beginning of July.

Yeah, I think aiming for a migration in June would be the most sensible timeframe. I think the main blocker right now if we were to migrate to liberachat, is the lack of a maintained matrix bridge, so we'll have to wait a bit anyway.

another option: Matrix native, but use https://github.com/matrix-org/matrix-ircd so we don't need to host a homeserver (afaict). I don't have any feedback on how good it is though, and it seems to lack in features.

another option: Matrix native, but use https://github.com/matrix-org/matrix-ircd so we don't need to host a homeserver (afaict). I don't have any feedback on how good it is though, and it seems to lack in features.

@seirl seemed to strongly discourage using that when we talked about it a few days ago, but I don't think he went into the specifics of why.

Super clunky, a lot of message types aren't handled, some messages get filtered out. I don't recall all the specifics but I tried it around a year ago and it was really bad.

So, I've finally found the way to "plumb" a native matrix room to an IRC channel (there's a link for setting up "bridges/integrations" on the right hand side bar of the element UI, which you can get to by clicking the "info" button in a room).

The libera.chat bridge is up as well (at least in test mode), now.

So I propose doing the following:

  1. Create a +swh:matrix.org community to group together our channels.
  2. Create the following native rooms in Matrix: #swh-devel:matrix.org, #swh-team:matrix.org, #swh-sysadm:matrix.org, #swh-offtopic:matrix.org. Give matrix admin access to staff members with a native matrix presence; add the rooms to the swh community.
  3. Plumb the four rooms to their counterparts on irc.libera.chat
  4. Explicitly ping all staff members to join the new channels and help them migrate
  5. Update the website to point at the new rooms
  6. Explicitly ping all users of the channels to join the new rooms
  7. Close down the old rooms (probably with a bot just repeating that we've moved, to avoid getting nuked away by the new freenode management)

I think the first 4 steps should be happening pretty easily, and 5,6,7 will take a while longer. I'm not sure if we can ask matrix admins to close down / redirect a portaled room, but it's probably worth attempting it.

The matrix rooms and new irc channels have been setup.

Drafts for the team and public announcements are being worked on at https://hedgedoc.softwareheritage.org/dNi52gFbRh2xmTU0oDPJdA

Pages that need an update to help the team migrate :

Pages that need an update once the team has joined the new channels :

In T3341#65984, @olasd wrote:

Pages that need an update to help the team migrate :

(done)