New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pair programming plugin #2131

Closed
wants to merge 11 commits into
from

Conversation

Projects
None yet
10 participants
@rnavagamuwa

rnavagamuwa commented Aug 15, 2016

What does this PR do?

This PR adds the pair programming feature for Eclipse che.

New Behavior

This content may also be included in the release notes.

Tests written?

No

To make the demo up and running:

  1. Select custom stack FLUX from stacks library.
  2. Create a project.
  3. Run the custom command flux
  4. Open a file to edit
  5. Open a new browser windows to the same workspace, open the same file to edit

Documentation

Demo

@codenvy-ci

This comment has been minimized.

Show comment
Hide comment
@codenvy-ci

codenvy-ci Aug 15, 2016

Can one of the admins verify this patch?

Can one of the admins verify this patch?

@codenvy-ci

This comment has been minimized.

Show comment
Hide comment
@codenvy-ci

codenvy-ci Aug 15, 2016

Can one of the admins verify this patch?

Can one of the admins verify this patch?

@TylerJewell

This comment has been minimized.

Show comment
Hide comment
@TylerJewell

TylerJewell Aug 15, 2016

Contributor

We should start gathering a set of requirements on what will be needed to improve in order for this PR to be accepted and placed into the core project.

My initial thoughts:

  1. We need to see the dockerfile that you use as a base for the workspace.
  2. Please document all of the non-standard software installed into the workspace that you requrie.
  3. We may want to talk a little to @tolusha about packaging up some of the post-ws software into an agent, which is a new concept. Users will be allowed to "add an agent" to a ws, which will be software that can run inside. Maybe "pair-programming" would be the agent here.
  4. Any sense of disk and memory requirements for running the system?
Contributor

TylerJewell commented Aug 15, 2016

We should start gathering a set of requirements on what will be needed to improve in order for this PR to be accepted and placed into the core project.

My initial thoughts:

  1. We need to see the dockerfile that you use as a base for the workspace.
  2. Please document all of the non-standard software installed into the workspace that you requrie.
  3. We may want to talk a little to @tolusha about packaging up some of the post-ws software into an agent, which is a new concept. Users will be allowed to "add an agent" to a ws, which will be software that can run inside. Maybe "pair-programming" would be the agent here.
  4. Any sense of disk and memory requirements for running the system?
@TylerJewell

This comment has been minimized.

Show comment
Hide comment
@TylerJewell

TylerJewell Aug 16, 2016

Contributor

@rnavagamuwa @sunix - the technical team leads for Che and some of the product managers would like to get a meeting to present a demo, get some screen shots, and to discuss the longer term technology requirements necessary to get these changes committed into the system. Can we arrange a meeting for 6am pacific one day during an upcoming week? We will create a google hangout that lets us all share screens together. Can you propose a couple days that may work for you?

Contributor

TylerJewell commented Aug 16, 2016

@rnavagamuwa @sunix - the technical team leads for Che and some of the product managers would like to get a meeting to present a demo, get some screen shots, and to discuss the longer term technology requirements necessary to get these changes committed into the system. Can we arrange a meeting for 6am pacific one day during an upcoming week? We will create a google hangout that lets us all share screens together. Can you propose a couple days that may work for you?

@rnavagamuwa

This comment has been minimized.

Show comment
Hide comment
@rnavagamuwa

rnavagamuwa Aug 16, 2016

@TylerJewell I'm fine with any day.Will have to check with @sunix

@TylerJewell I'm fine with any day.Will have to check with @sunix

@TylerJewell

This comment has been minimized.

Show comment
Hide comment
@TylerJewell

TylerJewell Aug 16, 2016

Contributor

I made a proposal for next Monday. Here is the google hangout link. I hope this can work for everyone.
https://plus.google.com/hangouts/_/codenvy.com/tjewell?hceid=dGpld2VsbEBjb2RlbnZ5LmNvbQ.im9k75jimfljt8c2g9tfl2j6bs&authuser=0

Contributor

TylerJewell commented Aug 16, 2016

