Getting Started: Difference between revisions

    From KDE TechBase
    (level 1 is reserved for the page name; starting with level 2; indentation follows other sections)
     
    (50 intermediate revisions by 21 users not shown)
    Line 1: Line 1:
    {{warning|These pages are currently being completely re-written to reflect the new KDE infrastructure and may not be in a consistent state.  Information and commands on some page may no longer be valid and should be used with care.}}
    <languages /><translate>


    {{Template:I18n/Language Navigation Bar|Getting_Started}}
    == Getting Started on TechBase == <!--T:37-->


    == Introduction ==
    <!--T:38-->
    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.
    The KDE community is perhaps best known for its Plasma desktop workspace as well as its rich collection of applications but the community has also produced libraries and tools to make software development more enjoyable or, at the very least, less painful. Whether you're looking to write you first KDE application, make your existing Qt project more awesome, or get involved with one or more of the great KDE projects, this is a great place to get your journey started!


    You can find more general information on getting involved in KDE at the following links:
    * [http://kde.org/community/getinvolved/ Getting Involved in KDE]
    * [[Contribute|Contribute to KDE]]


    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.
    <!--T:35-->
    {{Note|
    To contribute to KDE, see [https://community.kde.org/Get_Involved the Get Involved page on the Community Wiki].


    == Using KDE Software ==
    <!--T:36-->
    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.
    If you are looking for build instructions, [https://community.kde.org/Guidelines_and_HOWTOs/Build_from_source up-to-date build instructions] are available on the Community Wiki, and we also have [[{{BASEPAGENAME}}/Build/Historic|historic ones]].
    }}


    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:
    == Setting Up == <!--T:39-->
    * [http://www.kde.org/download/distributions.php Distributions shipping KDE
    Getting started can be as simple or as involved as you need it to be. As much as possible, use your distro's packages to simply and speed up development unless you really need to get the latest source code version. And no, you don't need to "compile all of KDE" just to use a single framework. Not convinced? Check out our [[Development/Tutorials/Setting_Up|Setting Up Guide]] to see how easy it can be.
    * [[/Build/Distributions|Install KDE Software on Linux and BSD Distributions]]
    * [[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://mac.kde.org/?id=build MacPorts or Fink]


    == Getting Help ==
    == KDE Frameworks == <!--T:40-->
    If you are looking for help in using the KDE Workspace or KDE Applications then please visit the [http://userbase.kde.org/ KDE UserBase].  
    '''[[Frameworks|KDE Frameworks 5]]''' is built on top of the excellent Qt application framework to provide more functionality and power to your next big project. KDE software developers will also find classes that help them better integrate their applications into the Plasma workspace and with other KDE products.


    If you have any questions or problems with building or developing KDE Software please feel free to [[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.
    <!--T:41-->
    * [https://www.kde.org/products/frameworks/ KDE Frameworks Product page]
    * [[Development/Tutorials#Basics_of_how_to_develop_with_KDE_Frameworks|Tutorials to get started with KF5]]
    * [https://api.kde.org/frameworks/index.html KDE Frameworks 5 API Documentation]
    * KDE Frameworks on [[Frameworks|TechBase]] and the [[Community:Frameworks|Community Wiki]]


    == Building and Running KDE Software From Source ==
    == Kirigami == <!--T:42-->
    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 once it is built.
    Named after the Japanese art of cutting and folding paper to create beautiful objects, the '''[[Kirigami|Kirigami framework]]''' offers components to let your piece together a beautiful and responsive application. Expanding the Qt Quick framework, Kirigami empowers developers to create apps that look and behave well on desktop, mobile, and more.


    You may want to:
    <!--T:43-->
    * Develop a standalone application using the KDE Platform
    * [https://kde.org/products/kirigami/ Kirigami landing page]
    * Develop one of the KDE Applications
    * [https://api.kde.org/frameworks/kirigami/html/index.html Kirigami API documentation]
    * Develop the KDE Workspace or the KDE Platform
    * Kirigami on [[Kirigami|TechBase]] and the [[Community:Kirigami|Community Wiki]]
    * Test the latest KDE Software or an earlier stable version


    In particular, for application development you may only need to build some parts of the KDE SC while relying on the KDE Development Platform stable packages from your distribution.
    == Tutorials == <!--T:44-->
    Get your feet wet or dive head first into coding with KDE's collection of '''Tutorials'''. From writing your first application using the KDE Frameworks to developing applets for the Plasma workspace, these bite-sized guides will get you up and running in no time.


    The table below provides some guidance in making this decision, but before you start building please read the rest of the pages for more detailed information on Getting Started.
    <!--T:45-->
    * [[Development/Tutorials|Development Tutorials]]
    * [[Development|TechBase Development Hub]]
    * [[Community:Get_Involved|Get involved with the KDE Community]]


    <table border="1" width="100%" cellpadding="5">
    == Plasma == <!--T:46-->
      <tr>
    KDE's world-famous workspace for desktops and mobile, '''Plasma''' provides a rich set of building blocks to help developers create rich, beautiful, and productive user experiences on different devices, form-factors, and use cases. [[Projects/KWin|KWin]] is one of the most powerful and most flexible window managers around, providing advanced functionality and control on both X11 and Wayland systems.
        <td width="75%">'''Usage'''</td>
        <td width="25%">'''Method'''</td>
      </tr>
      <tr>
        <td width="75%">Everyday use of the KDE Workspace or Applications</td>
        <td width="25%" style="background: #FFEFD3">'''Packaged Stable Release'''</td>
      </tr>
      <tr>
        <td width="75%">Developing an application outside of the KDE development infrastructure using the stable KDE Development Platform.</td>
        <td width="25%" style="background: #FFEFD3">'''Packaged Stable Release'''</td>
      </tr>
      <tr>
        <td width="75%">Developing an application outside of the KDE development infrastructure using features from the unstable KDE Development Platform.</td>
        <td width="25%" style="background: #FFFEE4">'''Snapshot Build'''</td>
      </tr>
      <tr>
        <td width="75%">Developing an application in the KDE SC using the stable KDE Development Platform.</td>
        <td width="25%" style="background: #D0ECEA">'''Stable Source Build'''</td>
      </tr>
      <tr>
        <td width="75%">Developing an application in the KDE SC using features in the unstable KDE Development Platform.</td>
        <td width="25%" style="background: #9FD6D2">'''Unstable Source Build'''</td>
      </tr>
      <tr>
        <td width="75%">Developing the unstable KDE Development Platform.</td>
        <td width="25%" style="background: #9FD6D2">'''Unstable Source Build'''</td>
      </tr>
    </table>


    <!--T:47-->
    * [https://kde.org/plasma-desktop.php Plasma Desktop website]
    * [[Development/Tutorials/Plasma5|Plasma Tutorials]]
    * [https://www.plasma-mobile.org/ Plasma Mobile website]


    <table border="1" width="100%" cellpadding="5">
    == It's just the beginning == <!--T:48-->
      <tr>
    These are just the large tips of the KDE iceberg. The community has developed many libraries for more specific needs and use cases that developers can also use to simplify their projects.
        <td width="25%">'''Method'''</td>
        <td width="75%">'''Description'''</td>
      </tr>
      <tr>
        <td width="25%" style="background: #FFEFD3">'''Stable Release Packages'''</td>
        <td width="75%">Install a stable release of KDE Software from packages using your distributions standard software installer.  For developers also install the development packages as required.</td>
      </tr>
      <tr>
        <td width="25%" style="background: #FFEFD3">'''Unstable Packages'''</td>
        <td width="75%">Some distributions provide packaged unstable snapshots of KDE Software.</td>
      </tr>
      <tr>
        <td width="25%" style="background: #FFFEE4">'''Snapshot Build'''</td>
        <td width="75%">Build a snapshot of the source code as at a given time or release from a tarball download. These may be stable or unstable releases or nightly snapshots</td>
      </tr>
      <tr>
        <td width="25%" style="background: #D0ECEA">'''Stable Source Build'''</td>
        <td width="75%">Build a version of the source code for an official release directly from the source repository.</td>
      </tr>
      <tr>
        <td width="25%" style="background: #9FD6D2">'''Unstable Source Build'''</td>
        <td width="75%">Build the current unstable development code directly from the source repository.</td>
      </tr>
    </table>


    === Build Steps ===
    <!--T:49-->
    * Need an easy and cross-platform way to handle audio and video? [[Phonon]]'s API will be very familiar to Qt developers and supports multiple backends, including GStreamer, VLC, and anything else you might want to develop.
    * If you need a privacy-respecting way to display maps and even the whole world, [[Marble]] provides data models and widgets to make that a walk in the park.
    * If you need libraries for handling email, events, and more, the [[KDE PIM]] libraries have withstood not only the test of time but also the test of enterprise customers.


    There are a series of steps you need to understand and follow to successfully build KDE Software from source.  The following sections will take you through the process:
    * [[/Sources|Obtain the Source Code for the software]]
    * [[/Build|Build and Install the software]]
    * [[/Run|Run the software]]


    == Development Model ==
    <!--T:50-->
    TODO: General introduction to the dev model, release cycles, etc.
    Check out the other KDE Projects that provide libraries and APIs that you can use to boost your own projects. The KDE Community is also welcoming not just new contributors but also new projects that want to be part of one of the biggest free software communities on the planet.
    </translate>


    * [[Schedules/Release_Schedules_Guide|The KDE Release Schedule]]
    * [[Development/Software_Engineering_Framework|The KDE Software Engineering Framwork]]
    * [[Policies|KDE Development Policies and Procedures to follow]]
    * [[Policies/Application_Lifecycle|The development lifecycle for a new application]]


    == Development Tools ==
    [[Category:Needs_Attention]]
    There are a number of [[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.
     
    You may want to use a graphical IDE for your development work:
    * [http://www.kdevelop.org/ KDevelop 4]
    * [[Development/Tools/Eclipse|Eclipse]]
    * [[/Using_an_IDE_with_KDE4|Using an IDE with KDE4]]
     
    == 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.
     
    [[Image:Action_tool.svg|right|32px]]
    * [[Contribute|Contribute]]
    * [[Contribute/Send_Patches|Send Patches]]
    * [[Contribute/Bugsquad|Bugsquad]]
     
    [[Category:Build_KDE]]

    Latest revision as of 15:50, 7 September 2020

    Getting Started on TechBase

    The KDE community is perhaps best known for its Plasma desktop workspace as well as its rich collection of applications but the community has also produced libraries and tools to make software development more enjoyable or, at the very least, less painful. Whether you're looking to write you first KDE application, make your existing Qt project more awesome, or get involved with one or more of the great KDE projects, this is a great place to get your journey started!


    Note
    To contribute to KDE, see the Get Involved page on the Community Wiki. If you are looking for build instructions, up-to-date build instructions are available on the Community Wiki, and we also have historic ones.


    Setting Up

    Getting started can be as simple or as involved as you need it to be. As much as possible, use your distro's packages to simply and speed up development unless you really need to get the latest source code version. And no, you don't need to "compile all of KDE" just to use a single framework. Not convinced? Check out our Setting Up Guide to see how easy it can be.

    KDE Frameworks

    KDE Frameworks 5 is built on top of the excellent Qt application framework to provide more functionality and power to your next big project. KDE software developers will also find classes that help them better integrate their applications into the Plasma workspace and with other KDE products.

    Kirigami

    Named after the Japanese art of cutting and folding paper to create beautiful objects, the Kirigami framework offers components to let your piece together a beautiful and responsive application. Expanding the Qt Quick framework, Kirigami empowers developers to create apps that look and behave well on desktop, mobile, and more.

    Tutorials

    Get your feet wet or dive head first into coding with KDE's collection of Tutorials. From writing your first application using the KDE Frameworks to developing applets for the Plasma workspace, these bite-sized guides will get you up and running in no time.

    Plasma

    KDE's world-famous workspace for desktops and mobile, Plasma provides a rich set of building blocks to help developers create rich, beautiful, and productive user experiences on different devices, form-factors, and use cases. KWin is one of the most powerful and most flexible window managers around, providing advanced functionality and control on both X11 and Wayland systems.

    It's just the beginning

    These are just the large tips of the KDE iceberg. The community has developed many libraries for more specific needs and use cases that developers can also use to simplify their projects.

    • Need an easy and cross-platform way to handle audio and video? Phonon's API will be very familiar to Qt developers and supports multiple backends, including GStreamer, VLC, and anything else you might want to develop.
    • If you need a privacy-respecting way to display maps and even the whole world, Marble provides data models and widgets to make that a walk in the park.
    • If you need libraries for handling email, events, and more, the KDE PIM libraries have withstood not only the test of time but also the test of enterprise customers.


    Check out the other KDE Projects that provide libraries and APIs that you can use to boost your own projects. The KDE Community is also welcoming not just new contributors but also new projects that want to be part of one of the biggest free software communities on the planet.