Open Academy/Letter

From KDE Community Wiki
KDE Getting Started Guide

Hi everyone,

Nice to meet all of you, and welcome aboard to those of you who picked one of KDE projects from http://community.kde.org/Open_Academy

In preparation for collaborating on this project, here are some things you could do:


        1. Join KDE IRC channels on FreeNode. The main channel for all development discussions is  #kde-devel. The channel dedicated for students participating in Open Academy, Summer of Code and other programs is #kde-soc. You should be at least on these two channels. Also look for dedicated channels related to your project here: http://userbase.kde.org/IRC_Channels Most of KDE developers are from Europe and your mentor will most likely be on a different timezone. Ask mentor when he/she is usually on IRC.

        2. If you haven't used Git before, install it and familiarize yourself. Git is powerful, but can be daunting and difficult to use and understand at first, especially if you haven't used it before. You don't need to be a Git expert, but being familiar with basic operations (clone, pull, push, commit, branch) will help you get to work much faster. I'll spend a little bit of time on Git and recommendations on Friday.

        3. Let me know if you need server hardware. If you run Linux on your primary machine, the easiest way to develop KDE is to install it locally. If you are on Mac, check out http://community.kde.org/Mac for installation instructions. Developing KDE on Windows is possible, but may provide more of a challenge. See http://windows.kde.org/ for more information. I can spin up hardware in EC2 if you'd prefer to develop remotely on Linux, and we can get key exchange and DNS and such out of the way before Friday.

        4. Read the KDE Dev Guide http://flossmanuals.net/kde-guide/. Check out relevant KDE repositories, familiarize yourself with CMake build system, build parts of KDE software you will be working on. Dev guide will give you a short introduction, but you can always find detailed information about KDE development on http://techbase.kde.org/Development.  First-time KDE build will require some dedication and time. The earlier you start, the better.

        5. Prepare for code review. All changes to the project go through code review. Especially early on, it can take more (sometimes much more) time to revise a change than to make it initially -- especially if you're using Git for the first time. This process will become much smoother with experience.

        6. Your first contributions will go to KDE reviewboard, so make sure to understand how it works. Read about reviewboard here: http://techbase.kde.org/Development/Review_Board. Find and fix small things, like typos in comments and submit a patch to see how reviewboard works. Later as you continue with your project you'll get a full KDE developer account with read/write access to KDE repositories.

        7. Get ready to ship software. This project moves forward through a continuous stream of many small iterations. The goal is to make stable changes in master branch so that they get into the next KDE release. The most important part of this is not to bite off more than you can chew: start with something small, or start with something larger but break it into small parts that can ship individually. If you finish early, you can move on to the next iteration or feature.

        8. Working on a big project like KDE can become the most exciting coding experience for you. KDE is used by millions of people and your work may have direct imact on them. At the same time KDE is a complex suite of software developed by a large group of developers from all parts of the world. You will sometimes feel daunted by complexity, but fear not. KDE contributors are friendly and welcome. If you need help, just ask for it. With time you'll feel yourself comfortable.


Some optional things you might consider:

        1. Fix a bug / implement a feature. You can pick one of the KDE junior jobs from http://community.kde.org/KDE/Junior_Jobs, even those not directly related to your project. Making a small fix will familiarize you with the development process.
        2. Cheat. The best-kept secret of Code Sprints is that the easiest way to succeed is to cheat: come into it with a developed idea and a bit of working prototype code, and use the time to focus on completing it.
        3. Develop team name. Feel free to be incredibly clever and hilarious. Become the part of the KDE team. Best students will be invited to the annual Akademy KDE conference.