element-hq / roadmap

Element public roadmap
78 stars 5 forks source link

Gitter feature parity overview issue #26

Open MadLittleMods opened 3 years ago

MadLittleMods commented 3 years ago

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. - EMS has a generic MXID migration tool we can point people to, https://ems.element.io/tools/matrix-migration - 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. [x] Import all messages from Gitter -> Matrix, https://gitlab.com/gitterHQ/webapp/-/issues/2609
  2. [x] Sync membership in all live Matrix rooms, https://gitlab.com/gitterHQ/webapp/-/issues/2857
  3. [x] Sync membership in all historical Matrix rooms, https://gitlab.com/gitterHQ/webapp/-/issues/2857
  4. [x] Sync admin permissions to all live and historical Matrix rooms
  5. [x] 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. [x] Link pre-announcement from announcement section of the left-menu
  7. [x] Ensure live room points back to historical room via MSC3946,
  8. [x] Inject social provider information into Synapse, https://github.com/vector-im/sre-internal/issues/1754
  9. [x] Setup app.gitter.im with the Gitter branded Element instance, https://github.com/matrix-org/matrix-hosted/issues/6824
  10. [x] Setup /.well-known/matrix/client so people can enter gitter.im on the Element sign-in page
  11. [x] 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. [x] Remove custom Synapse patches used to optimize during the import process, https://github.com/matrix-org/matrix-hosted/issues/7144
  13. [x] Deploy latest Element which includes some updates for Gitter, https://github.com/matrix-org/matrix-hosted/issues/7148
  14. [x] Allow anonymous preview of rooms on app.gitter.im, https://github.com/matrix-org/matrix-hosted/issues/7150
  15. [x] Enable social login on app.gitter.im
  16. [x] Blog post explaining the Gitter -> Element/Matrix transition, https://docs.google.com/document/d/1s05BHAz-EFKktfBZ3BD2j5ojR2xIwDR13t_6XiNdI_M/edit#
    1. [x] 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. [x] Update Gitter homepage to direct people to app.gitter.im so all new people go in via Matrix
  2. [x] 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. [x] Also need to stop people generating tokens from their already created OAuth apps. Probably cut-off token exchange endpoint.
  4. [x] Disallow sign-in on https://developer.gitter.im/ to stop people from generating new tokens
  5. [x] 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. [x] 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. [x] 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. [x] Stop Gitter unread emails from going out, https://gitlab.com/gitterHQ/gitter-infrastructure/-/issues/261
  9. [x] Shutdown the IRC bridge, https://gitlab.com/gitterHQ/gitter-infrastructure/-/issues/262
  10. [x] Remove Android and iOS apps from the app stores, https://github.com/vector-im/sre-internal/issues/1854
  11. [x] 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. [x] Archive Gitter Mongo data, https://github.com/vector-im/sre-internal/issues/1929
  2. [x] Shutdown AWS Gitter infra
  3. [x] Cancel and stop paying for associated services, https://github.com/vector-im/sre-internal/issues/1927
  4. [x] Archive projects, https://gitlab.com/gitterHQ
marclaporte commented 1 year ago

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

hiiamboris commented 1 year ago

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.

leonardehrenfried commented 1 year ago

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.

marclaporte commented 1 year ago

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

hiiamboris commented 1 year ago

@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.

marclaporte commented 1 year ago

@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.

hiiamboris commented 1 year ago

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 commented 1 year ago

https://opensource.guide/how-to-contribute/

hiiamboris commented 1 year ago

@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" :)

Half-Shot commented 1 year ago

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. https://github.com/matrix-org/matrix-hookshot/issues/631 I'll try to give a status update on this in the coming weeks, but we have given this some thought.

loziniak commented 1 year ago

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 :-)

MadLittleMods commented 1 year ago

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

falsifian commented 1 year ago

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?

MadLittleMods commented 1 year ago

@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 :information_source: 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: