element-hq/roadmap

Gitter feature parity overview issue

MadLittleMods opened this issue ยท 64 comments

In the long-run we want Element to take-over for Gitter because we don't want to support both platforms. In order to have Element be a suitable successor, we want to make sure all of the feature functionality people are used to on Gitter is available in Element. If you want to read more context behind this, the Matrix blog post has great detail. All of the Gitter content will be available on the gitter.im Matrix homeserver to live on.

Feel free to edit this list with more features, details, and links(MSC's, etc) as you think of them. We can split this out individual issues once this list has a few more iterations.

Gitter features needed in Element

Extras

Sunset

After Gitter shuts down, we want the experience of accessing your same Gitter content on Matrix just as seamless.

Previous after Gitter sunset idea: push people to their own homeserver
  • Sign in with GitLab, GitHub, Twitter -> automatically bootstrap their matrix.org account and be signed in
    • This way, we donโ€™t have to pay for beefing up the gitter.im homeserver with people trying to join big rooms
    • We want the experience to be easy for user with no knowledge of Matrix. They should just need to sign in with GitLab/GitHub like they did with Gitter and we will handle the Matrix user creation and plop them in. This will also add admin permissions for people in the rooms they were admins in.
    • People may sign in and get the automatic Matrix.org account created but want to access their rooms from another Matrix account. We should also have a migration utility to be able /migrate_room_membership_to @xxx and have it invite their other user to the same rooms.
    • Instead of pushing everyone to matrix.org, maybe suggest EMS for your own homeserver or maybe P2P if that's mature in time. The one problem with this flow is it would probably be super cumbersome and clumsy for someone not familiar with Matrix, e.g. "Why do I have to create a server if I just want to sign into Gitter?"

Master migration rollout plan

  1. Import all messages from Gitter -> Matrix, https://gitlab.com/gitterHQ/webapp/-/issues/2609
  2. Sync membership in all live Matrix rooms, https://gitlab.com/gitterHQ/webapp/-/issues/2857
  3. Sync membership in all historical Matrix rooms, https://gitlab.com/gitterHQ/webapp/-/issues/2857
  4. Sync admin permissions to all live and historical Matrix rooms
  5. Pre-announcement cutover blog post, https://docs.google.com/document/d/1WNuQ3s8dNn7uxdkG515Hnl07RhnCrXC7jmUP1r6czJA/edit#
    -> https://blog.gitter.im/2023/01/16/gitter-is-going-fully-native-matrix-in-feb-2023/
  6. Link pre-announcement from announcement section of the left-menu
  7. Ensure live room points back to historical room via MSC3946,
  8. Inject social provider information into Synapse, https://github.com/vector-im/sre-internal/issues/1754
  9. Setup app.gitter.im with the Gitter branded Element instance, https://github.com/matrix-org/matrix-hosted/issues/6824
  10. Setup /.well-known/matrix/client so people can enter gitter.im on the Element sign-in page
  11. Update Matrix appservice registration to not have exclusive control over the users (make sure updated on EMS), https://github.com/matrix-org/matrix-hosted/issues/6979
  12. Remove custom Synapse patches used to optimize during the import process, https://github.com/matrix-org/matrix-hosted/issues/7144
  13. Deploy latest Element which includes some updates for Gitter, https://github.com/matrix-org/matrix-hosted/issues/7148
  14. Allow anonymous preview of rooms on app.gitter.im, https://github.com/matrix-org/matrix-hosted/issues/7150
  15. Enable social login on app.gitter.im
  16. Blog post explaining the Gitter -> Element/Matrix transition, https://docs.google.com/document/d/1s05BHAz-EFKktfBZ3BD2j5ojR2xIwDR13t_6XiNdI_M/edit#
    1. FAQ document we can link wherever
    2. -> https://blog.gitter.im/2023/02/13/gitter-has-fully-migrated-to-matrix/

--- Cutover on 2023-02-13 ---

  1. Update Gitter homepage to direct people to app.gitter.im so all new people go in via Matrix
  2. Disallow sign-in to Gitter itself. Update sign-in page to point to app.gitter.im to better direct Gitter desktop users to the right place
  3. Also need to stop people generating tokens from their already created OAuth apps. Probably cut-off token exchange endpoint.
  4. Disallow sign-in on https://developer.gitter.im/ to stop people from generating new tokens
  5. Again -> Inject social provider information into Synapse, https://github.com/vector-im/sre-internal/issues/1754
    • Resume dump from gitterUserId=63bc7a736da0373984af769a (small amount of overlap from our last dump)
    • Resume dump from gitterUserId=63e9a3486da0373984be49f7
  6. Invalidate all Gitter access tokens so people get a 401 and are redirected back to the home page. People will then stumble back in via app.gitter.im
    • This will result in a confusing hard cut-off for the Gitter iOS and Android apps which have been deprecated since 2020-11-20
    • When we invalidate all tokens, this will also break people's scripts/bots. Might just have to rip off the band-aid on this one.
  7. Setup redirects from old Gitter URL scheme to Element/Matrix location, https://github.com/vector-im/sre-internal/issues/1755, https://gitlab.com/gitterHQ/gitter.im/-/issues/9
  8. Stop Gitter unread emails from going out, https://gitlab.com/gitterHQ/gitter-infrastructure/-/issues/261
  9. Shutdown the IRC bridge, https://gitlab.com/gitterHQ/gitter-infrastructure/-/issues/262
  10. Remove Android and iOS apps from the app stores, https://github.com/vector-im/sre-internal/issues/1854
  11. Stop all public traffic to AWS Gitter infra
    • Be mindful that people still need to access the Gitter homepage in case we're still serving that from the Gitter infra

--- Cleanup ---

  1. Archive Gitter Mongo data, https://github.com/vector-im/sre-internal/issues/1929
  2. Shutdown AWS Gitter infra
  3. Cancel and stop paying for associated services, https://github.com/vector-im/sre-internal/issues/1927
  4. Archive projects, https://gitlab.com/gitterHQ

I think it's a bit misleading to mark the Maths feature as done. For web it works, but I need help finishing element-hq/element-android#2133, and as far as I'm aware nobody has started implementing it on iOS. My PR has stalled for over a year now, and I'm quite sure that it doesn't need much developer time to merge.

It's happening!

"So, after over 2 years, weโ€™re pressing the button at last: weโ€™re migrating all the existing content in the original centralised Gitter platform over into Gitterโ€™s Matrix server, and weโ€™re planning to replace the old Gitter app with a Gitter-customised version of Element during the week of Feb. 6th 2023."

https://blog.gitter.im/2023/01/16/gitter-is-going-fully-native-matrix-in-feb-2023/

Setup redirects to rewrite the old Gitter URL to Matrix room alias, https://github.com/vector-im/sre-internal/issues/1755

That URL is 404 for the public or at least I'm not authorized to read. Can the comment be updated to refer to the issue/PR addressing redirect or some information about its status?

@csarven The links are up-to-date but those are internal repositories that you won't have access to.

The sunset period is FAR too short. Please consider extending it.

timbl commented

So now I have the Element app on Mac, ... I see one room is in bridged from Gitter, but I don't see any other Gitter rooms. How to I open an arbitrary Gitter room in Element? How from Element can I see what Gitter rooms exist?

timbl commented

Any recommendations for (command line) matrix api help?

@timbl You need to search the public room directory and select gitter.im as the target for the search.

Screenshot 2023-02-05 at 19 43 30

BTW, all public rooms are bridged.

timbl commented

image

Searching Public Rooms for 'gitter' does not seem to give me gitter rooms .. and searching for "solidos" doesn't give me our solidos room
timbl commented

sorry that was 'gitter' not 'gitter.im'

You need to select "gitter.im" from the drop-down below the search box. In your screenshot it says "Matrix rooms (matrix.org)" in mine the drop down is opened.

@leonardehrenfried thanks for the info. Trying this. It just says "joining". Is it too early?

image

Don't really know. I was able to join the room with my matrix user successful. Maybe retry?

Retrying worked, thank you!

timbl commented

@leonardehrenfried It looks as though the gitter rooms like solid/solidos may all have been bridged to things like https://matrix.to/#/#solid_solidos:gitter.im -- is that right?

Yes that's to be expected. Seems that room addresses can't contain slashes.

The room address is #solid_solidos:gitter.im.

Are you aware that starting tomorrow the gitter backend will be converted to use the matrix protocol only?

Are you aware that starting tomorrow the gitter backend will be converted to use the matrix protocol only?

The migration date has moved to 2023-02-13 (next Monday). On this day, you will get access to sign-in to the gitter.im homeserver and will have access to the public and private rooms that you were previously using on Gitter directly (membership and admin permissions).

Public rooms are already available to join if that's all you need (this has been a thing for a couple years now)

First want to say thank you for all the hard work you are doing! Am really looking forward to using Matrix more generally (especially for things that are only available through Gitter atm like private rooms) ๐Ÿ˜„

The migration date has moved to 2023-02-13 (next Monday).

IIRC this was originally going to happen today. Curious why this was moved back a week (if you are able to share). Recognize people working on this are likely very busy. So don't want to distract. Just having a little more context would be helpful (maybe one sentence would be sufficient). Sorry again for the intrusion.

IIRC this was originally going to happen today. Curious why this was moved back a week (if you are able to share). Recognize people working on this are likely very busy. So don't want to distract. Just having a little more context would be helpful (maybe one sentence would be sufficient). Sorry again for the intrusion.

@jakirkham Mostly just prep work that collided with FOSDEM which happened this past weekend.

Just to let you know (I reckon what I'm seeing is related to this issue here): I take it you're just running https://gitlab.com/gitterHQ/webapp/-/issues/2857 ? This doesn't seem to scale all that well - I have a room with over 9000 gitter users (https://gitter.im/ethereum/solidity) that's now been unusable for over an hour due to the matrix side apparently not being able to handle the amount of users being joined to the room at once all that well (If I read the notification element gives me correctly, after an hour it has synced only half of the users). Not sure if me viewing the room via federation makes this worse and whether this will settle eventually - if it keeps taking several hours to properly open the room from now on, that'd be a problem :-).

@ekpyron You're probably running into element-hq/element-meta#1339. Please give that some ๐Ÿ‘ reaction love

Although it's possible you're talking about a different performance problem while all of those members were joining the room.

Congratulations on the merge! ๐Ÿฅณ

Had a question about one aspect. AIUI there will still be two identities: one on Matrix and one on Gitter for each user (at least until PR matrix-org/matrix-spec-proposals#2787 is complete). Is that right or am I misunderstanding something?

Had a question about one aspect. AIUI there will still be two identities: one on Matrix and one on Gitter for each user (at least until PR matrix-org/matrix-spec-proposals#2787 is complete). Is that right or am I misunderstanding something?

@jakirkham Your understanding seems in the realm of correct (don't want to assume too much though).

@jakirkham-560313510fc9f982beb1a331:gitter.im exists on Matrix on the gitter.im homeserver. That will exist forever.

Currently, it's not possible to rename or merge that account with your other Matrix account (I assume you have some other Matrix account on matrix.org).

matrix-org/matrix-spec-proposals#2787 is one possibility that could help this scenario though ๐Ÿ‘

Thanks Eric! ๐Ÿ™

Yeah that's right. Have @jakirkham-560313510fc9f982beb1a331:gitter.im and @jakirkham:matrix.org as well

Gotcha ok. Are there other proposals to be aware of as well?

Are there other proposals to be aware of as well?

@jakirkham I think that will hold the most references (anything linked from that).

A half-measure for example could be to mark an account as tombstoned in favor of another account. This way when someone tries to DM or mention you, their client would instead point them to them to the account you prefer. I am not aware of a MSC for this (feel free to create one)

Thanks for the pointers, Eric! ๐Ÿ™

Another question: Am noticing that some Gitter DM's keep the history when ported over to Matrix and others don't (starting new blank DM's). Is there something I need to do on my end to make sure the history is pulled over from Gitter into the new Matrix DM's?

This section in the blog post might get you up to speed, https://blog.gitter.im/2023/02/13/gitter-has-fully-migrated-to-matrix/#where-is-my-message-history

If that doesn't answer it, come chat on https://matrix.to/#/#gitter_gitter:gitter.im. This issue isn't meant for ongoing support.

Ah sorry will do to that. Thanks for your help! ๐Ÿ™

List element-hq/element-web#437 please. Existing clients are retarded enough as they are, but not supporting such simple feature is just unacceptable for modern software.

๏ฟผ Shutdown the IRC bridge, https://gitlab.com/gitterHQ/gitter-infrastructure/-/issues/262

This appears to be a dead link.

That said, what is the status of accessing Gitter from IRC now? No longer possible? Are we all going to have to have yet another stand-alone IM app/Web-chat page open now, on top of the forty-eleven that we already have?

This is a huge step backward if so.

Excuse my ignorance as well please, but why is the request to implement one of the most convenient features of Gitter - ability to embed illustrations into text via ![alt-text](image-url) markdown code - not supported in any matrix client - is marked off-topic in a page titled "Gitter feature parity"?

๏ฟผ Shutdown the IRC bridge, https://gitlab.com/gitterHQ/gitter-infrastructure/-/issues/262

This appears to be a dead link.

That said, what is the status of accessing Gitter from IRC now? No longer possible? Are we all going to have to have yet another stand-alone IM app/Web-chat page open now, on top of the forty-eleven that we already have?

This is a huge step backward if so.

I'm not sure if there is public instance running at the moment, but at least you can run your own matrix <-> irc bridge: https://matrix.org/bridges/#irc

I'm not sure if there is public instance running at the moment, but at least you can run your own matrix <-> irc bridge: https://matrix.org/bridges/#irc

That doesn't seem very scalable. Everyone wanting to use the IRC bridge that used to exist before this migration really should not have to stand up their own bridge.

Why was this feature simply forgotten about or ignored, particularly when it is straightforward enough to stand up a bridge?

I'm in no way involved but I guess the reason is lack of resources. As a free service Gitter/Matrix have to prioritize some features over others.

Matrix is very, very bridgeable and perhaps someone already runs one.

@brianjmurrell Most of these are links to internal issues that you won't be able to see.

The IRC bridge was essentially a consumer of the Gitter API which as the past couple blog posts explain are no longer accessible.

There won't be a built-in alternative but there are a few IRC bridges you could run, https://matrix.org/bridges/#irc. matrix-ircd is similar to irc.gitter.im but it's pretty alpha, sadly.

If you want your Gitter room bridged to IRC, then there is a IRC bridge integration built-in but that has to be setup per-room by the room admins.

@hiiamboris I think you want to track element-hq/element-web#437 and element-hq/element-web#4044 which looks like you might have already found.

@MadLittleMods yeah found those. But they're 6-8 years old (obviously neglected :), so it's unlikely they'll get attention without being listed above :/

@hiiamboris element-hq/element-web#4044 looks reasonable enough to me that I think someone could move it forward.

Come chat in https://matrix.to/#/#gitter_gitter:gitter.im if you have further questions

The IRC bridge was essentially a consumer of the Gitter API which as the past couple blog posts explain are no longer accessible.

Yes, that is understood. What I am saying is that part of the migration to Matrix should have included rather than simply disregarded IRC bridge users. There are bridges available. I would submit that the migration should have included standing up a (single, central, public) bridge for all existing bridge users to migrate to.

@brianjmurrell While I agree that the Gitter IRC bridge was great and convenient, it's not core to Gitter (it's core to you). Bridging and interacting from IRC is still possible but you will have to take up the mantle.

I see that

  • GitLab/GitHub based permissions for a room

is striked out. I'm seeing runtime issues from the migration, where the account is unable to create or join certain rooms, which belong to GitHub organisations from it. Is there a feedback issue, some Gitter community (Discourse) or a personal channel where this could be discussed?

There are a lot of project histories stored in via bookmarked messages with the ?at query string.

Could they somehow be stored on gitter so that in future they can be easily spidered, and reused by automated agents? This has allowed things to get spidered, searchable, bookmarkable. Right now they seem broken links.

It important because for many projects this can act as a knowledge base, act as an automated FAQ, record contributes etc.

Perhaps gitter could make the history as it was before, but read only. With new messages going to matrix?

I'm seeing runtime issues from the migration, where the account is unable to create or join certain rooms, which belong to GitHub organisations from it. Is there a feedback issue, some Gitter community (Discourse) or a personal channel where this could be discussed?

@almereyda See the "What's changing?" section of the blog post. Best to discuss in https://matrix.to/#/#gitter_gitter:gitter.im

Could they somehow be stored on gitter so that in future they can be easily spidered, and reused by automated agents? This has allowed things to get spidered, searchable, bookmarkable. Right now they seem broken links.

@melvincarvalho There won't be redirects from the old Gitter chat message ID to the new Matrix event ID. But you can have the same setup as before by linking to a specific message (Share -> Copy the matrix.to link). This experience will also be better when the Matrix Public Archive comes to fruition:

[...] โ€œPublic static archive (indexed by search engines)โ€ solution. Weโ€™re addressing this with the Matrix Public Archive but it isnโ€™t quite ready yet to have a canonical instance for everyone to use yet. This piece will be an eager follow-up to todayโ€™s migration though.

-- https://blog.gitter.im/2023/02/13/gitter-has-fully-migrated-to-matrix/

There won't be redirects from the old Gitter chat message ID to the new Matrix event ID.

If I understand correctly, does it means that all old Gitter message links such as https://gitter.im/$namespace/$room?at=$message_id are now dead links and inaccessible forever?

If I understand correctly, does it means that all old Gitter message links such as https://gitter.im/$namespace/$room?at=$message_id are now dead links and inaccessible forever?

Initially while responding, I thought this was the case since doing it strictly would require a database and lookup service available forever which isn't ideal. But thinking more what's possible, I think we could extract the timestamp from the Gitter message ID and use jump to date in Element to get you to the right place.

This is now tracked by https://gitlab.com/gitterHQ/gitter.im/-/issues/9

That's great to hear :) and perhaps veering a bit off topic, the fact that this is now possible sounds like a great point in favor of transparent identifiers (for rooms, people, etc.) rather than โ€”or in addition toโ€” hash-like IDs.

GitLab/GitHub activity as a first-class citizen in a roomโ€™s side-panel

Any update on this? That should be the absolute top priority feature to restore, since it was the main distinguishing reason to use Gitter in the first place. I'm surprised there seems to be no motion at all there.

@calculuschild The quantity of work for such a migration is huge. What we need are more contributors. Can you help?

all old Gitter message links such as https://gitter.im/$namespace/$room?at=$message_id are now dead links and inaccessible forever?

ability to embed illustrations into text via ![alt-text](image-url) markdown code - not supported in any matrix client

These two are closely related as well. People have collections of chat bookmarks, which are now all dead (temporarily). But once they start working, people will find out that all embedded illustrations are invisible now (since none of the clients shows them) making a lot of bookmarks useless. Gitter simply mirrored all images to its own server to avoid revealing IPs, so each message has both original and gitter-based link. But as far as I can tell during all the years of Matrix development no one even designed how this feature will work in it. And apparently your management saw it as a bright idea to shut down working infrastructure first and then spend a few more years to figure out how to put kludges into Matrix to make it work again. My applause.

I think you're overestimating the number of managers that work at Matrix.

Have you considered that what is a very important feature to you might not quite be quite so important for others?

Gitter have prioritised moving over to Matrix over porting every feature that it once had. I personally feel that that was the right way forward considering the (presumably) limited resources.

@hiiamboris The quantity of work for such a migration is huge. What we need are more contributors. Can you help?

@marclaporte Sorry :) I'm not a web dev, and I consider the whole web stack a stroke of madness.

Anyway I in general appreciate the work you're doing, truly, but I also find the whole Gitter migration a ridiculous mess, and I haven't seen a single Gitter user who didn't curse it. It's easy to talk about "quantity of work for such a migration", but how many people were using Gitter? Hundreds of thousands? Can you possibly imagine the total amount of work disruption this migration has caused to them? It's a few orders of magnitude more than it would require to avoid it. And what about social aspect of it? Do you want Matrix to be universally seen as the ultimate evil where nothing ever works? Because that's how all the pissed off people are now seeing it.

@hiiamboris

It's easy to talk about "quantity of work...

It's also easy to complain.

I'm not a web dev

There are many ways to help, even without coding. You just need to decide to be part of the solution and act.

I am not a Gitter dev. I am not affiliated with Matrix. I just use Gitter for some communities and the transition went very well:

I have lots of experience in this field. I have been managing Open Source projets for over 2 decades, and I am the founder of https://wikisuite.org/

I have experience in system migrations, and I know how tricky these can be. It is my professional opinion that the migration was very well handled all things considered. It would have been a waste of ressources to continue to maintain two systems. At a certain point, you need to make the move.

Now, to you and the others that have concerns: I urge you to transform that energy into positive action to make things better.

There are many ways to help, even without coding. You just need to decide to be part of the solution and act.

How do you envision this @marclaporte ?

@marclaporte Well, in that wider sense I'm contributing right now by trying to bring developers attention to the critical problems. Because if problems are not even noticed, they have no chance of being solved, and worse yet, they are going to be repeated. And look how that went? It's not even on the roadmap, and the only active person is not affiliated with Matrix and just tries to tell me that what most people consider "unacceptable" is in his professional opinion called "well handled" :)

GitLab/GitHub activity as a first-class citizen in a roomโ€™s side-panel

Any update on this? That should be the absolute top priority feature to restore, since it was the main distinguishing reason to use Gitter in the first place. I'm surprised there seems to be no motion at all there.

Hey there, there is motion on this front. We're thinking about how best to integrate with Hookshot, our GitHub/GitLab (and others) integration. matrix-org/matrix-hookshot#631 I'll try to give a status update on this in the coming weeks, but we have given this some thought.

Hi! I very much miss a link to GitHub in each user's profile. It was great for discovering great projects/repos from room co-members, and some background on everyone. A nice collaboration feature if you ask me :-)

@loziniak You would probably be interested in tracking MSC1769: Extensible profiles as rooms

If you want your Gitter room bridged to IRC, then there is a IRC bridge integration built-in but that has to be setup per-room by the room admins.

@MadLittleMods Thanks for the information. I can't find the IRC bridge integration, though. I just created a test room through the app.gitter.im web UI, and I seem to have the "Admin" role, but I can't find anything about setting up an IRC bridge in the room options. Is it documented somewhere?

@falsifian If you're using app.gitter.im (or any other Element Web/Desktop instance) and want to try the built-in integration, open the Room info panel by clicking the โ„น๏ธ icon in the top-right of the chat header -> Add widgets, bridges & bots -> IRC Bridge (your favorite IRC network) -> Add -> then run through the process to Link a new channel

If you're looking to setup your own bridge, best to look and ask in the specific IRC bridge channels: