KDE Frameworks/Getting Started/Source Code
Introduction
All KDE Software is free and open source. You are free to view the source code, and free to make changes to the code in line with the (L)GPL family of licences. This page describes how this source code is organised and how it can be obtained.
Source Repositories and Revision Control
The KDE Community uses a central online Revision Control system to store all our Source Code and to track changes made to the code. The KDE Community uses Git for most KDE Projects, although some projects still use Subversion. Most developers will only need to use Git, although some familiarity with Subversion may occasionally be required.
KDE Software Organisation
KDE Software is divided into three main Products:
- KDE Frameworks
- KDE Plasma
- KDE Applications
KDE Applications is further divided into several Modules to which an application can belong:
- Qt KDE - A clone of the main Qt repository
- etc
Note that with the move to Git and KF5 that many modules are being disbanded and their applications moved to Extragear while still being released with the KDE Applications release cycle.
Browsing The Code
There are a number of ways to browse or search the code online:
- https://projects.kde.org/projects is a list of all KDE Projects, choose a project and then click on Repository to browse the source
- https://quickgit.kde.org/ is an alternative online code browser for code in Git repositories
- https://websvn.kde.org/ is an online code browser for code still in the Subversion repository
- http://lxr.kde.org/ lets you search the code for identifiers or tokens like API method calls
- http://lxr.kde.org/search lets you search the code for any string
- http://api.kde.org lets you browse or search the API documentation generated from the code
Obtaining The Source Code
TODO: Detailed instructions or link to existing???
There are three main ways to download a copy of the source code:
- Directly access the Source Repository to copy the source code as it currently is with a full history of all changes. In Git this is know as Cloning the repository, in Subversion it is Checking-Out the code. This is most commonly done if you want to actively develop the code.
- Download a tarball snapshot of the Source Repository to bootstrap a Git clone or Subversion checkout. This is a good option if you have a slow or unreliable internet connection. See the Source Snapshots page for more details.
- Download a tarball snapshot of just 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 Community.
Note that "Checkout" has a different meaning in Git than it does in Subversion.
OLD Stuff To Be Reworked
KDE Development Platform
The KDE Development Platform group is defined as those KDE Modules that are required to run a KDE Application, i.e. the core libraries and runtime dependencies.
The KDE Development Platform is available from Git:
KDE Base Applications
The KDE Base Applications group is defined as those basic applications that are required by the Workspace and other Applications, such as file management, terminal emulation and text editing.
The KDE Base Applications are available from Git:
KDE Workspace
The KDE Workspace group (aka Plasma) 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
The KDE Applications 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.
The KDE Applications group is currently split between Git and SVN:
- KDE Accessibility (kdeaccessibility)
- KDE Admin (kdeadmin)
- KDE Artwork (kdeartwork)
- KDE Bindings (kdebindings)
- KDE Examples (kdeexamples)
- KDE Education (kdeedu)
- KDE Games (kdegames)
- KDE Graphics (kdegraphics)
- KDE Multimedia (kdemultimedia)
- KDE Network (kdenetwork)
- Plasma Addons (kdeplasma-addons)
- KDE PIM / Kontact
- KDE SDK (kdesdk)
- KDE Toys (kdetoys)
- KDE Utilities (kdeutils)
- KDE Web Development (kdewebdev)
KDE Extragear
The KDE Extragear 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.
The KDE Extragear group is currently split between Git and SVN:
KDE Playground
The KDE Playground 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.
The KDE Playground group is currently split between Git and SVN:
KDE Review
The KDE Review 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.
The KDE Review group is available from Git:
KDE Translations
KDE Websites
KDE Websites (websites/www)
KOffice
KOffice (koffice) git, stable in svn