Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RFC 0094] Use Matrix for Official Chat #94

Merged
merged 4 commits into from
Sep 2, 2021
Merged

Conversation

ryantm
Copy link
Member

@ryantm ryantm commented May 20, 2021

@nixos-discourse
Copy link

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/join-us-on-matrix-at-nix-nixos-org-migrating-from-freenode/13166/23

Copy link
Member

@grahamc grahamc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for opening this.

I quite liked what @qyliss said about this issue:

the decision should be analyzed, and the choice of move should be justified, and we should be open to a different long term outcome if that’s what the community once

and here is probably a good place.

For the past few days, I'd been getting 1-2x daily updates on background information from various Freenode staffers. The status as I interpreted it was largely "things are weird, but will probably be fine." Early this morning I got a text saying it was not fine and the crisis had begun.

From that point forward I was trying my best to do the most right thing at each step, while still ensuring the future of the community chat, and moving before any potentially catastrophic result.

Before this morning Eelco and I had discussed lightly options like Libera, Mattermost. Options like Discord were dismissed out of hand for being closed. Matrix's federation and available cheap, hosted, and namespaced home servers was very compelling.

This morning it came to a head, and felt like urgent action was necessary. We decided a move to Matrix was most likely to work well and satisfy a vast majority of requirements of the community. I agreed with Eelco's perspective that if we're moving, we should move to somewhere that we control the domain for and has richer features.

Matrix isn't my favorite choice: Freenode in particular is very important to me, and IRC holds a special place in my heart. I don't love the identity issues that Matrix poses ("where should my homeserver be?") I wish there was more client diversity. I wish Nixpkgs / NixOS channels had Synapse and element-desktop versions which supported Spaces!

Also, I think Matrix is a good choice. I think the openness is a good match for the community. I think the richer format and support for multi-line pastes and screenshot uploads is really valuable. For a long time the number of Matrix users on IRC has been fairly significant, but having a fairly poor experience with the collapsed "sent a long message" messages. I've heard from a number of people today who are somewhat notorious for being grumpy about things like this. A common theme was "day one is rough, but I think this is going to be really good." I hope they chime in on this if they're comfortable.

If I could go back and make this decision over a longer period of time with more community input early, I absolutely would. In my thread on Discourse I said we'll see how this goes, by which I meant we're trying this, but let's hear from the community too. I hope people can see my that my intent was good, because my intention here was to protect this community in the best way I knew how.

rfcs/0094-use-matrix-for-official-chat.md Outdated Show resolved Hide resolved
Copy link

@sumnerevans sumnerevans left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for doing this @ryantm.

As a very new member of this community, I've been impressed by the professionalism around this transition. As I've been over on Matrix for a few years, I want to provide as much support as possible to this migration. I hope that my suggestions and comments are seen as such.

rfcs/0094-use-matrix-for-official-chat.md Outdated Show resolved Hide resolved
rfcs/0094-use-matrix-for-official-chat.md Outdated Show resolved Hide resolved
@peterhoeg
Copy link
Member

I hope people can see my that my intent was good, because my intention here was to protect this community in the best way I knew how.

There are 2 separate issues - what is the long term plan (which this RFC addresses) and being forced to action due to the freenode situation. And regardless of the outcome of this RFC, I (speaking in my own capacity only of course) am very thankful for your immediate action.

@ryantm ryantm force-pushed the matrix branch 2 times, most recently from 4824d52 to 4e2f64e Compare May 20, 2021 03:24
@mweinelt
Copy link
Member

Another motivation I can see is that we could possible motivate users to migrate away from the Discord situation, as the UX might be more to their liking than IRC. Does anyone think that is a reasonable assumption?

@ryantm
Copy link
Member Author

ryantm commented May 20, 2021

Another motivation I can see is that we could possible motivate users to migrate away from the Discord situation, as the UX might be more to their liking than IRC. Does anyone think that is a reasonable assumption?

I've added a section talking about Discord.

@ryantm ryantm force-pushed the matrix branch 2 times, most recently from fc8067c to 1e917df Compare May 20, 2021 03:49
@utdemir
Copy link
Member

