Contents

Source Repositories and Revision Control

KDE uses a central online repository to store our Source Code and to track changes made to the code. Currently, KDE is in the middle of migrating our main repository from Subversion (svn) to Sources/Git/Git, so some software modules currently live in Git while others are still only available from Subversion. This means you will need to become familiar with both systems.

For more information on using Git in KDE, please see the KDE Git page.

For more information on using Subversion, please see the following pages which may be outdated with regards to which modules live in SVN:

KDE Software Modules

TODO: Describe the SC, the Platform/Wokplace/Apps split, the modules/projects split, and how its changed between svn and git.

Within the KDE Source Repository the code is organized in Projects and Modules. There are also a number of high-level groupings of the Modules.

Module Groups

KDE Software Compilation (aka KDE SC): This is an informal term covering all the KDE Software which is released together on the regular KDE Release Cycle.

KDE Development Platform: This group is defined as those KDE Modules that are required to run a KDE Application, i.e. the core libraries and runtime dependencies.

KDE Workspace (aka Plasma): This group is defined as those KDE Modules that are needed to run a workspace, such as the Desktop or Netbook. This group is not needed to run a KDE Application under another workspace such as Gnome or Windows.

KDE Applications: This group is defined as those KDE modules built on the KDE Development Platform that are hosted by the KDE infrastructure and are released as part of the regular KDE Release Cycle, i.e. they are part of the KDE SC.

KDE Extragear: This group is defined as those applications built on the KDE Development Platform that are hosted by the KDE infrastructure and have a stable release but are not part of a KDE Module and are not released as part of the regular KDE Release Cycle, i.e. they are not part of the KDE SC.

KDE Playground: This group is defined as those applications built on the KDE Development Platform that are hosted by the KDE infrastructure but have not yet had a stable release and may never be released.

KDE Review: This group is defined as those applications that are being reviewed for inclusion in a KDE Module or KDE Extragear, usually moving over from KDE Playground.

KDE Support: This group is a set of libraries that have been developed by KDE and that various KDE modules depend upon but are not themselves dependent on the KDE Development Platform. These libraries can thus be used by non-KDE applications without having to rely on KDE as well.

KDE Modules

KDE Libraries (kdelibs) Git

KDE PIM Libraries (kdepimlibs) Git

KDE Runtime (kde-runtime) Git

KDE Workspace (kde-workspace) Git

KDE Base (kde-baseapps) Git

KDE PIM Runtime (kdepim-runtime) Git

KDE PIM (kdepim) Git

KDE Extragear (extragear) Git/svn

KDE Accessibility (kdeaccessibility) svn

KDE Admin (kdeadmin) svn

KDE Artwork (kdeartwork) svn

KDE Bindings (kdebindings) git/svn

KDE Examples (kdeexamples) git

KDE Education (kdeedu) svn

KDE Games (kdegames) svn

KDE Graphics (kdegraphics) git/svn

KDE Network (kdenetwork) svn

KDE Multimedia (kdemultimedia) svn

Plasma Addons (kdeplasma-addons) git

KDE SDK (kdesdk) svn

KDE Toys (kdetoys) svn

KDE Utilities (kdeutils) svn

KDE Web Development (kdewebdev) svn

KOffice (koffice) git, stable in svn

Calligra (calligra) git

Qt KDE (qt-kde) git

KDE Websites (websites/www) git/svn

Obtaining The Source

There are 3 main ways of doing this:

Download a tarball snapshot of the code as at a given time or release. This is most commonly done if you do not want to develop the code itself but just want to use it for a stable system installation, testing a release, or developing applications outside of the KDE SC. Snapshots

Clone a copy of the project repository from Git

Checkout a copy of the project repository from Subversion

For developing on the unstable branch of the KDE SC it is recommended you Clone or Checkout the required repositories.

Note that Checkout has a different meaning in Git than it does in Subversion.