It seems that community contributions to Element Web (Matrix client) are often effectively rejected. For example, see:
- https://github.com/matrix-org/matrix-react-sdk/pull/9240
- https://github.com/matrix-org/matrix-react-sdk/pull/11078
There are also many other PRs for Element Web/Desktop which have not gotten a review in a timely manner (see here). The request to improve the terrible notification sound has been there since 2017, and though several PRs have been submitted to improve it, they have been either ignored or rejected for an unknown reason (there should be an epic project going on which should make the six-year-wait legitimate).
When it comes to development of Element, there is a lot of unspoken, unwritten, internally shared rules among the internal team members. Your PR will be effectively rejected even if it works, unless it aligns with their goals, which you cannot know before submitting a PR.
It should be well noted that there is a clear and strict division between the internal paid workers and external volunteer developers who essentially provide the team free labor. The exclusive attitude of the team behind Element has discouraged the latter from contributing to the project. I myself have been one of the active localization volunteers, but I stopped contributing after I realized it has been free labor.
If i learned anything from my early contributions, it’s checking the health of a project and attitude of its maintainers before spending anytime on that project.
Yes, I should have done that actually.
I once went into the Element support chat asking if it was possible to change my user name color, as I’m pretty closely identified to this username, and I despise the lime green it creates in that client. They said no, and typically I would expect to then be told, “but you can open a ticket in our tracker” or etc. Instead I was told, “use a different client if you want to change your username color (locally).”
Very weird experience.
Obviously there is a mistrust of the team toward the community, which makes them regard asking a question as attacking their product.
I have never really liked the idea of a web client for anything E2EE, the main reason I dislike them is that the web does not really offer a decent way to know if that code was modified server side and you being served a backdoored app. until the web adds a way to check the integrity of web applications I stay away from it
Firstly, I agree this is very shitty behaviour reminiscent of what a soon to be for profit company would do. See: Hashicorp Terraform.
But I’ve got to caution anyone against throwing in unsolicited pull requests. If the maintainers don’t know about it they’ll be upset. That being said the pull requests posted seem totally solicited and in fact led on by people before subsequently being torpedoed.
To me it shows well that the company thinks little of the importance of the communication between internal team members and external volunteers.
Unfortunately I don’t think your experience is unique. I’ve seen several open source projects suffer from cliquey, protectionist behavior. I’ve been on a project where I was told by the primary developer to rebase my PR branch onto origin/main or it won’t get looked at. By the time I’ve done that, that same developer’s already pushed a commit directly to origin/main, and I’m no longer up-to-date.
Your case is pretty common with any project IME and it’s not “cliquey” behavior. People really dont want to waste their time on something that’s not ready to merge, and if the branch is pretty out of date it’s probably not ready. I really doubt they’d complain about it being off by a commit or two, unless a merge conflict has come up since maybe.
Nah, we’re talking a timescale of minutes here, a few hours at best. New feature, no conflicts, ready to merge. Fetch, rebase, push. Out of date almost immediately. Fetch new commit, rebase, push. Minutes later, out of date again.
See what I learned is, you can’t outpace the sole project owner and principal developer, no matter how many other contributors the project has. Especially if he gets paid to work on the project full time. How do you compete with someone who has direct push access, commits every half hour, doesn’t check PR’s, and mandates rebases for fast-forward-only merges?
So my takeaway was, you don’t. They’re just not that into the feature, why should I be? Leave the branch exactly the way it is until someone asks for it to be made ready. They get 3 chances. If they don’t merge it after asking for it 3 times, I tell them to checkout the branch themselves and take over. If I get code review feedback 3 times, I ask for peer programming. If they can’t schedule it or don’t want to, tell em check out the branch themselves and take over.
If they’ve got better things to do with their time, then you bet your sweet bippy I got better things to do with mine.
deleted by creator
deleted by creator
Not sure if Syphon rejects community contributions but I wish Syphon client got more love and attention. Syphon is more privacy focused and is written in Dart, allowing it to be compiled for desktop and mobile.
I have once tried Syphon but for an unknown reason it did not work for me really well.
If you guys are by any chance interested in how members of the community responded, please check out the comments added after the PR was closed: https://github.com/matrix-org/matrix-react-sdk/pull/9240#issuecomment-1703060227 and below. You would be able to see the pent-up negativity toward the reluctant team communication. Check these two:
Matrix is open protocol, everybody is free to build their own clients. Maintainers of any one implementation are free to choose code to include in their project. And people can fork Element if they don’t like the way it is going.
Maybe Element developers are not great in including external contribution… but still nothing else seems to implement Matrix that well.
No other client seems feature-complete. I wish I could use NeoChat instead of Matrix, but it still cannot even handle encrypted conversations properly. Are they rejecting contributions too?
No other client seems feature-complete.
In my opinion it is because the team which implements the features to Element, including what to implement and how to do it, substantially decides the protocol itself as well. You would easily identify who both implement the protocol and review PRs.