utdemir commented May 20, 2021

I wish Nixpkgs / NixOS channels had Synapse and element-desktop versions which supported Spaces!

Just wanted to mention, element-desktop I have supports Spaces (I am on nixpkgs-unstable, rev a39809ade01). I actually think it was a pure server-side update since there is no major element-desktop version is released recently.

@sumnerevans
Copy link

@utdemir

Element 1.7.28 is required for stable Spaces (previous Element versions used the unstable prefix). Although NixOS/nixpkgs#123373 is in nixpkgs-unstable, it's still not in nixos-unstable: https://nixpk.gs/pr-tracker.html?pr=123373

Also, as you mentioned a new Synapse version is required (1.34.0). It was just merged this morning: NixOS/nixpkgs#123355 and isn't in either nixpkgs-unstable or nixos-unstable: https://nixpk.gs/pr-tracker.html?pr=123355

@Taneb
Copy link

Taneb commented May 20, 2021

I see this as solving two different issues.

Firstly, moving away from Freenode. I'm definitely in favour of this. With the takeover and the departure of the staff, it feels necessary to me.

Secondly, moving away from IRC entirely. I agree that if this is something we want to do, it'd be best to do this now. I'm not convinced that this is something we want to do. The simple fact that it's a chat platform I'm not already using makes it awkward for me personally; I don't want to run Matrix just for NixOS.

@vikanezrimaya
Copy link
Member

The exodus from Freenode was a little bit of a shock to me. Some communities are migrating to other IRC networks, NixOS seemingly migrates to freenode. I struggled to find a suitable homeserver to jump in but eventually found an okay choice - and that was pretty much the only friction point I've had with Matrix.

Overall, I'd be in favor, as it's easier to share a few lines of code when asking or answering questions on Matrix. Additionally, it will allow me to participate from mobile devices without juggling nicknames or setting up a bouncer (which was a thing I wanted to do but never managed to).

Additionally, I approve of the homeserver that NixOS.org has now. Sad that we can't open registration for community members, because I definitely would've snatched an account there as a cool way to represent the best Linux distro in the world :3

<small>ok now i'm rambling too much</small>

