GNOME Bugzilla – Bug 646312
telepathy support for gedit-collaboration
Last modified: 2020-11-24 09:58:54 UTC
Maybe some of you already know about what I was doing over the last months: I was working on infinote and gedit-collaboration to give them support for collaboration over telepathy.
This works via telepathy-tubes that tunnel all the infinote communication. The branch I used to implement this is not 100% ready yet, but I think its in a state where extensive testing would bring it forward. Especially since I'm not happy with the ui (I focused on getting it to work first), comments and help with that would be highly appreciated.
You can find the branch with my work here: http://git.collabora.co.uk/?p=user/kaserf/gedit-collaboration.git;a=shortlog;h=refs/heads/add-telepathy-support
In order to build it, you will need gedit-3, folks, telepathy-glib and infinote.
A short introduction on how to use it:
You can use it exactly like the "classic" gedit-collaboration plugin. If a friend of you (in your empathy contact list) supports this special kind of tubes (has gedit with an activated gedit-collaboration plugin running) you will see him in the sidebar where your bookmarks to existing infinoted servers are. Then you can connect to your friend like you would connect to a infinoted server, create files and folders and edit the files collaboratively.
Right now every connection request is accepted, simply because the ui to accept or decline connections is still missing. Collaborating with buddies from your contact list should probably happen in a different way then you would collaborate via a infinoted server, proposals on how to do this are more then welcome.
Hey fill free to merge in master.
I'm a student that works to make kate a collaboratie editor. I think maybe you can tell me more precisely how you did it and then we can make gedit-collaboration and kate-collaboration compatible.
(In reply to comment #1)
> Hey fill free to merge in master.
what do you mean by that? like merge now or merge after some more work?
(In reply to comment #2)
> I'm a student that works to make kate a collaboratie editor. I think maybe you
> can tell me more precisely how you did it and then we can make
> gedit-collaboration and kate-collaboration compatible.
how are you doing the collaboration stuff? are you using infinote as well?
Right now there is quite some telepathy logic in the gedit-collaboration branch, which should be moved to infinote. Then you could use infinote which would take care of the telepathy stuff.
(In reply to comment #3)
> (In reply to comment #1)
> > Hey fill free to merge in master.
> what do you mean by that? like merge now or merge after some more work?
feel free to push the branch in the gnome server and if you think it is free from crashes let's merge it in master.
> (In reply to comment #2)
> > I'm a student that works to make kate a collaboratie editor. I think maybe you
> > can tell me more precisely how you did it and then we can make
> > gedit-collaboration and kate-collaboration compatible.
> Hi Marc,
> how are you doing the collaboration stuff? are you using infinote as well?
> Right now there is quite some telepathy logic in the gedit-collaboration
> branch, which should be moved to infinote. Then you could use infinote which
> would take care of the telepathy stuff.
Nowadays the collaboration stuff does not exists. It's my job to
design and develop it. At start I considered using infinote protocol
in a telepathy tube channel from a well known communication service
(jabber ...) I thought about using waveprotocol but wave has more
functionality than the funcionality we need.
Why you think that infinote has to take care about telepathy stuff?
(In reply to comment #5)
> Nowadays the collaboration stuff does not exists. It's my job to
> design and develop it. At start I considered using infinote protocol
> in a telepathy tube channel from a well known communication service
> (jabber ...) I thought about using waveprotocol but wave has more
> functionality than the funcionality we need.
> Why you think that infinote has to take care about telepathy stuff?
well, moving the telepathy stuff to infinote would make it for another projects without having to be reimplemented in each one. IMHO it is a good idea.
I thought in the collaborative text as a type of telepathy channel (in fact a tube) and make the collaborative edition protocol interact only with the tube without bloating the protocol with user management and other things that the different telepathy connection-managers know how to do very well. By this way we get a communication service agnostic collaborative edition protocol. Doing it as always we are forcing the user to have an account on an infinote server.
I think infinote is designed as a communication service (in fact a inf-connection-manager exists) instead of as a communication protocol (create a channel and its specific interfaces).
Correct me please if i'm wrong.
@Felix, do you have the repo available somewhere? As the link in the bug does not work.
@Marc, I think you are wrong, the whole idea of using the telepathy tubes is to encapsulate the infinote thing. I am just guessing here, I have not seen the implementation, but I think that what Felix is doing is the following:
You start a collaboration on your side. this means that gedit-collaboration will start a local infinote server, and will set up a tube for the socket of the infinote server. So,telepathy will listen to this socket, if you are in the other end, you set up a tube to connect to the infinote server, which to you, looks like a local server (the telepathy tubes create a sockets and echoes everything it receives from the other end)... That way you use infinote without the need of having a well-known server. From a developer point of view, having this integrated just makes easier to use infinote as you can just say, start a infinote server and share it through a telepathy tube, and on the other side you just start a infinote client and say to connect to this telepathy tube you have.
@José: link is up again, sorry it was down for some time and nobody complained ;)
@Marc: José is right, thats exactly how I did it and I think its a nice way to go. Infinote handles the collaboration part and does not care on which communication channel the messages are transmitted. In a first hack I used the inf-tcp-connection and tunneled all the traffic through a tube. Then I started implementing inf-tp-connection which USES telepathy to establish a connection between two ends. Once the connection is established, infinote can talk its protocol from end to end.
Mass-closing of all gedit bugzilla tickets.
Special "code" to find again all those gedit bugzilla tickets that were open before the mass-closing:
By searching the above sha256sum in bugzilla, the gedit contributors can find again the tickets. We may be interested to do so when we work on a specific area of the code, to at least know the known problems and possible enhancements.
We do this mass-closing because bugzilla.gnome.org is being replaced by gitlab.gnome.org.