I made a proposal for next Monday. Here is the google hangout link. I hope this can work for everyone.
https://plus.google.com/hangouts/_/codenvy.com/tjewell?hceid=dGpld2VsbEBjb2RlbnZ5LmNvbQ.im9k75jimfljt8c2g9tfl2j6bs&authuser=0

@TylerJewell TylerJewell reopened this Aug 16, 2016

@rnavagamuwa

This comment has been minimized.

Show comment
Hide comment
@rnavagamuwa

rnavagamuwa Aug 16, 2016

@TylerJewell is it possible for you to have this on next Tuesday? I'm okay with any day except next Monday. Sorry I couldn't mention this earlier. 😞

@TylerJewell is it possible for you to have this on next Tuesday? I'm okay with any day except next Monday. Sorry I couldn't mention this earlier. 😞

@TylerJewell

This comment has been minimized.

Show comment
Hide comment
@TylerJewell

TylerJewell Aug 16, 2016

Contributor

Yes - no problem!

Tyler Jewell | CEO | tyler@​codenvy.​com | 9​78​.8​84​.53​55

On Tue, Aug 16, 2016 at 9:43 AM, Randika Navagamuwa <
notifications@github.com> wrote:

@TylerJewell https://github.com/TylerJewell is it possible for you to
have this on next Tuesday? I'm okay with any day except next Monday. Sorry
I couldn't mention this earlier. 😞


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#2131 (comment), or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAX9CkH0hxWr6H6Y1pExPCymA5Pch1akks5qgeitgaJpZM4JkiPx
.

Contributor

TylerJewell commented Aug 16, 2016

Yes - no problem!

Tyler Jewell | CEO | tyler@​codenvy.​com | 9​78​.8​84​.53​55

On Tue, Aug 16, 2016 at 9:43 AM, Randika Navagamuwa <
notifications@github.com> wrote:

@TylerJewell https://github.com/TylerJewell is it possible for you to
have this on next Tuesday? I'm okay with any day except next Monday. Sorry
I couldn't mention this earlier. 😞


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#2131 (comment), or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAX9CkH0hxWr6H6Y1pExPCymA5Pch1akks5qgeitgaJpZM4JkiPx
.

@shadowcodex

This comment has been minimized.

Show comment
Hide comment
@shadowcodex

shadowcodex Aug 30, 2016

Does it look like this is going to get merged in any time soon?

Does it look like this is going to get merged in any time soon?

@TylerJewell

This comment has been minimized.

Show comment
Hide comment
@TylerJewell

TylerJewell Aug 30, 2016

Contributor

It's hard to determine the time it takes for merge. Given the first review of the work, there are about 6 or so improvements that need to be made.

Contributor

TylerJewell commented Aug 30, 2016

It's hard to determine the time it takes for merge. Given the first review of the work, there are about 6 or so improvements that need to be made.

@TylerJewell

This comment has been minimized.

Show comment
Hide comment
@TylerJewell

TylerJewell Aug 30, 2016

Contributor

@rnavagamuwa - we are doing the merge tomorrow for the new stack / workspace / agent model into the master branch. It will take us a couple days to settle everything down. If you can then merge your changes with that branch and work with @tolusha on how to package up your work as an agent, then I think this will be the important step to take forward.

Contributor

TylerJewell commented Aug 30, 2016

@rnavagamuwa - we are doing the merge tomorrow for the new stack / workspace / agent model into the master branch. It will take us a couple days to settle everything down. If you can then merge your changes with that branch and work with @tolusha on how to package up your work as an agent, then I think this will be the important step to take forward.

@rnavagamuwa

This comment has been minimized.

Show comment
Hide comment
@rnavagamuwa

rnavagamuwa Aug 30, 2016

@TylerJewell sure. I'll merge the new changes and then work with @tolusha on packaging. 👍

@TylerJewell sure. I'll merge the new changes and then work with @tolusha on packaging. 👍

@shadowcodex

This comment has been minimized.

Show comment
Hide comment
@shadowcodex

shadowcodex Aug 30, 2016

