Becoming a KDE Developer
By joining the ranks of KDE developers, you will get to implement new features and defeat daunting bugs, all while collaborating to make coherent and stable releases. Developers collaborate in teams based on what area they are working in, such as Education, Productivity, or Games.
Frank Osterfeld advises "start small and scratch your own itch, at least that's what kept me motivated in the beginning."
Communicating with the team
There are many ways to get in touch with KDE developers, and developers for a specific project:
Start at #kde-devel on irc.freenode.net, or learn more about IRC.
The central mailinglist for development is the kde-devel mailing list, learn about mailing lists. However each team has its own messaging channels, both on IRC and on the mailinglists, you can find a list here.
Getting and building the code
In most cases, you will want to download, compile and install KDE trunk (our development tree) to start developing. Read the unstable building guide. If you get stuck or get errors, that's OK. You might not need to compile the whole set of applications, but getting started is a good step.
PLEASE CONTACT WILL ENTRIKEN (kde dot org at phor dot net), I AM VERY INTERESTED IN KNOWING HOW LONG THE BUILD PROCESS TAKES NEWCOMERS, FROM START TO FINISH.
Platform and Documentation
KDE is written in C++ and uses the Qt framework. If you've never used Qt before, that's not a problem. Before you get started, you'll want to brush up on C++/Qt and our coding guidelines:
- C++ FAQ lite - at some point, you'll have a question that is answered here.
- Thinking in C++ (volume 1), Thinking in C++ (volume 2) - an online book that goes into some of the technical details of C++
- Beginning KDevelop Programming - a great guide from start to finish
- Qt Examples - If you're doing any serious coding in KDE you will need to understand Qt. These examples explain what's up but it will take a couple hours. You can do that later.
- Basic KDE development tutorials
- KDE coding HOWTO's - good coding documentation for beginners
- Patches HOWTO - until you earn an account in SVN, your contributions will be made as patches
- The KDE Developement Plans - This is the bigger picture for the development efforts of the KDE project, everyone should understand these before going forward
Now you have the code on your computer and maybe got some of it to compile. Here are some tasks for you to get started. You can get your first contribution committed into the project within 1 hour!
- The Bugs Howto - explains how to use and triage bugs. Why's it useful? It makes bug hunting and fixing easier for developers, so more bugs get fixed. Why choose bug triage instead of ...? It doesn't take much time to look over a bug, so it comes in nice small chunks. What skills do I need to do it? Not much, just a bit of patience and sometimes some perseverance. (quote from Phil's Triage Guide)
- English Breakfast Network - provides a list of functions that need to be documented. Try one of these for practice with svn and doxygen.
- KOffice Junior Jobs - simple programming jobs for KOffice
- Junior Jobs on bugzilla - a place where people mark jobs that might be easy for beginners to fix
- KDE Bugzilla - keeps track of all the bugs in KDE, you will want to bash them all
Getting started in a big project can be hard. Here are some people that are willing to help you learn the ropes and get you on board:
- Eike Hein (hein at kde dot org)
application developer; Konversation maintainer
- Elio Joly Botogoske (elio at botogoske dot com)
Developer; 20 years C/C++ experience
- Albert Astals Cid (aacid at kde dot org)
available to hand out junior tasks
- Peter Simonsson (peter dot simonsson at gmail dot com)
application developer; KOffice devel/Kivio maintainer
- Will Entriken (kde dot org at phor dot net)
Google Summer of Code KDE developer
- Anne-Marie Mahfouf (annemarie dot mahfouf at free dot fr)
KDE-Edu development, KDE4 development, and tutorial writing
- Jeremy Whiting (jpwhiting at kde dot org)
- Your name here!
Volunteer to be a mentor -> kde dot org at phor dot net