eclipse-che / che

Kubernetes based Cloud Development Environments for Enterprise Teams
http://eclipse.org/che
Eclipse Public License 2.0
6.99k stars 1.19k forks source link

Live collaboration capabilities #8286

Open slemeur opened 6 years ago

slemeur commented 6 years ago

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:

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.

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

MahatmaFatalError commented 6 years ago

Are there any news to share here?

sr229 commented 6 years ago

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

bdeleonardis1 commented 5 years ago

Any update?

slemeur commented 5 years ago

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.

bryantson commented 5 years ago

Is there any update on this?

sr229 commented 5 years ago

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

sunix commented 5 years ago

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.

m-hu commented 5 years ago

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

Le jeu. 22 août 2019 à 04:23, Sun Seng David TAN notifications@github.com 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 .

bryantson commented 5 years ago

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

sr229 commented 5 years ago

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

sunix commented 5 years ago

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.

sr229 commented 5 years ago

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.

bryantson commented 5 years ago

@sunix Sounds great.

che-bot commented 4 years ago

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.

sunix commented 4 years ago

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

traveling-developer commented 4 years ago

Hi @sunix any updates on this? Thanks 👍

sunix commented 4 years ago

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

patlachance commented 3 years ago

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

gattytto commented 3 years ago

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

sunix commented 3 years ago

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.

sr229 commented 3 years ago

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.

sunix commented 3 years ago

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.

che-bot commented 2 years ago

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.

Deel96 commented 2 years ago

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

azatsarynnyy commented 2 years ago

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