KTp
Introduction
Real time Communication has traditionally been a detached feature of Desktop Computing, provided via stand-alone Instant Messaging clients with poor integration into the desktop experience. One of the primary goals of the KDE 4 series is to tighten integration between different components of the environment. The Realtime Communication and Collaboration (RTCC) project aims to tackle just this.
Our aims are:
- To integrate Real Time Communication deeply into the KDE Workspaces and Applications
- To provide a infrastructure to aid development of Collaborative features for KDE applications.
If you find these goals appealing, why not consider getting involved. C++ programming is *not* a necessity.
Technical Information
- The RTCC project uses the cross-desktop Telepathy Framework as the basis for our work.
- We should try and reuse code from Kopete/other already existing code wherever possibly. However, this should be balanced with the need to refactor/rewrite where appropriate to keep the new code true to Telepathy idioms.
Frequently Asked Questions
You can find a list of answers to frequently asked questions here: FAQ.
See also https://gkiagia.wordpress.com/2010/09/20/what-is-telepathy-kde/
Getting Started
Before you start playing with/hacking on the Telepathy integration stuff, you need to get it all compiled: Instructions
We are currently in the process of porting all our work from telepathy-qt4 0.3/0.4 to version 0.5 (which is binary incompatible with 0.3 and 0.4). This page shows the progress with this task.
The Plan
1) Build components equivalent to a traditional IM application, using Kopete code as much as possible, and integrating with other Pillars of KDE where appropriate.
2) Add advanced Telepathy features such as voice/video.
3) Build components and Convenience classes to enable real-time communication and collaboration features in any KDE SC app that wants them.
The Work
What we need to get done. This is divided into two sections:
- Phase 1 contains the tasks which *must* be completed in order for us to make a first preview release.
- Phase 2 contains other speculative major features that we will probably implement once Phase 1 is complete.
Phase 1
These are the essential tasks which must be completed before we can make a first release. Adding or removing tasks from this list requires a consensus on the kde-telepathy mailing list first. Click on a task title for further information about that task.
Status | Task | Developers | Source Code |
---|---|---|---|
IN PROGRESS | Account Management GUI | George Goldberg <grundleborg googlemail com> | See here |
IN PROGRESS | Chat Window App/Lib | David Edmundson <kde davidedmundson co uk> | See here |
IN PROGRESS | Buddy List App | Marty Klapetek <martin.klapetek gmail com> | See here |
IN PROGRESS | Desktop Wide Tp::Approver | George Kiagiadakis <kiagiadakis.george gmail com> | |
IN PROGRESS | Telepathy Integration Daemon | George Goldberg <grundleborg googlemail com> Dario Freddi <drf kde org> Help much appreciated | See here |
IN PROGRESS | Presence Plasmoid | Dario Freddi <drf kde org> | See here |
Phase 2
This section contains features that will *probably* be implemented once the first preview release has been made.
Status | Task | Developers | Source Code |
---|---|---|---|
IN PROGRESS | Logger Application | Stefano Sanfilippo <stefano.k.sanfilippo gmail com> | Still in a scratch repo |
IN PROGRESS | Call UI | George Kiagiadakis <kiagiadakis.george gmail com> | See here |
Getting Involved
At this stage, the best way to get involved is to contact the existing team, either on IRC (#kde-telepathy channel on irc.freenode.net) or on our mailing list.
Workflow
If you want to work on a feature, clone the git repository on the server side and then clone your personal clone on your local machine. Make a new git branch and start working there. Try to keep commits small and meaningful. Once you are finished, push the branch on your server-side clone and ask someone of the team to review it. Once it is reviewed, you can merge it on the master repository (or ask someone else to merge it).