The KDE Community is an international team co-operating on development and distribution of Free, Open Source Software for desktop and portable computing. Our community has developed a wide variety of applications for communication, work, education and entertainment. We have a strong focus on finding innovative solutions to old and new problems, creating a vibrant, open atmosphere for experimentation. Since our software is free and open source, everyone can play a part in contributing to KDE.
For users on Linux and Unix, KDE offers a full suite of user applications which allow interaction with these operating systems in a modern, graphical user interface. This includes Plasma, KDE's innovative workspace. Other applications are included to aid with system configuration, running programs, or interacting with hardware devices. While the fully integrated KDE workspaces are only available on Linux and Unix, some of these features and our applications are available on other platforms.
KDE uses IRC and mailing lists to communicate. While talking with your mentors, community members and other students remember:
Mentors are the main people you communicate with while completing a task. Ask your mentor when you have any questions about your task. Along with leaving messages in the GCi webapp, you can communicate with them using IRC, Internet Relay Chat. You can use webchat in your browser to start. If you enjoy IRC, you may want to consider using a desktop IRC client. KDE uses the Freenode network along with many other open-source projects. To chat in IRC just type your message and hit enter. Commands begin with the / character, such as
/connect irc.freenode.net to connect to Freenode.
IRC is made of channels (think, "chat rooms") which start with a # sign, such as #kde. On Freenode, you can expect to find a channel for almost any FOSS project, eg, #Fedora, #Python, #kubuntu. To join a channel, use the
/join #kde or
/join #kde-soc . To search for a channel, use alis, like this:
/msg alis list *searchterm*.
IRC clients communicate with IRC network servers to allow sending of messages from one user to another. You may have to install an IRC client if your distribution doesn't provide one by default. Some examples of IRC clients are mIRC, XChat and IRSSI for Linux or Windows, and Colloquy for Mac. KDE's IRC client is Konversation which will connect you to Freenode by default.
Tasks in Google Code-in are grouped into five categories. Below are the recommended channels for each category which could be helpful to you as you work on a task. #kde-soc is the channel for all mentors and students. Your mentor may ask you to join a project channel so that the whole team is available to you.
KDE maintains its own infrastructure for version control system, bug tracker, review tools, mailing lists etc. In the following we list the most important ones that you will probably encounter during the GCI contest. Note that KDE is close to the transition to a new system (called Phabricator, which is similar to popular online services like Github - yet free). Thus, some early adopter projects may ask you to use the new facilities while others are still using the classic tools.
KDE Identity is the central database for KDE infrastructure, like wikis, reviews and code commits. Using your KDE Identity credentials, you can log into all Identity-enabled KDE services. Please use your real name to register for a KDE identity account.
KDE uses Bugzilla to deal with bugs. Create a Bugzilla account to report, test, triage, or fix bugs. For now, a bugzilla account is needed in addition to your KDE identity account.
All source code for KDE applications can be found at:
For coding tasks, often the hardest step is to setup your system such that you are able to build the application you want to modify. The typical problems you will be faced with is to get the source code (see above), to install all required build dependencies and finally to start the build.
CMake is the standard build system in KDE. It reads the configuration files in the downloaded source, looks at your system for required dependencies and setup paths to them. If any build dependency is not show, at the end of the CMake execution you get a list of missing dependencies. Instead of running the command line tool, for starters there is an easier to use GUI application, called: cmake-gui.
In most cases you can use development packages by your distribution (often marked by a "-dev" or "-devel" suffix). If they are available, this is the way you want to go. You will find out which dependencies you need by downloading the source code and running CMake at it.
If your system is not recent enough to provide all required build dependencies you have essentially two options:
Nowadays the tool of choice for many KDE developers is to use a build-script called kdesrc-build. This script allows you, once setup, to automatically fetch sources, configure them, and build and install them.
To an ensure a high code quality, most KDE source contributions are reviewed before pushed to the repositories.
Usually, you add your to be reviewed code there and receive feedback from other developers, which helps you to get your contribution ready for merging into the repository. This means you get a "ship-it". Since you probably do not have commit rights, please indicate that someone else has to push the code to the repository. All tools provide both a web interface and a command line tool to publish your contributions for review.
Wikis are easy to update, so much information is stored on the KDE wikis.