Programming Guide
- Introduction
- Documentation
- User Interface
- Bug And Wish Reports Management
- Programming
- Communication And Promotion
Even if you have some programming experience, diving into the KDE project can be a bit daunting at first. It is a very vast project and there are many things that you will have to learn before you can really become productive as a developer. And it may take some time too.
So you want to make a start. But where do you begin? How can you find your way in this labyrinth of webpages, mailinglists, files, HOWTO's, etc.? The objective of this guide is to set out a learning path for a would-be KDE developer. These are just suggestions, of course. If you feel are already proficient with C++ or Qt, jump the respective steps.
Step One: Brush Up Your C++
C++ is the programming language for KDE. If you don't know the language of if your exposure to C++ has been limited, you should learn it. There are many books on the market that can help you and you will find many on-line tutorials that will teach you the C++ essentials. Get hold of Bruce Eckels Thinking in C++ on the web. It is excellent and it is free.
Using KDevelop as your IDE is strongly recommended, so make your life easy and use KDevelop to help you adapt to Qt and KDE. You will be learning to use KDevelop in parallel with exploring C++, Qt and KDE. Make sure that you have KDevelop 3.0 installed and go to www.kdevelop.org. There is plenty of information there. But start with the KDevelop 3.x tutorials.
A good idea is, after reading some of the information below, building an empty program, just generating an empty KDE project. That will give you a skeleton code that produces standard windows, menu, etc. Examine the code, try to understand it. This is very good first step on understanding the basics of a KDE app.
Step Two: Study the Qt Toolkit
Although KDE applications are written in C++ it is nearly all done using the Qt application framework. Qt is a product from a Norwegian company called Trolltech and you can find all information that you need about it on their webpage. Don't miss the most important page for would be developers: Qt Reference Documentation. You will find exactly the same page on your PC if you have a full installation of Qt. Read at least the Whitepaper and browse the beginning of the tutorials.
Work Your Way Through The Qt Tutorials
The first tutorial from Trolltech is fun and it will teach you a lot about Qt. Try to make it work using KDevelop and make the changes necessary to turn it into a real KDE project. (You could try to get rid of some of the on screen widgets and replace them by menu options.) Then you can work on the second tutorial and try to turn that into a real KDE application too.
Another use the Independent Qt Tutorial. The Independent Qt Tutorial is a on-line book introducing the different areas of Qt step-by-step with task orientated chapters rich on examples and a detailed discussion of the different areas of the Qt toolkit.
Study The Qt Examples
Try to understand the other examples that come with the Qt library. Pick at least one and try to recreate it, starting from a KDE skeleton application provided by KDevelop and typing in the code for yourself.
Step Three: Familiarize Yourself With a Real KDE Project
Pick a simple KDE application that you like, any one will do, then go to webcvs find the sources and browse the files that you find there, or download the sources using anonymous svn. Look at the different versions of one file and use the Diff to previous option for this purpose. The fact that you can choose your starting point for a comparison and that you can see the changes clearly using the colored option makes this a great learning tool for understanding the evolution of the code. Pick one area of the application and try to really understand it.
Read All Info On The kde.org Sites
Go back to the kdevelop website and read the other articles there on KDE development. Go to the KDE Developer's Corner and discover yet another treasure trove of information. Go to the home pages of your favorite applications (you will find links to these on the KDE Homepage) and see if the developers have put up some specific information that you can use. Some projects will have their own developers pages. Have a look at the KOffice Developers Resources as an example. You should try to find the API documentation for the project on which you want to work. And don't forget the Wiki pages! They are an excellent source of information too.
Follow KDE Policies
If you are willing to contribute code to the KDE project, it is important to know its policies, understand the role of the application maintainers and the release schedule freezes. You will be working inside project driven by volunteer work, where the doer usually decides the best implementation. The KDE Development Policies page lists the rules to be followed by KDE contributors. There are Commit policies, licencing policies, security policies, and library documentation policies. If you have any comments or doubts about these policies, please direct them to the kde policies mailing list.
To get a feeling for what is going on and what the current problems are, who is who and what they are working on, you should subscribe to a couple of mailing lists. Don't forget to visit the archives to get some historical perspective and to get an answer to your many question before you start asking for the obvious.
Step Four: Become an Active Bugbuster
Go to bugs.kde.org, register and use the querytool to find the open bugs for your favorite application. Find an annoying bug and start hacking. Be sure to work on a recent version of the application? You can check very quickly if that part of the code is still up to date with webcvs. This is the right moment to build an unstable-version, either from SVN or from a daily snapshot. Check the Junior Jobs for a list of tasks related to open bugs or wishes that are marked for newbie developers. These tasks are usually a great way to start, as the developers or maintainers are explicitly telling you that you are welcome to fix the bug or implement the wish, and at the same time, the task should not be too complex.
After all of this you will probably be very close to making your first contribution. So if you have found a way to solve a bug, or to advance your project in some other way, adapt the code, post your patch, cross your fingers and hope that it will get accepted.
If you have doubts about helping out KDE, you are welcome to post them in the kde-quality mailing list. To support new contributors is the main goal of the project, so feel free to ask anything related to start helping KDE. For more technical programming doubts, use the application development mailing list, or in its absence, the the kde-devel mailing list.
And don't forget that after reading this you feel that it may be too much and too complicated for you, that there are other ways in which you can help. Visit the KDE Quality Team to find out what else you can do.
| << Bug And Wish Reports Management | KDE Quality Team HOWTO | Communication And Promotion >> |
[ Edit ]
KDE Quality Team