@TylerJewell understand completely. I'm just excited to see this coming, I've been waiting for this feature since initial release. Thank you @rnavagamuwa for this pull request.

@TylerJewell understand completely. I'm just excited to see this coming, I've been waiting for this feature since initial release. Thank you @rnavagamuwa for this pull request.

@sunix

This comment has been minimized.

Show comment
Hide comment
@sunix

sunix Sep 9, 2016

Contributor

Guys, I'm going to rework this PR

  • rebasing all the changesets
  • make it work with 5.0.0-M1-SNAPSHOT

@rnavagamuwa could you give me push rights on your forked branch ?
@rnavagamuwa i let you know but i will probably make nasty push force

Contributor

sunix commented Sep 9, 2016

Guys, I'm going to rework this PR

  • rebasing all the changesets
  • make it work with 5.0.0-M1-SNAPSHOT

@rnavagamuwa could you give me push rights on your forked branch ?
@rnavagamuwa i let you know but i will probably make nasty push force

@rnavagamuwa

This comment has been minimized.

Show comment
Hide comment
@rnavagamuwa

rnavagamuwa Sep 9, 2016

@sunix I gave you push rights 😄 I'm also working on moving code base to CHE 4.5. 👍

@sunix I gave you push rights 😄 I'm also working on moving code base to CHE 4.5. 👍

@bmicklea

This comment has been minimized.

Show comment
Hide comment
@bmicklea

bmicklea Oct 6, 2016

Contributor

@sunix @rnavagamuwa is this ready for review? Or are more changes needed to bring it up to 5.x version?

Contributor

bmicklea commented Oct 6, 2016

@sunix @rnavagamuwa is this ready for review? Or are more changes needed to bring it up to 5.x version?

@rnavagamuwa

This comment has been minimized.

Show comment
Hide comment
@rnavagamuwa

rnavagamuwa Oct 6, 2016

@bmicklea yes this is ready for review.

@bmicklea yes this is ready for review.

@bmicklea

This comment has been minimized.

Show comment
Hide comment
@bmicklea

bmicklea Oct 6, 2016

Contributor

@skabashnyuk who should review this one?

Contributor

bmicklea commented Oct 6, 2016

@skabashnyuk who should review this one?

@TylerJewell

This comment has been minimized.

Show comment
Hide comment
@TylerJewell

TylerJewell Oct 6, 2016

Contributor

@bmicklea - this is not ready for review or merge. We need to have the pair plugin packaged as a non-default agent. We have published instructions on that, and asked @sunix for a meeting to discuss path to get that closed + resolved. We need to help with that migration + conversion.

Contributor

TylerJewell commented Oct 6, 2016

@bmicklea - this is not ready for review or merge. We need to have the pair plugin packaged as a non-default agent. We have published instructions on that, and asked @sunix for a meeting to discuss path to get that closed + resolved. We need to help with that migration + conversion.

@shadowcodex

This comment has been minimized.

Show comment
Hide comment
@shadowcodex

shadowcodex Nov 1, 2016

@TylerJewell is this going to replace the workflow that Sun Tan is going to discuss at checonf2016 using eclipse flux?

@TylerJewell is this going to replace the workflow that Sun Tan is going to discuss at checonf2016 using eclipse flux?

@TylerJewell

This comment has been minimized.

Show comment
Hide comment
@TylerJewell

TylerJewell Nov 1, 2016

Contributor

Sun tan's workflow and this project are the same project.

Contributor

TylerJewell commented Nov 1, 2016

Sun tan's workflow and this project are the same project.

@shadowcodex

This comment has been minimized.

Show comment
Hide comment
@shadowcodex

shadowcodex Nov 15, 2016

I'm going to be working on adding OT to flux. Will have to modify the orion plugin as well to make it work right. Should we add that to this PR or a separate one later?

#3080

shadowcodex commented Nov 15, 2016

I'm going to be working on adding OT to flux. Will have to modify the orion plugin as well to make it work right. Should we add that to this PR or a separate one later?

#3080

@TylerJewell

This comment has been minimized.

Show comment
Hide comment
@TylerJewell

