che icon indicating copy to clipboard operation
che copied to clipboard

Live collaboration capabilities

Open slemeur opened this issue 7 years ago • 25 comments

Description

Motivations

Over the past years, we did different prototypes showing pair programming within Eclipse Che. At the end of 2017, few announcements have been made by other IDE/editors:

  • Visual Studio Live Share: https://code.visualstudio.com/blogs/2017/11/15/live-share
  • Teletype: https://teletype.atom.io/

We have always envisioned live collaboration with Che to be enable between different tools. So one developer could be using Che and another could be using Eclipse IDE or another. Our first prototypes were made with Eclipse Flux: https://github.com/eclipse/flux.

We would like to leverage Teletype inside of Eclipse Che in order to provide live collaboration capabilities.

For this work, we will target the next gen Che. See #8266.

Pair programming

The pair programming should allow multiple developer to code on the same file. The integration in the editor will allow the users to the cursor of each other users. It will be possible to hover the cursor to show who is the user behind it.

The integration in the IDE will consider adding an action to start and share a teletype session from Che and connect of a Teletype session started outside of Che.

Debug session

The live collaboration, will allow to share a debug session with other users.

  • A user is sharing his debug session with other users
  • When the user is getting at a break point, the breakpoint (and code) will be highlight in the editor of all users
  • All users, who are sharing the debug session are able to do actions on the debugger, to resume, pause, stop, step into, step over.
  • All users have access to the debugger, see the variables, see the stacktraces and the browse the different threads.

Operational transformation

Live collaboration could lead to collision and we should be looking at integrating an operational transformation engine.

Linked Issues

https://github.com/redhat-developer/rh-che/issues/438 https://github.com/eclipse/che/issues/3080 https://github.com/eclipse/che/issues/4474 https://github.com/eclipse/che/issues/5329

slemeur avatar Jan 12 '18 20:01 slemeur

Are there any news to share here?

MahatmaFatalError avatar Aug 23 '18 19:08 MahatmaFatalError

I think we can further extend this by adding User Roles within a workspace, which grants them specific actions in the workspace. This is proven effective with Cloud9's Live Collab

sr229 avatar Dec 02 '18 10:12 sr229

Any update?

bdeleonardis1 avatar Mar 11 '19 23:03 bdeleonardis1

This is still an epic that we would love to address, but has right now a lower priority regarding the other aspects we are working on.

If someone in the community is willing to help, that would be awesome!

It has also been proposed as a topic for the Google Summer Of Code for 2019: https://wiki.eclipse.org/Google_Summer_of_Code_2019_Ideas#Topic_1:_Co_Editing

@sunix : has been experimenting on this area since quite long time and he has deep understanding. He should be the point of contact.

slemeur avatar Mar 12 '19 06:03 slemeur

Is there any update on this?

bryantson avatar Aug 21 '19 20:08 bryantson

last activity was around a year ago, Probably everyone forgot about this....

sr229 avatar Aug 21 '19 22:08 sr229

Hello we are working on this: @Rijul5 has started to work on a vscode extension that is using teletype libraries and would work on Che ... as part of the Google Summer of Code. He is trying his best to have something working at the moment.

sunix avatar Aug 22 '19 02:08 sunix

Good to know there are responsible group of people working on this ;)

Le jeu. 22 août 2019 à 04:23, Sun Seng David TAN [email protected] a écrit :

Hello we are working on this: @Rijul5 https://github.com/Rijul5 has started to work on a vscode extension that is using teletype libraries and would work on Che ... as part of the Google Summer of Code. He is trying his best to have something working at the moment.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/eclipse/che/issues/8286?email_source=notifications&email_token=AATR7L23MUCAAFMEV5RPWZ3QFX2ATA5CNFSM4ELTE6H2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD43VIMI#issuecomment-523719729, or mute the thread https://github.com/notifications/unsubscribe-auth/AATR7L4AN45AESX2EHBNMGDQFX2ATANCNFSM4ELTE6HQ .

m-hu avatar Aug 22 '19 07:08 m-hu

So, with Che 7/CRW 2.0, this wouldn't be released, correct?

bryantson avatar Aug 22 '19 19:08 bryantson

@sunix when can we expect a working draft/Beta and source release?

sr229 avatar Aug 23 '19 00:08 sr229

We will release this as soon as this will be ready. It will be coming as a Che7 plugin indépendant from Che7 release process: would be available in the market place.

sunix avatar Aug 23 '19 01:08 sunix

We will release this as soon as this will be ready. It will be coming as a Che7 plugin indépendant from Che7 release process: would be available in the market place.

