Jump to content

KTp/Developers: Difference between revisions

From KDE Community Wiki
< KTp
D ed (talk | contribs)
Created page with "==Introduction== Real time Communication has traditionally been a detached feature of Desktop Computing, provided via stand-alone Instant Messaging clients with poor integration..."
 
Pmello (talk | contribs)
Update page for transclusion to the main KTp project page
 
(11 intermediate revisions by 3 users not shown)
Line 1: Line 1:
==Introduction==
<noinclude>{{:KTp/Header}}</noinclude>


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.
=== Introduction ===
Real-time communication has traditionally been a detached feature of desktop computing, provided via standalone 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 KDE Telepathy (hereafter "KTp") project aims to tackle just this.


Our aims are:
Our aims are:
* To integrate Real Time Communication deeply into the KDE Workspaces and Applications
* 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.
* To provide an infrastructure to aid development of collaborative features for KDE applications.


If you find these goals appealing, why not consider [[#Getting_Involved|getting involved]]. C++ programming is *not* a necessity.
If you find these goals appealing, why not consider [[KTp/Getting_Involved|getting involved]]? C++ programming is ''not'' a requirement.


==Technical Information==
=== Technical information ===
* The RTCC project uses the cross-desktop [https://telepathy.freedesktop.org/ Telepathy Framework] as the basis for our work.
* We should try and reuse code from [[Kopete]] and other existing code wherever possible. However, this should be balanced with the need to refactor/rewrite where appropriate, to keep the new code true to Telepathy idioms.


* The RTCC project uses the cross-desktop [http://telepathy.freedesktop.org Telepathy Framework] as the basis for our work.
=== Frequently asked questions ===
* 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.
:'''''See also:''''' [https://gkiagia.wordpress.com/2010/09/20/what-is-telepathy-kde/ Gkiagia’s Blog: What is Telepathy-KDE?]
You can find a list of answers to frequently asked questions here: '''[[KTp/FAQ|FAQ]]'''.


==Frequently Asked Questions==
=== The plan ===
# Build components equivalent to a traditional IM application, using [[Kopete]] code as much as possible, and integrating with other pillars of KDE, where appropriate.
# Add advanced Telepathy features such as voice/video.
# Build components and convenience classes to enable real-time communication and collaboration features in any KDE SC app that wants them.


You can find a list of answers to frequently asked questions here: [[Real-Time_Communication_and_Collaboration/FAQ|FAQ]].
==== Current ongoing large tasks ====
* [[KTp/Tasks/Active|Active KTp tasks]]
* [[KTp/Tasks/Icons|KTp icons]]
* [[KTp/Tasks/KDEConnect|KDE Connect]]
* [[KTp/Tasks/KPeople|KPeople]]
* [[KTp/Tasks/Metacontacts|Metacontacts]]
* [[KTp/Tasks/ModelRoles|Model roles]]
* [[KTp/Tasks/NewCallUI|New Call UI]]
* [[KTp/Tasks/ProperLibrary|Proper library]]
* [[KTp/Tasks/TextUIQML|Text UI QML]]
* [[KTp/Components/Call UI|KTp Video Call UI]]


See also https://gkiagia.wordpress.com/2010/09/20/what-is-telepathy-kde/
==== Workflow ====
:'''''Main page:''''' [[KTp/Getting Involved#Workflow|Getting involved § Workflow]]


==Getting Started==
==== Use of milestones ====
Before you start playing with/hacking on the Telepathy integration stuff, you need to get it all compiled: [[Real-Time_Communication_and_Collaboration/Getting_Set_Up|Instructions]]
We're trialing a clever use of milestones suggested by Jeroen van Meeuwen.


{{Warning|If you are a distro packager, please [[Real-Time_Communication_and_Collaboration/Packaging_Guide|see here for information on packaging KDE-Telepathy]]}}
===== How it works =====
All bugs by default have the milestone <code>future</code> to indicate that "we'll do it at some point." If we have no intention of doing it, it should not be in Bugzilla.


==The Plan==
For each (upcoming) release there is a <samp>version-next</samp>, such as <code>0.4-next</code>. This contains everything we want fixed in the 0.4.x series.
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.
As we approach each release, we create a milestone for its version number (following the example above, the milestone would be <code>0.4.0</code>). Any bug we really want fixed before we can finalize that release then has its milestone changed from <code>0.4-next</code> to <code>0.4.0</code>. Any bug that we are happy to release 0.4.0 with, but still want fixed within the lifespan of the 0.4.x series remains in <code>0.4-next</code>. This process then gets repeated for every release.


3) Build components and Convenience classes to enable real-time communication and collaboration features in any KDE SC app that wants them.
====== Summary ======
* <code>0.5.0</code> = really aiming to fix this in 0.5.0
* <code>0.5.1</code> = really aiming to fix this 0.5.1
* <code>0.5-next</code>  = aim to fix this at some point in the 0.5 series.


==Getting Involved==
==== What should have a milestone ====
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 [https://mail.kde.org/mailman/listinfo/kde-telepathy mailing list].
Bugs that we know how to fix, have a solid plan for resolving and have the resources to execute. Assigning everything to "0.4.0" when there's no way we can get it done will help no one.


A list of junior jobs to get started can be found [https://bugs.kde.org/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&product=telepathy&long_desc_type=substring&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&keywords_type=allwords&keywords=junior-jobs&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailassigned_to1=1&emailtype1=substring&email1=&emailassigned_to2=1&emailreporter2=1&emailcc2=1&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0= here].  
It should remain a small list of high-priority tasks, such that developers can see what is important.


===Current Ongoing Large Tasks===
==== What bugs should I prioritize working on? ====
Anything tagged for the next release. In the case of the <code>0.4.0</code> milestone, then anything in <code>0.4-next</code>, and finally anything in <code>future</code>.


http://community.kde.org/index.php?title=Special%3APrefixIndex&prefix=Real-Time_Communication_and_Collaboration%2FTasks&namespace=0
Obviously, being free software, you're free to work on whatever the hell you want.


===Workflow===
==== Naming policy ====
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).
:'''''Main page:''''' [[KTp/NamingPolicy|Naming Policy]]


===Naming policy===
=== Events ===
[[Real-Time_Communication_and_Collaboration/NamingPolicy|Naming Policy]]
* [[KTp/Events/TelepathySprint1|Telepathy sprint - September 2010]]
* [[KTp/Events/TelepathySprint2|Telepathy sprint - September 2011]]
* [[KTp/Events/TelepathySprint3|Telepathy sprint - 1Q 2013]]<noinclude>


==Events==
=== Links ===
* [[Telepathy/Events/TelepathySprint1|Telepathy sprint - September 2010]]
* [https://telepathy.freedesktop.org/wiki/ Telepathy Wiki]
* [[Telepathy/Events/TelepathySprint2|Telepathy sprint - September 2011]]
* [https://telepathy.freedesktop.org/spec/index.html Telepathy Specs]
 
* [https://telepathy.freedesktop.org/doc/telepathy-qt/ Telepathy Qt Documentation]
==Links==
* [https://community.kde.org/index.php?title=Special%3APrefixIndex&prefix=KTp&namespace=0 Other pages]
* [http://telepathy.freedesktop.org/wiki/ Telepathy Wiki]
* [https://community.kde.org/index.php?title=Special%3APrefixIndex&prefix=KTp%2FComponents&namespace=0 All '''Components''' pages]
* [http://telepathy.freedesktop.org/spec/index.html Telepathy Specs]
* [https://community.kde.org/index.php?title=Special%3APrefixIndex&prefix=KTp%2FTasks&namespace=0 All '''Tasks''' pages]
* [http://telepathy.freedesktop.org/doc/telepathy-qt/ Telepathy Qt Documentation]
* [https://community.kde.org/index.php?title=Special%3APrefixIndex&prefix=KTp%2FEvents&namespace=0 All '''Events''' pages]</noinclude>
* [http://community.kde.org/index.php?title=Special%3APrefixIndex&prefix=Real-Time_Communication_and_Collaboration&namespace=0 Other pages]
* [http://community.kde.org/index.php?title=Special%3APrefixIndex&prefix=Real-Time+Communication+and+Collaboration%2FComponents&namespace=0 All '''Components''' pages]
* [http://community.kde.org/index.php?title=Special%3APrefixIndex&prefix=Real-Time+Communication+and+Collaboration%2FTasks&namespace=0 All '''Tasks''' pages]
* [http://community.kde.org/index.php?title=Special%3APrefixIndex&prefix=Real-Time+Communication+and+Collaboration%2FEvents&namespace=0 All '''Events''' pages]

Latest revision as of 17:28, 26 February 2024

Project logo Welcome to the
KDE Telepathy Development Wiki
Current Version: 23.07.70

Open Hub project report for KDE Telepathy

Introduction

Real-time communication has traditionally been a detached feature of desktop computing, provided via standalone 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 KDE Telepathy (hereafter "KTp") project aims to tackle just this.

Our aims are:

  • To integrate real-time communication deeply into the KDE workspaces and applications
  • To provide an 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 requirement.

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 and other existing code wherever possible. 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

See also: Gkiagia’s Blog: What is Telepathy-KDE?

You can find a list of answers to frequently asked questions here: FAQ.

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.

Current ongoing large tasks

Workflow

Main page: Getting involved § Workflow

Use of milestones

We're trialing a clever use of milestones suggested by Jeroen van Meeuwen.

How it works

All bugs by default have the milestone future to indicate that "we'll do it at some point." If we have no intention of doing it, it should not be in Bugzilla.

For each (upcoming) release there is a version-next, such as 0.4-next. This contains everything we want fixed in the 0.4.x series.

As we approach each release, we create a milestone for its version number (following the example above, the milestone would be 0.4.0). Any bug we really want fixed before we can finalize that release then has its milestone changed from 0.4-next to 0.4.0. Any bug that we are happy to release 0.4.0 with, but still want fixed within the lifespan of the 0.4.x series remains in 0.4-next. This process then gets repeated for every release.

Summary
  • 0.5.0 = really aiming to fix this in 0.5.0
  • 0.5.1 = really aiming to fix this 0.5.1
  • 0.5-next = aim to fix this at some point in the 0.5 series.

What should have a milestone

Bugs that we know how to fix, have a solid plan for resolving and have the resources to execute. Assigning everything to "0.4.0" when there's no way we can get it done will help no one.

It should remain a small list of high-priority tasks, such that developers can see what is important.

What bugs should I prioritize working on?

Anything tagged for the next release. In the case of the 0.4.0 milestone, then anything in 0.4-next, and finally anything in future.

Obviously, being free software, you're free to work on whatever the hell you want.

Naming policy

Main page: Naming Policy

Events

Links