TylerJewell Nov 15, 2016

Contributor

I believe that @sunix is planning to productize this PR over the next couple months, including looking at having multiple backbones beyond flux as well. You guys should connect to discuss strategies - having a true OT engine would be awesome. I think there was an open source OT engine out there somewhere, but I cannot remember what its name is.

Contributor

TylerJewell commented Nov 15, 2016

I believe that @sunix is planning to productize this PR over the next couple months, including looking at having multiple backbones beyond flux as well. You guys should connect to discuss strategies - having a true OT engine would be awesome. I think there was an open source OT engine out there somewhere, but I cannot remember what its name is.

@shadowcodex

This comment has been minimized.

Show comment
Hide comment
@shadowcodex

shadowcodex Nov 18, 2016

@sunix @TylerJewell is this going into the 5.0 release? I didn't see it on the announcement in the forums.

@sunix @TylerJewell is this going into the 5.0 release? I didn't see it on the announcement in the forums.

@TylerJewell

This comment has been minimized.

Show comment
Hide comment
@TylerJewell

TylerJewell Nov 18, 2016

Contributor

No - it will not make it into 5.0 milestone. There is a lot of performance hardening that needs to be done. @sunix is targeting it for early part of 2017.

Contributor

TylerJewell commented Nov 18, 2016

No - it will not make it into 5.0 milestone. There is a lot of performance hardening that needs to be done. @sunix is targeting it for early part of 2017.

rnavagamuwa added some commits Aug 15, 2016

Custom Flux stack added to the stacks library
Sample projects tag added for flux stack
Description and some other tags updated in Flux custom stack
Signed-off-by: rnavagamuwa <randikanavagamuwa@gmail.com>
Deprecated classes have been removed from the code
Signed-off-by: rnavagamuwa <randikanavagamuwa@gmail.com>
Licence headers added to some classes
Signed-off-by: rnavagamuwa <randikanavagamuwa@gmail.com>
sort pom issues and license header issues fixed
Signed-off-by: rnavagamuwa <randikanavagamuwa@gmail.com>
Fixed CommandPropertyValueProviderRegistry issue in pair programming …
…extension

Signed-off-by: rnavagamuwa <randikanavagamuwa@gmail.com>
@bmicklea

This comment has been minimized.

Show comment
Hide comment
@bmicklea

bmicklea Feb 9, 2017

Contributor

Hi @sunix - any update on this pull request - it's highly anticipated! :)

Contributor

bmicklea commented Feb 9, 2017

Hi @sunix - any update on this pull request - it's highly anticipated! :)

@TylerJewell

This comment has been minimized.

Show comment
Hide comment
@TylerJewell

TylerJewell Apr 17, 2017

Contributor

Thank you @rnavagamuwa @sunix for the contribution. We have learned a lot from this submission. We have refactoring a number of communication systems to use JSON-RPC and we have a new file system watcher that would make notifications and implementation of such a system more efficient. We are going to close this PR to work on this alternative approach.

Contributor

TylerJewell commented Apr 17, 2017

Thank you @rnavagamuwa @sunix for the contribution. We have learned a lot from this submission. We have refactoring a number of communication systems to use JSON-RPC and we have a new file system watcher that would make notifications and implementation of such a system more efficient. We are going to close this PR to work on this alternative approach.

@bsukramlitt

This comment has been minimized.

Show comment
Hide comment
@bsukramlitt

bsukramlitt Apr 21, 2017

Could the alternative approach be expected as part of che later this year?

Could the alternative approach be expected as part of che later this year?

@TylerJewell

This comment has been minimized.

Show comment
Hide comment
@TylerJewell

TylerJewell Apr 21, 2017

Contributor
Contributor

TylerJewell commented Apr 21, 2017

@nterray

This comment has been minimized.

Show comment
Hide comment
@nterray

nterray Apr 21, 2017

Hello,

I do not see mention of pair programming in the roadmap. Is it labelled differently or do you plan to add the item in the roadmap later on?

nterray commented Apr 21, 2017

Hello,