page](https://nixos.org/community/index.html) to point to our Matrix
Space (#community:nixos.org) that has already been created which you
can join by visting the [Invite
link](https://app.element.io/#/room/#community:nixos.org).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Notable difference: it does require signing up now in contrast to the ephemeral IRC identity you had before that.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This might raise the bar for contributing - e.g. Rust project uses a chat which also requires sign-up (they allow to sign up with social media or Git forge accounts though via OAuth) and that makes me a little bit uncomfortable.

Copy link
Member

@tilpner tilpner May 20, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is an option Who can access this room? in the Element room settings, with one of the three options being Anyone who knows the room's link, including guests.

Currently, guests are allowed in #chat:nixos.org and #nix:nixos.org. Perhaps allowing guests in a few central rooms (or all?), and then hosting a neat guest widget without all of the registration flow might suffice here?
The chat widget might automatically join a specific room, or drop the user in the spaces view whenever clients mature.

Apparently, there's a lighter matrix client called Hydrogen, which lists embedding as one of its goals. Although a guest mode was too early in 2020, EMS is supposedly working on a guest widget.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that it is not a real issue.

  • Many public homeservers don't require any sort of personal information for an account.
  • We can allow guests to view making it more visible than IRC.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we actually have software that does this already? I have a dedicated HS for "guests" that is supposed to provide ephemeral identities but right now Element requires you to sign-up to participate in a conversation. I believe the feature we are looking for is called ILAG and apparently that might make a comeback at some point: element-hq/element-web#9264 (comment)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Regarding the need for account creation, matrix is actually somewhere in-between of IRC (no account needed) and rocket chat/ mattermost/ zulip, where you need to create a new account for each community.
The beauty of federated open standards is that you need an account, but it's only a single one on an (almost) arbitrary server that can be used for all communities. The more communities are adopting that system, the less important is the assumption of people having an account. Thus IMHO that is an acceptable compromise.

Bringing back guest access would be neat anyways, although that might include a spam problem.

@asymmetric
Copy link
Contributor

To the benefits of Matrix I would add:

  • searchable chat logs out of the box
  • linking to individual messages out of the box
  • replies

I know we had some of this with https://logs.nix.samueldr.com/, but it's the out-of-the-box part that I find reasonable to expect nowadays.

Copy link
Member

@picnoir picnoir left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 Sounds like a great occasion to move to something more in line with the 2021 UX standards, something more inclusive. Great initiative


I have a concern regarding privacy though. At the moment, it's impossible to disable the read status. Every time you'll read a message on Matrix, the chat system will broadcast a read status to all the members of the channel. Indirectly, this presence status allows all the channel members to know when you do have a element tab open and which channel you are currently reading.

Provided some bots operated by unknown parties already joined the channel without asking anyone's consent, I think we can safely assume this data is getting stored and mined somewhere.

The vector team has been planning to fix that for 2 years. It seems like this is not considered as a high priority to them.

@picnoir
Copy link
Member

picnoir commented May 20, 2021

I have a more meta comment about this RFC.

While I'm in favor of this it, I feel like the RFC process has been yet again 100% bypassed. The migration has already been officially announced on the NixOS Discourse and on twitter.

I don't really see the point in trying to reach consensus in the community after the final decision has already been made behind closed doors. I understand that reaching consensus requires more time and energy, however, that's the whole point behind adopting a RFC system.

This situation is repeating, how can we all make sure it do not happen again in the future?


Edit: I want to explicitely point out that this is a general observation, not a direct attack in any way to @ryantm for opening the RFC. Thanks a lot for having taken the time to write this and caring about the RFC process <3

@7c6f434c
Copy link
Member

something more inclusive

Erm, whoever wanted to use Matrix, already used a bridge for the last few years. Since then removing options has become called «more inclusive»?

I don't really see the point in trying to reach consensus in the community after the final decision has already been made behind closed doors.

It's a stop-gap solution. There is a question how to structure the stuff, there is a question what and how to bridge once libera.chat gets bridging. Or whether to bridge, but I still have some hopes.

@Profpatsch
Copy link
Member

I expect the freenode/matrix bridge to be moved over to libera.chat in the near future, given that the open source community seems to rally behind the ex-freenode staff instead of the new government.

@7c6f434c
Copy link
Member

Matthew / Arathorn / Matrix.org leader is quite eager to add Libera.Chat public bridge, IRC-side staff says they have definitely no time to think about this before the weekend, and want to discuss some technical issues, but generally want the bridge to work when the dust settles.

(Once it works, we should find out how to bridge Matrix-first rooms, and decide on the details like naming)

Copy link

@Valodim Valodim left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I understand that people are attached to IRC, and habit is a powerful thing. And as any complex platform, Element has a learning and comfort curve, and moving there suddenly requires old dogs to learn new tricks.

But consider this: IRC is not free of a learning curve, many of us have just been past it for a long time. It takes significant effort to get a basic set of features working, such as persistent history, mobile access, multiple devices. Some features simply don't have an integrated workflow, such as multi-line messages, image sharing, file uploads, replies, or message editing.

Bridging is something of a middle ground here. However, while the official channel is IRC with Matrix users bridged in as guests, there is constant friction from the impedance mismatch ("don't use message editing, it's annoying", "please don't post three lines long messages like that", ...), leading to the same question of who should bear the burden.

I'm seeing this in a couple of communities right now, and it's a question of mindset. Moving on from IRC puts a burden on long-term members to get out of their comfort zone. Sticking to IRC puts a burden on every single newcomer to learn their ways around outdated tech.

Personally, I find the choice for a community that wants to grow and prosper very clear. We must move on from IRC. Beyond that consideration, there are a bunch of options for places to move towards, and Matrix happens to tick most boxes between the available options.

page](https://nixos.org/community/index.html) to point to our Matrix
Space (#community:nixos.org) that has already been created which you
can join by visting the [Invite
link](https://app.element.io/#/room/#community:nixos.org).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that it is not a real issue.

  • Many public homeservers don't require any sort of personal information for an account.
  • We can allow guests to view making it more visible than IRC.

People are used to Freenode and it might be harder for people to use
Matrix, which requires more complex clients.

# Alternatives
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can also consider bridging the Matrix room to IRC networks as well as possibly the discord room. The downside is that neither of those bridges support "fancy" features such as reactions which may make the conversion confusing.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Which always results in degradations of chat quality on one side, which is why I would be very careful about bridging in general.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree but I still think that it makes sense to consider it as an alternative.

As a Matrix user I prefer the non-bridged option but that is clearly a biased stance and telling everyone to behave the way that suits me the best. So to ensure that we pick the best option overall it is important to weigh the pros can cons of the different options.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think there's a difference between "Matrix user uses a bridge to talk in an IRC channel", vs. "the community is on Matrix but an IRC interface is provided through a bridge".

In the former case, the baseline to compare against is "only native IRC users", whereas in the latter case the baseline is "no access from IRC at all". So long as the messaging around this is clear, I think that imperfect IRC access is better than no IRC access.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The more I think about it, the more I feel that the RFC should at the very least mention IRC bridging.

I think it's desirable to have this (with the understanding of it being a Matrix-first room, feature/convention-wise), not just to improve accessibility for a certain part of the community, but also because "my system won't boot and all I have is netcat" is a realistic problem for someone trying to access a distro room to have, and IRC can work in this scenario.

Libera does not currently have an operational bridge, but likely will in the future. OFTC already has an operational bridge today.

rfcs/0094-use-matrix-for-official-chat.md Outdated Show resolved Hide resolved
@rissson
Copy link
Member

rissson commented May 20, 2021

To the benefits of Matrix I would add:

* searchable chat logs out of the box

* linking to individual messages out of the box

* replies

I know we had some of this with logs.nix.samueldr.com, but it's the out-of-the-box part that I find reasonable to expect nowadays.

Another thing that logs.nix.samueldr.com provided was immutable history of the channel, which does not exists with Matrix as one can edit message. This is a concern that was raised on an OpenStack mailing list, and is something we may want to keep in mind.

@7c6f434c
Copy link
Member

Edits do not destroy the previous states of the message. Redactions, on the other hand…

@ryantm ryantm force-pushed the matrix branch 2 times, most recently from 708173c to 1232f2b Compare May 20, 2021 16:09
Co-authored-by: Sven Slootweg <admin@cryto.net>
@joepie91
Copy link
Contributor

Approving the motion for merge FCP, on the grounds that I feel that the various drawbacks and community concerns have been sufficiently addressed.

@grahamc
Copy link
Member

grahamc commented Aug 20, 2021

We are now in the Final Comment Period (FCP). Unless any major objections are raised, this will be accepted and merged in 10 days from now, on August 30th!

Please post any final comments on this pull request.

@nixos-discourse
Copy link

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/rfc-0094-fcp-use-matrix-for-official-chat/14631/1

@Profpatsch
Copy link
Member

I’d be happy with an IRC bridge as a “secondary” citizen, if just to stay up to date on channels of interest without having yet another communication platform I have to check on.

@samueldr
Copy link
Member

samueldr commented Aug 23, 2021

(Kind of off-topic, but a technical issue that needs to be resolved before bridging.)

I’d be happy with an IRC bridge as a “secondary” citizen, if just to stay up to date on channels of interest without having yet another communication platform I have to check on.

I would like it too, but for this it needs to act as a secondary citizen. E.g. right now bridging the IRC channels makes the IRC side extremely powerful, and unless fixed recently, takes control in destructive ways.

TLDR: the bridge will remove Matrix-side users forcibly from the channel, according to their idle time, which in addition may or may not be configured correctly; it was unclear to the Matrix people at Libera what exactly caused the removal to happen.

@AndersonTorres
Copy link
Member

The offtopic no one made yet:

Do Matrix have an Emacs client?

@terlar
Copy link

terlar commented Aug 24, 2021

@AndersonTorres haven’t tested them myself, but these are available:

@joepie91
Copy link
Contributor

@samueldr That was already addressed earlier; simply not giving the bridge any permissions on the Matrix side would prevent these kind of issues. That is also why all moderators would need to be on the Matrix side.

@ryantm
Copy link
Member Author

ryantm commented Aug 24, 2021

I'd prefer to save discussion of bridging for the followup RFC, unless someone has a strong opinion that their bridging details would affect this RFC.

@pvonmoradi
Copy link

pvonmoradi commented Aug 26, 2021

One of the usual netiquettes in IRC rooms is using a pastebin service for sending logs and pieces of codes. Since Matrix has support for more bytes in each message, I see people not bothering with that and just sending their whole log into channels thus making previous posts not discoverable.
It would be great in terms of organization and keeping a high SNR feed, to enforce using external paste services to post logs.

@ryantm
Copy link
Member Author

ryantm commented Aug 26, 2021

Not needing to enforce and not needing an external paste service is one of the reasons to use Matrix. If a big log is wrapped in a triple backtick code fence, it will have their own scroll pane on many clients.

@8573
Copy link

8573 commented Aug 26, 2021

@pvonmoradi: While I am not a proponent of Matrix, I understand that the Matrix–IRC bridge itself puts an oversized message in a pastebin and sends the paste's URL (with some explanatory text) in place of the original message.

Edit: On re-reading your comment, I guess you were talking about reading messages in Matrix itself, not in a bridged IRC channel. I apologize for misunderstanding.

@grahamc
Copy link
Member

grahamc commented Sep 2, 2021

@NixOS/rfc-steering-committee the 10-day FCP has finished. I see no additional substantial arguments for modifying this RFC, so I recommend you merge it.

@Mic92 Mic92 merged commit 71f76fa into NixOS:master Sep 2, 2021
@rnhmjoj
Copy link

rnhmjoj commented Sep 29, 2021

Given that Matrix is the official channel now, can we discuss adding Matrix IDs to the Nixpkgs maintainers-list.nix?
(If this isn't the right place to discuss this, please suggest one)

@kevincox
Copy link
Contributor

kevincox commented Sep 29, 2021

The right locations are likely one of:

  1. Just open a PR adding yours to start.
  2. Start a new RFC.

@Mic92
Copy link
Member

Mic92 commented Sep 30, 2021

I think a PR might be enough. I don't see how this is controversial.

@Profpatsch
Copy link
Member

Hello I’m here to ask what happened to bridging, which was promised when the whole move happened?

cc @grahamc @edolstra @ryantm

@mweinelt
Copy link
Member

mweinelt commented Dec 9, 2021

I believe it was promised, that it would be evaluated.

Quite recently we set up plumbing for #de:nixos.org to irc://irc.hackint.org/nixos via a bridge that @andir and me maintain for hackint. We can probably use that as an example of how this works, if that works for you?

Also we are currently (as an example) missing #nixos-mailserver, which is reachable via the libera bridge, but not part of the space. We can gain moderator permissions for it through automated permission mapping, but I don't suppose we could get admin permissions for it, so no central abuse management via mjolnir (which requires changing server ACLs, which is an admin permission).

My primary points of annoyance with the bridge are a) desynchronization of user lists and b) introduction of a huge number of state changes into matrix rooms.

@ryantm ryantm deleted the matrix branch December 9, 2021 17:10
@ryantm
Copy link
Member Author

ryantm commented Dec 9, 2021

@Profpatsch The details about this RFC's take on bridging are in this section Anyone is free to start evaluating it, as Martin mentions, and open an RFC when they know enough.

@NixOS NixOS deleted a comment from Lamb2case285 Feb 16, 2022
KAction pushed a commit to KAction/rfcs that referenced this pull request Apr 13, 2024
* [RFC 0094] Use Matrix for Official Chat

* Add shepherd metadata

* [RFC 0094] apply shepherd suggestions feedback

* Update rfcs/0094-use-matrix-for-official-chat.md

Co-authored-by: Sven Slootweg <admin@cryto.net>

Co-authored-by: Linus Heckemann <git@sphalerite.org>
Co-authored-by: Sven Slootweg <admin@cryto.net>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.