That would absolutely amazing, let us know if there's a working draft available - this will go really hand in hand with people who prefers VSCode/Web over Theia.

sr229 avatar Sep 11 '19 20:09 sr229

@sunix Sounds great.

bryantson avatar Sep 11 '19 22:09 bryantson

Issues go stale after 180 days of inactivity. lifecycle/stale issues rot after an additional 7 days of inactivity and eventually close.

Mark the issue as fresh with /remove-lifecycle stale in a new comment.

If this issue is safe to close now please do so.

Moderators: Add lifecycle/frozen label to avoid stale mode.

che-bot avatar Mar 11 '20 16:03 che-bot

Still in progress, @Rijul5 is going to show us his progress during the next community call

sunix avatar Mar 20 '20 12:03 sunix

Hi @sunix any updates on this? Thanks 👍

traveling-developer avatar Jul 30 '20 13:07 traveling-developer

@Rijul5 is still working on it. ATM stuck in having his extension working in a container. @yudansha interested to give a hand? :)

sunix avatar Jul 30 '20 13:07 sunix

@Rijul5 is still working on it. ATM stuck in having his extension working in a container. @yudansha interested to give a hand? :)

Any progress on this feature?

patlachance avatar Dec 17 '20 06:12 patlachance

I can successfully build the vsix but as I see it (yet haven't tested it) this requires a node CLI dockerImage container running a postgres server and a node sidecar for the extension which has the teletype-client connecting to localhost to the cli postgres.

@sunix have you tested this before? there's ~6 months of idle time in the extension repo tho it'd be nice to use this from RH-devsandbox to che-osio and home barebone minikube

gattytto avatar Dec 18 '20 21:12 gattytto

Last time i tried the extension, it was failing to run inside a che container. but was working fine in vsix. I am still wondering if this is the right approach: Teletype is using webrtc, and in the prototype, it is trying to run a headless browser to have access to it. I did not have time to investigate the problem. Maybe we should reconsider the approach and use either a Theia plugin that would run in browser. or a Theia extension with the browser component. Also I am not sure about the reliability of having it as a vscode ext.

So I would recommend that we work on a Theia extension or plugin, browser side to quickly produce a POC of a Teletype guest client. Would be something similar to what we had for that demo we have done with Che6.

Some ideas for the next steps to take in consideration that we don't want to share the workspace (no terminal access to the workspace): we could start a theia container with limited features but these ones could only participate in editing the files open by the host and main che-theia IDE.

sunix avatar Jan 20 '21 08:01 sunix

Last time i tried the extension, it was failing to run inside a che container. but was working fine in vsix. I am still wondering if this is the right approach: Teletype is using webrtc, and in the prototype, it is trying to run a headless browser to have access to it. I did not have time to investigate the problem. Maybe we should reconsider the approach and use either a Theia plugin that would run in browser. or a Theia extension with the browser component. Also I am not sure about the reliability of having it as a vscode ext.

So I would recommend that we work on a Theia extension or plugin, browser side to quickly produce a POC of a Teletype guest client. Would be something similar to what we had for that demo we have done with Che6.

Some ideas for the next steps to take in consideration that we don't want to share the workspace (no terminal access to the workspace): we could start a theia container with limited features but these ones could only participate in editing the files open by the host and main che-theia IDE.

Considering Theia supports VSIX nowadays I think it's better to make it a VSIX instead and let the IDE container run the client under the hood.

sr229 avatar Mar 21 '21 05:03 sr229

for your information, today, we started to work again on the co-editing/pair programming extension that @Rijul5 has started some times ago. With @demsking as part of https://paris2021.hack-commit-pu.sh/. WIP is here https://github.com/demsking/vscode-teletype-guest/commits/dev We starting a new approach to avoid running webrtc in node: running the whole teletype client in a webview. I hope it will work, we will continue working on that during our free time.

sunix avatar May 29 '21 14:05 sunix

Issues go stale after 180 days of inactivity. lifecycle/stale issues rot after an additional 7 days of inactivity and eventually close.

Mark the issue as fresh with /remove-lifecycle stale in a new comment.

If this issue is safe to close now please do so.

Moderators: Add lifecycle/frozen label to avoid stale mode.

che-bot avatar Dec 06 '21 08:12 che-bot

Hi, what is the current status of live collaboration? Best Regards

Deel96 avatar Sep 15 '22 10:09 Deel96

@Deel96 https://che.eclipseprojects.io/2022/04/01/@florent.benoit-pair-programming-using-vscode-editor.html

azatsarynnyy avatar Sep 15 '22 11:09 azatsarynnyy