I do not see mention of pair programming in the roadmap. Is it labelled differently or do you plan to add the item in the roadmap later on?

@TylerJewell

This comment has been minimized.

Show comment
Hide comment
@TylerJewell

TylerJewell Apr 21, 2017

Contributor
Contributor

TylerJewell commented Apr 21, 2017

@bsukramlitt

This comment has been minimized.

Show comment
Hide comment
@bsukramlitt

bsukramlitt Apr 21, 2017

Also I would love to have a look on the architecture. Is it documented somehow=

Also I would love to have a look on the architecture. Is it documented somehow=

@rektide

This comment has been minimized.

Show comment
Hide comment
@rektide

rektide Apr 21, 2017

It is an open source project so we update the roadmap with all epics that have been reserved or committed to by a contributor in the ecosystem.

The maintainers have agreed upon an architecture and approach but it is not added to the roadmap until someone commits to working on it with a pr. So it is open for anyone to grab right now.

It'd be super handy to have a Github issue to track for this effort. There's #4474, so that might be a good issue to track.

On another note, I also really like that #4474 doesn't specify a number of users who are collaborating together. Having one person make changes & having those changes show up on someone else's workspace immediately is 96% of what I'm looking forward to, and want for collaboration mechanisms.

rektide commented Apr 21, 2017

It is an open source project so we update the roadmap with all epics that have been reserved or committed to by a contributor in the ecosystem.

The maintainers have agreed upon an architecture and approach but it is not added to the roadmap until someone commits to working on it with a pr. So it is open for anyone to grab right now.

It'd be super handy to have a Github issue to track for this effort. There's #4474, so that might be a good issue to track.

On another note, I also really like that #4474 doesn't specify a number of users who are collaborating together. Having one person make changes & having those changes show up on someone else's workspace immediately is 96% of what I'm looking forward to, and want for collaboration mechanisms.

@TylerJewell

This comment has been minimized.

Show comment
Hide comment
@TylerJewell

TylerJewell Apr 22, 2017

Contributor

So, it's possible today to have multiple users in a shared workspace with Che. You can give each user the same URL and they can work within that workspace. It's a last-write wins scenario, but their changes are made to a shared file system and the updates (eventually) appear on each others screen. There is no operational transform, however, and there is not multi-cursor editing where you can see the other person typing as they type. So the UX and behavior is not as you might expect, but there is a form of shared space capability in the product as it is designed today.

I think the engineer / community member that commits to doing the proper implementation will need to write a new specification as an epic replacing #4474. We tend not to have really good detailed specifications on a project until an engineer is full time committed to it. But the basic approach for the design of this is to make use of a number of server-side file-system watchers that we have built into our workspace agents on the server side to generate efficient events to let us build multi-cursor editing into different browsers sharing a common workspace.

Contributor

TylerJewell commented Apr 22, 2017

So, it's possible today to have multiple users in a shared workspace with Che. You can give each user the same URL and they can work within that workspace. It's a last-write wins scenario, but their changes are made to a shared file system and the updates (eventually) appear on each others screen. There is no operational transform, however, and there is not multi-cursor editing where you can see the other person typing as they type. So the UX and behavior is not as you might expect, but there is a form of shared space capability in the product as it is designed today.

I think the engineer / community member that commits to doing the proper implementation will need to write a new specification as an epic replacing #4474. We tend not to have really good detailed specifications on a project until an engineer is full time committed to it. But the basic approach for the design of this is to make use of a number of server-side file-system watchers that we have built into our workspace agents on the server side to generate efficient events to let us build multi-cursor editing into different browsers sharing a common workspace.

@rektide

This comment has been minimized.

Show comment
Hide comment
@rektide

rektide Nov 17, 2017

I think the engineer / community member that commits to doing the proper implementation will need to write a new specification as an epic

Perhaps an existing collaborative editing spec or project might work well for Che. Some candidates:

rektide commented Nov 17, 2017

I think the engineer / community member that commits to doing the proper implementation will need to write a new specification as an epic

Perhaps an existing collaborative editing spec or project might work well for Che. Some candidates:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment