-
-
Notifications
You must be signed in to change notification settings - Fork 158
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
Conversation
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 |
There was a problem hiding this 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.
There was a problem hiding this 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.
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. |
4824d52
to
4e2f64e
Compare
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. |
fc8067c
to
1e917df
Compare
Just wanted to mention, |
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 |
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. |
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
|
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). |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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)
There was a problem hiding this comment.
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.
To the benefits of Matrix I would add:
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. |
There was a problem hiding this 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.
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 |
Erm, whoever wanted to use Matrix, already used a bridge for the last few years. Since then removing options has become called «more inclusive»?
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. |
I expect the freenode/matrix bridge to be moved over to |
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) |
There was a problem hiding this 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). |
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
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. |
Edits do not destroy the previous states of the message. Redactions, on the other hand… |
708173c
to
1232f2b
Compare
Co-authored-by: Sven Slootweg <[email protected]>
Approving the motion for merge FCP, on the grounds that I feel that the various drawbacks and community concerns have been sufficiently addressed. |
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. |
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 |
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. |
(Kind of off-topic, but a technical issue that needs to be resolved before bridging.)
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. |
The offtopic no one made yet: Do Matrix have an Emacs client? |
@AndersonTorres haven’t tested them myself, but these are available: |
@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. |
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. |
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. |
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. |
@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. |
@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. |
Given that Matrix is the official channel now, can we discuss adding Matrix IDs to the Nixpkgs |
The right locations are likely one of:
|
I think a PR might be enough. I don't see how this is controversial. |
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. |
@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. |
* [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 <[email protected]> Co-authored-by: Linus Heckemann <[email protected]> Co-authored-by: Sven Slootweg <[email protected]>
Rendered