Getting Started: Difference between revisions

    From KDE TechBase
    (Explain "Development and Release Model")
    (110 intermediate revisions by 22 users not shown)
    Line 1: Line 1:
    {{Template:I18n/Language Navigation Bar|Getting_Started}}
    <languages />
    <translate>


    == Determine Your Needs==
    <!--T:1-->
    KDE versions are split into branches off of the Trunk. The steps to build most branches are very similar. However, Each branch has different [[Getting_Started/Build/KDE4/Prerequisites|prerequisites]].  
    {{Warning|These build instructions are outdated as of 2012. Please visit irc://chat.freenode.net/kde-devel for assistance building. Then please come back here to help update these files.}}


    You will need to know what version you want, how often you will use the development environment (more work upfront may be justified if you intend to use it more),
    == Introduction == <!--T:3-->


    === [[Choose Version]] ===
    <!--T:4-->
    ; Synchronized with distribution
    There are many different ways to become [http://community.kde.org/Getinvolved involved in the KDE Community], ranging all the way from a simply using our software through to being a core platform developer.
    :  [[Distributions with KDE]] may provide KDE Dev and SDK for 3rd party development
    ; Latest Features for production
    : [[branch]] (stable / beta)
    ; [[Core Development]]
    : [[trunk]] (may have build problems on Mondays)


    [[Getting_Started/Build|other Supported Platforms]] ''Including information for building on non-linux systems Incl KDE3'' [[Older Versions]]
    <!--T:6-->
    This section of KDE TechBase is designed to help get you started in participating in the technical side of the KDE community.  It will explain to you how KDE Software is structured and built, and how you can participate by building KDE for yourself.


    To See which versions/branches of KDE are available go to:
    == Using KDE Software == <!--T:8-->
    ::http://websvn.kde.org/branches/KDE/


    === Location ===
    <!--T:9-->
    Choose where you want to put the KDE installation, and keep source and build directories.
    If you just want to use stable KDE software for your everyday computing needs, then you do not need to build KDE Software for yourselfYou should instead use the software installer provided by your Linux distribution to install KDE package.
    ( [[QCA plugin]] may have to be installed as root if using system Qt))
    ====Source and Build Directories====
    : suggested: ~/kde/src  and ~/kde/build  (where ~ is the user which runs KDE)
    : possibly /usr/src/  if [[building as root]]


    ====Installation Directory====
    <!--T:10-->
    ;[[Casual Curiosity]]
    The best place to learn how to do this is through your distributions normal support channels, although you may find some useful information on the following pages:
    : [[development user home]] if you do not want to mess up your production KDE
    * [http://www.kde.org/download/distributions.php Distributions shipping KDE]
    : [[your home directory]] if you are willing to use environment variables to keep versions seporate( using [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts|scripts]]) or have no other access to the machine
    * [[Special:myLanguage/Getting_Started/Build/Distributions|Install KDE Software on Linux and BSD Distributions]]
    : [[As root]] Not advised unless you have a dedicated machine
    * [[Special:myLanguage/Projects/KDE_on_Windows/Installation|Install KDE Software on Windows]]
    * Mac OS X does not currently have an installer available for KDE Software, but you can simplify building it by using [http://community.kde.org/Mac#Installing_KDE_on_Mac_OSX MacPorts, Fink or Homebrew]


    ; [[Application Developer]]
    == Getting Help == <!--T:11-->
    : [[development user home]] same as for curious user
    : [[as root]] will be more useful to simulate environment of customers
    : [[your home directory]] may simplify your development


    ; [[Distribution Manager]]
    <!--T:12-->
    : To test KDM, you may want to install [[as root]] and or use a [[virtual machine]] so you do not damage a production system.
    If you are looking for help in using the KDE Workspace or KDE Applications then please visit the [http://userbase.kde.org/ KDE UserBase].  


    ; [[Contributor]]
    <!--T:13-->
    : keeping your system similar to other developers will help make troubleshooting easier, see [[Developer Setups]]
    If you have any questions or problems with building or developing KDE Software please feel free to [[Special:myLanguage/Development/Getting_Help|ask for help]].  However, be patient while waiting for a response, and try to work through the problem yourself, we aren't going to do it ''all'' for you.  Working your way through and understanding why something doesn't work is a good way to learn how to do things the right way.


    === Method ===
    == Browsing the code == <!--T:28-->
    The KDE project is all free and open source. You can view its source code and make changes.


    Read up on steps below. [[Development/CMake|CMake]] may also be of interest.
    <!--T:29-->
    http://projects.kde.org hosts the source for many KDE-related initiatives, including [https://projects.kde.org/projects/kde KDE itself].  Choose a piece of KDE such as KDE Libraries, then click Repository to browse its source. [[Getting_Started/Sources]] explains the organization of KDE source code.


    ; Fully Manual -- to learn how things work
    <!--T:30-->
    ; Distribution Specific
    There are other utilities to browse the source code:
    ; Augmented (Recommended)
    : most common method, set environment variables and use scripts.
    ; KDEsrc-build
    : Useful for automated builds, may be tough to set up


    == Gather Prerequisites ==
    <!--T:31-->
    Your build will fail if you are missing one of them, and the list changes. There are some options, however the make system can often find optional packages even if you do not intend to use them, so you may need to pass disable options.
    * http://lxr.kde.org/search lets you search the code ''(may be out of date?)''
    * http://api.kde.org lets you browse API documentation generated from the code. You can search for class names, but not filenames.


    * [[Getting_Started/Build/KDE4/Prerequisites]]
    == Building and Running KDE Software From Source == <!--T:14-->
    * [[build requirements]] by distribution


    == Build it ==
    <!--T:15-->
    ; Most used method, augmented with bash functions.
    There are several possible ways to build and install KDE software and the method you choose depends on what you want to do with the software.  In particular if you are only wanting to build and develop a single application you may not need to build the entire KDE Development Platform to do so. You can read more about this on the [[Special:myLanguage/Getting_Started/Build/Methods|Build Methods page]].
    [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts]]  


    ; Manual Steps
    <!--T:33-->
    * [[Getting_Started/Build/KDE4|KDE 4 (Development version, TRUNK)]]
    If you simply want to build one application, the simple tutorial [[Development/Tutorials/Building_An_Existing_Application|Building an Existing Application]] might be enough already.
    * [[Getting_Started/Build/KDE4.x|KDE 4.x (Stable version or 4.x SVN BRANCH)]]
    * [[Getting_Started/Build/KDE4.4 Upgrade|Upgrade KDE-4.4.x release version or KDE-4.4 SVN BRANCH)]]
    * [[Getting_Started/Build|Other versions and FAQ]] ''Including information for building on non-linux systems''


    ; distribution specific
    <!--T:7-->
    There may be pre-made builds for your distribution, For example, in Kubuntu, Project Neon, aims to provide a recent trunk build environment, and PPA's provide latest branch versions.  
    {{Note|'''Quickstart:''' If you are impatient to get started without understanding what you are doing then you can skip straight to using a [[Special:myLanguage/Getting_Started/Build#Scripted_Builds|Build Script]], but it is strongly recommended you read this documentation first.}}


    ; kdesrc-build
    <!--T:32-->
    This script will do most of the downloading and compiling for you. It can be configured to build most versions, by default it builds Trunk.  There full-process instructions at http://kdesrc-build.kde.org and more here [[Getting_Started/Build/kdesrc-build|kdesrc-build]], and here is a list of [[kdesrc-build/workingrclist|working configuration files]].
    <!-- what about https://launchpad.net/project-neon that used to be linked here in 2010, does that still apply? - User:Skierpage -->


    * This will compile qt for you, or you can configure it to use system QT
    <!--T:16-->
    * When you choose a branch
    The following sections explain the steps you need to understand and give the instructions you need to follow to successfully build KDE Software from source:
    ** edit your  ''.kdesrc-buildrc''
    *** set your branch
    *** you will have to tweak the kdeSupport module description, and maybe the qt-copy. For the kdesupport module:   ''module-base-path tags/kdesupport-for-4.5''


    ==Getting the Source==
    <!--T:17-->
    [[Image:Action_down.svg|right|32px]]
    * [[Special:myLanguage/Getting_Started/Sources|How the KDE Source Code is structured]]
    * [[Getting_Started/Sources/Anonymous SVN|Anonymous SVN Quickstart Guide]]
    * [[Special:myLanguage/Getting_Started/Build|How to Build and Install the software]]
    * [[Getting_Started/Sources/Using Subversion with KDE|Using Subversion with KDE]] ''A more in depth look at accessing KDE source code with subversion, including the repository layout and working with revisions and patches.''
    * [[Special:myLanguage/Getting_Started/Run/Nested_Session|How to Run a nested session of KDE]]
    * [[Getting_Started/Sources/Amarok Git Tutorial|Amarok Git Tutorial]] ''Amarok has moved to Git (with the rest of KDE to follow), so it requires different steps to check out and develop.''
    * [[Special:myLanguage/Getting_Started/Run/Full_Session|How to Run a full session of KDE]]
    * [[Getting_Started/Sources/Snapshots|Daily Snapshots]]
    * [http://websvn.kde.org/ Browse code online], or [http://lxr.kde.org/search search the code]


    == Troubleshooting the build ==
    == Development Tools == <!--T:21-->
    * [[Getting_Started/Build/KDE4/Troubleshooting|Troubleshooting]]


    [[Getting_Started/Build/KDE4/Troubleshooting|Troubleshooting]] information is similar between branches as well.
    <!--T:22-->
    There are a number of [[Special:myLanguage/Development/Tools|Development Tools]] that are either required or helpful when building KDE Software.  For these you will usually want to use the stable packages provided by your distribution.


    Compile and Linking errors are frequent sources of discouragement. make careful note of the first occurrence of an error in your build process. It could be as simple as a bad environment variable, an unexpected version of a library or missing prerequisite. 
    <!--T:23-->
    You may want to use a graphical IDE for your development work:
    * [[Special:myLanguage/Development/Tutorials/Using_Qt_Creator|Qt Creator]]
    * [http://www.kdevelop.org/ KDevelop 4]
    * [[Special:myLanguage/Development/Tools/Eclipse|Eclipse]]
    * [[Special:myLanguage/Getting_Started/Using_an_IDE_with_KDE4|Using an IDE with KDE4]]


    Please review your logs and do searches for fixes. If you cannot find a solution, [[Build/KDE4/Errors]] and IRC channel, and mailing lists. [[Build/Stories]]
    == Contributing To KDE == <!--T:24-->


    ==Using your KDE==
    <!--T:25-->
    After KDE has been built, you'll want a good way to launch apps and perform your regular development tasks:
    Once you have a copy of KDE built you can then start contributing back to KDE.  The pages below will help you find out how you can help make KDE even better.
    ; Environment Variables
    Your system won't know to use your new KDE until you tell it how to find the KDE applications and libraries.
    [[Image:Action_pen.svg|right|32px]]
    * [[Getting_Started/Increased Productivity in KDE4 with Scripts|Increased Productivity in KDE4 with Scripts]]
    * [[Getting_Started/Set up KDE 4 for development|Set up KDE 4 for development]]


    ==Set up Development Tools==
    <!--T:26-->
    You may need to set up or use, you will likely want to use a stable package from your distribution.
    [[Image:Action_tool.svg|right|32px]]
     
    * [[Special:myLanguage/Contribute|Contribute]]
    it is unclear if the kde-devel user or your normal user will be running the development tools. Please Help
    * [[Special:myLanguage/Contribute/Send_Patches|Send Patches]]
     
    * [[Special:myLanguage/Contribute/Bugsquad|Bugsquad]]
    For most development topics, and documentation, see [[Development]]


    ; Opening and creating KDE project files
    * [[eclipse]]
    * [[kdevelop]]
    * [[qtdesigner]]


    == Development and Release Model == <!--T:18-->
    This is a stub, please help.


    ==Contribution==
    <!--T:19-->
    You may not need the latest bleeding-edge KDE to develop with, Much code will be similiar between versions and your patch might work, however Trunk is where major changes are introduced, and branches are mostly maintenance/bug fix.
    This is information for release schedules, justification of why KDE has chosen the tools and policies that it has, and so on.  It used to be very important since KDE releases were done as big coordinated simutaneous efforts.  This is all completely outdated since the policy changed with KDE Frameworks 5.  Now, various parts of KDE have their own release cadences, ranging from regular monthly releases for Frameworks, every 3- or 4-months for Plasma, to "it happens when it happens" for applications like Krita.


    [[Image:Action_tool.svg|right|32px]]
    TODO: completely rewrite everything here.
    * [[Contribute|Contribute]]
    * [[Contribute/Send_Patches|Send Patches]]
    * [[Contribute/Bugsquad|Bugsquad]]
    * [[Getting_Started/Using Project Neon to contribute to KDE|Using Project Neon to contribute to KDE]]


    <!--T:20-->
    * [[Special:myLanguage/Schedules/Release_Schedules_Guide|The KDE Release Schedule]]
    * [[Special:myLanguage/Development/Software_Engineering_Framework|The KDE Software Engineering Framework]]
    * [[Special:myLanguage/Policies|KDE Development Policies and Procedures to follow]]
    * [[Special:myLanguage/Policies/Application_Lifecycle|The development lifecycle for a new application]]


    <!--T:27-->
    [[Category:Build_KDE]]
    [[Category:Build_KDE]]
    </translate>

    Revision as of 17:05, 26 October 2015

    Warning
    These build instructions are outdated as of 2012. Please visit irc://chat.freenode.net/kde-devel for assistance building. Then please come back here to help update these files.


    Introduction

    There are many different ways to become involved in the KDE Community, ranging all the way from a simply using our software through to being a core platform developer.

    This section of KDE TechBase is designed to help get you started in participating in the technical side of the KDE community. It will explain to you how KDE Software is structured and built, and how you can participate by building KDE for yourself.

    Using KDE Software

    If you just want to use stable KDE software for your everyday computing needs, then you do not need to build KDE Software for yourself. You should instead use the software installer provided by your Linux distribution to install KDE package.

    The best place to learn how to do this is through your distributions normal support channels, although you may find some useful information on the following pages:

    Getting Help

    If you are looking for help in using the KDE Workspace or KDE Applications then please visit the KDE UserBase.

    If you have any questions or problems with building or developing KDE Software please feel free to ask for help. However, be patient while waiting for a response, and try to work through the problem yourself, we aren't going to do it all for you. Working your way through and understanding why something doesn't work is a good way to learn how to do things the right way.

    Browsing the code

    The KDE project is all free and open source. You can view its source code and make changes.

    http://projects.kde.org hosts the source for many KDE-related initiatives, including KDE itself. Choose a piece of KDE such as KDE Libraries, then click Repository to browse its source. Getting_Started/Sources explains the organization of KDE source code.

    There are other utilities to browse the source code:

    Building and Running KDE Software From Source

    There are several possible ways to build and install KDE software and the method you choose depends on what you want to do with the software. In particular if you are only wanting to build and develop a single application you may not need to build the entire KDE Development Platform to do so. You can read more about this on the Build Methods page.

    If you simply want to build one application, the simple tutorial Building an Existing Application might be enough already.

    Note
    Quickstart: If you are impatient to get started without understanding what you are doing then you can skip straight to using a Build Script, but it is strongly recommended you read this documentation first.


    The following sections explain the steps you need to understand and give the instructions you need to follow to successfully build KDE Software from source:

    Development Tools

    There are a number of Development Tools that are either required or helpful when building KDE Software. For these you will usually want to use the stable packages provided by your distribution.

    You may want to use a graphical IDE for your development work:

    Contributing To KDE

    Once you have a copy of KDE built you can then start contributing back to KDE. The pages below will help you find out how you can help make KDE even better.


    Development and Release Model

    This is information for release schedules, justification of why KDE has chosen the tools and policies that it has, and so on. It used to be very important since KDE releases were done as big coordinated simutaneous efforts. This is all completely outdated since the policy changed with KDE Frameworks 5. Now, various parts of KDE have their own release cadences, ranging from regular monthly releases for Frameworks, every 3- or 4-months for Plasma, to "it happens when it happens" for applications like Krita.

    TODO: completely rewrite everything here.