Redefining kdelibs and kdebase

Benjamin Meyer ben at meyerhome.net
Sat Aug 27 09:45:48 BST 2005


Below is an idea that is not entirely my own (I am simply been the  
transcriber).  Around twenty or so people have looked at it and below  
is the current form after discussion.  In the main lab on the  
whiteboard it was drawn and talked about last night before closing  
and hopefully more talk will continue today/this week.

------------

-Biggest issue facing KDE is portability
o 3rd party developers that want to take advantage of what KDE has to  
offer
o KDE has no clear boundaries for libs and base making OS X and  
Window porting difficult.
o Not only to other OS's, but just using KDE applications in Xfce,  
Gnome, etc
With that in mind kdelibs and kdebase can be groups into the following

[KDE Workspace]  [KDE Base]
        \                           /
     [ KDE Frameworks ]
           |
     [ KDE Components ]
           |
        [ Qt  ]

Or a better image of it here:

http://www.icefox.net/gallery/pictures/2005/KDE/kde4.png

-----------

KDE Components
Consisting of portable, self contained classes that have unit tests.   
That classes should have as little dependancies upon other classes as  
possible.  Like Qt this should be divided up into core and ui  
libraries.  The maintainer should typically be the only commiters for  
each component.

Examples:
-KCmdLine
-KConfig
-KLED, KColorButton and other widgets
-A class to open a file, URL or a blank e-mail to someone
-A class to get paths such as temp, home, etc

KDE Frameworks
Consisting of portable interfaces and classes.  The frameworks are  
the infrastructure that is used to create applications.   It only has  
a dependancies to Desktop through C++ interfaces or dbus

Examples:
-Scripting language such as kjs or qsa
-XMLui
-KIO
-KHTML
-KPart
-Mainwindow
-Help system
-KConfigManager, ConfigCompiler
-Interfaces to common dialogs (file, print, etc)
-Address-book interface

KDE Workspace
Consisting of what is the desktop.  Libraries and applications don't  
need to be portable and probably will only work with X11.  On other  
desktops such as OS X, Windows and Gnome users wouldn't run  
applications that are included with this package.  Your average  
application shouldn't have dependancies to KDE desktop unless they  
are a component such as a screen-saver or panel applet.  Once  
libraries such as KIO are portable then they should be moved into  
frameworks.

Examples:
-KWin
-Plasma
-Screen-saver
-System Settings (KControl or whatever it will be)
-Session Management
-KDEPrint
-KFileDialog

KDE Base
Consisting of what runs on the desktop.  This packages is the basic  
set of applications beyond the desktop that KDE applications can  
assume are installed.  These applications should have no problem  
running on Windows, OS X or Gnome as stand alone applications is the  
user wanted them to be.  They would be useful applications in OS X  
etc.  This module might not contain everything that a user would  
expect a basic desktop to have (no calculator, spreadsheet etc) as  
those are in the rest of the modules (kdemultimedia, kdeutils etc)

Examples:
-File Manager
-Viewer
-Web Browser
-Help Center
-Konsole
-KWrite


How it would look in svn:
kdelibs/kde3support/
kdelibs/kdecomponents/
kdelibs/kdeframework/

kdeworkspace/

kdebase/

Even though componants, compat and framework are seperate packages  
they could be in kdelibs.  So end the end we would only be making one  
new module.




More information about the kde-core-devel mailing list