Difference between revisions of "Getting Started"

From WebOS-Ports
Jump to navigation Jump to search
(Beginnings of separating instructions by app.)
 
(15 intermediate revisions by one other user not shown)
Line 1: Line 1:
 
== How to get started as a developer? ==
 
== How to get started as a developer? ==
  
We have multiple different development models depending on the area you want to help with.  Please choose an area to help with below, and we'll show you how to set up your development environment:
+
=== Communications ===
 +
First of all, [[Communications|start talking with us]]Hop on IRC and see who's around.  This is a very active project.  We're friendly and can help get you started.
  
* [[Getting Started - QML Apps|Luna-Next (System launcher)]]
+
=== Try out LuneOS ===
* [[Getting Started - Enyo Apps|Calendar]]
+
Next up, you might want to become more familiar with how LuneOS currently works by downloading a VM image that you can run on your computer in a program called VirtualBox.  You can find this image on the left side of the site under [[Qemux86 Info|Devices->Show All Devices->WebOS Ports LuneOS VirtualBox Emulator]].  If you're going to help us develop, you should download the latest nightly build.  Try it out, poke around, and look through the bug tracker to see what we're working on (you can find the bug tracker link under the [[Communications]] page).
  
=== QML Apps ===
+
=== Browse around ===
 +
Once you're comfortable with how LuneOS works, you might want to poke around our GitHub account at [https://github.com/webOS-ports https://github.com/webOS-ports]  This contains the code repos for the projects we're actively working on.  Development works on a clone/change/pull request style, which means that when you're ready to change something, you will need to:
 +
# Set up a GitHub account.
 +
# Clone the repo you want to change into your own account.
 +
# Change things and commit your changes.
 +
# Push your changes back to GitHub.
 +
# Issue a Pull Request back to the main project describing the changes you made.
 +
More detailed instructions can be found on our [[Submitting Contributions]] page.
  
We have various apps and components written in QML. By using stub data you'll be able to use most of them on a desktop for agile development :)
+
=== What can I work on? ===
 +
Check out our page on [[Issue Tracking]] or go straight to the bug tracker at [http://issues.webos-ports.org/ http://issues.webos-ports.org/]
  
What you will need:
+
Here are a few preset filter links that may help you get started:
  
* Qt 5.5 or up and Qt Creator (included with Qt which can be downloaded from http://www.qt.io/download-open-source/) or installed on Linux using one of these commands:
+
* [http://issues.webos-ports.org/projects/ports/issues?set_filter=1&tracker_id=1 Core LuneOS bugs]
*; Ubuntu <16.04 (Xenial Xerus)/Debian < Stretch
+
* [http://issues.webos-ports.org/projects/ports/issues?set_filter=1&tracker_id=3 Core LuneOS feature requests]
*: You will need to download the version direct from Qt at http://www.qt.io/download-open-source/ The versions included in the system repositories are too old.  The default Qt packages it selects should be all you need, and you can install this version of Qt in a directory within your home directory if you don't want to install it system-wide or replace the system packages.  You will also need to run: <pre>sudo apt-get install g++ cmake</pre>  You will need to change your default Qt version for the Qt Creator build environment, but instructions for that are included further down in these instructions.
+
* [http://issues.webos-ports.org/projects/apps/issues?set_filter=1&tracker_id=1 App bugs]
*; Ubuntu &gt;=16.04 (Xenial Xerus)/Debian &gt;= Stretch (tested on Debian, but untested on Ubuntu and may need to be changed a bit)
+
* [http://issues.webos-ports.org/projects/apps/issues?set_filter=1&tracker_id=3 App feature requests]
*: We strongly recommend you use the Qt version from the Qt website instead of system packages. The system packages may or may not contain all of the components you will need to run all of the apps, such as QtWebEngine for the Browser app, which is not included on Debian.  However, if you want to try it, you can install most of the dependencies with this: <pre>sudo apt-get install qtcreator qtdeclarative5-dev cmake gcc g++ qmlscene qml-module-qtqml-models2 qt5-default qtdeclarative5-private-dev qtbase5-private-dev qml-module-qtmultimedia qml-module-qtgraphicaleffects # Due to the way Qt is packaged, we also need to install some dependencies.</pre>
 
*; Fedora (this one is also untested and may be too old)
 
*: <pre>yum install qt-creator</pre>
 
*; Gentoo (untested)
 
*: Unmask a version of Qt &gt;= 5.5 (needed at the time of writing), then run: <pre>emerge dev-qt/qt-creator</pre>
 
  
* luna-next-cardshell (This acts as both the system shell and a library of components)
+
=== Start developing ===
*# <pre>git clone https://github.com/webOS-ports/luna-next-cardshell.git</pre>
+
We have multiple different development models depending on the area you want to help with.  Please choose an area to help with below, and we'll show you how to set up your development environment:
  
* luneos-components (This is our shared library of components used across various QML apps and can be found at https://github.com/webOS-ports/luneos-components)
+
==== Enyo Apps ====
*# <pre>git clone https://github.com/webOS-ports/luneos-components.git</pre>
+
* [[Getting Started - Enyo Apps|Calendar]]
 +
* [[Getting Started - Enyo Apps|Contacts]]
 +
* [[Getting Started - Enyo Apps|File Manager]]
 +
* [[Getting Started - Enyo Apps|Maps]]
 +
* [[Getting Started - Enyo Apps|Memos]]
 +
* [[Getting Started - Enyo Apps|Messaging]]
 +
* [[Getting Started - Enyo Apps|PDF Viewer]]
 +
* [[Getting Started - Enyo Apps|Photos and Videos]]
 +
* [[Getting Started - Enyo Apps|Settings]]
 +
* [[Getting Started - Enyo Apps|Testr]]
  
* Configure your build environment:
+
==== QML Apps ====
*# Open the luneos-components.pro file in Qt Creator.  You could choose another project, but this one gives us a consistent starting point for directions.
+
* [[Getting Started - QML Apps|Luna-Next (System launcher)]]
*# Under Projects (on the left side), go to the Build tab (should be the default) and change the following settings:
+
* [[Getting Started - QML Apps|First Use app]]
*## Deactivate Shadow Build.
+
* [[Getting Started - QML Apps|Browser App]]
*## For the qmake build steps, click on Details to expand the edit area.
+
* [[Getting Started - QML Apps|Phone App]]
*## Set Additional Arguments to: <pre>CONFIG+=desktop</pre>
+
* [[Getting Started - QML Apps|On-Screen Keyboard]]
*# Now, under the Run tab at the top:
 
*## Set Executable to <pre>qmlscene</pre>
 
*## Set Additional Arguments to <pre>-l modules -l test/imports examples/gallery/main.qml</pre>
 
*## Under Run Environment, click Details to expand the settings.
 
*## Add a setting called <pre>QT_QUICK_CONTROLS_STYLE</pre> and give it a value of <pre>LuneOS</pre>
 
*# To make sure that you're using Qt 5.5 (in case you have multiple versions installed):
 
*## Go to Tools-&gt;Options and under the Build &amp; Run section, go to the Kits tab and find the Desktop (default) kit.
 
*## Click on the Desktop (default) kit and resize the window so you can see the settings below the kit selector area.
 
*## Make sure your Qt version setting is set to one of the Qt 5.5 options.  If you do not have a Qt 5.5 option, you may not have Qt installed correctly.  If you have more than one, try and use one of the (System) ones instead of the (qt5) one.  If you run into compilation problems, try a different one.
 
 
 
* Try building one of the QML apps:
 
** luna-next-cardshell (the main launcher for LuneOS)
 
**# Open luna-next-cardshell/qml/luna-next-qml.qmlproject in Qt Creator.
 
**# Click the top green Play button near the bottom left corner of the Qt Creator window.
 
** FirstUse
 
**# Within the same directory you cloned the other git repos into, run this command to download the FirstUse app: <pre>git clone https://github.com/webOS-ports/org.webosports.app.firstuse.git</pre>
 
**# Open org.webosports.app.firstuse/firstuse.qmlproject in Qt Creator.
 
**# Click the top green Play button near the bottom left corner of the Qt Creator window.
 
** Browser
 
**# If you are a distro which does not have QtWebEngine available (such as Debian, which has chosen not to distribute QtWebEngine at the time of writing), you will not be able to run the Browser app on the desktop using system Qt packages.  Before continuing, please ensure that you have QtWebEngine installed.
 
**# Within the same directory you cloned the other git repos into, run this command to download the Browser app: <pre>git clone https://github.com/webOS-ports/org.webosports.app.browser.git</pre>
 
**# Open org.webosports.app.browser/browser.qmlproject in Qt Creator.
 
**# Click the top green Play button near the bottom left corner of the Qt Creator window.  (Not fully tested.)
 
** Phone
 
** webos-keyboard
 
**# You will need the Maliit framework installed.  This should be available as a package on Ubuntu (should be called maliit-framework).  maliit-framework should also be available on Fedora.  At the time of writing, this does not appear to be available on Debian outside of the experimental branch.
 
**# Within the same directory you cloned the other git repos into, run this command to download the Keyboard app: <pre>git clone https://github.com/webOS-ports/webos-keyboard.git</pre>
 
**# Open Project webos-keyboard/tests/keyboard-test/keyboard-test.qmlproject in Qt Creator.
 
**# Click the top green Play button near the bottom left corner of the Qt Creator window.
 
**# Generic layouts and keys can be found in webos-keyboard/qml/ Each type of keyboard layout (numeric, symbols, telephone) has a separate QML file. The same applies for different kind of keys.
 
**# Language specific files can be found at webos-keyboard/plugins/
 

Latest revision as of 20:40, 3 February 2016

How to get started as a developer?

Communications

First of all, start talking with us. Hop on IRC and see who's around. This is a very active project. We're friendly and can help get you started.

Try out LuneOS

Next up, you might want to become more familiar with how LuneOS currently works by downloading a VM image that you can run on your computer in a program called VirtualBox. You can find this image on the left side of the site under Devices->Show All Devices->WebOS Ports LuneOS VirtualBox Emulator. If you're going to help us develop, you should download the latest nightly build. Try it out, poke around, and look through the bug tracker to see what we're working on (you can find the bug tracker link under the Communications page).

Browse around

Once you're comfortable with how LuneOS works, you might want to poke around our GitHub account at https://github.com/webOS-ports This contains the code repos for the projects we're actively working on. Development works on a clone/change/pull request style, which means that when you're ready to change something, you will need to:

  1. Set up a GitHub account.
  2. Clone the repo you want to change into your own account.
  3. Change things and commit your changes.
  4. Push your changes back to GitHub.
  5. Issue a Pull Request back to the main project describing the changes you made.

More detailed instructions can be found on our Submitting Contributions page.

What can I work on?

Check out our page on Issue Tracking or go straight to the bug tracker at http://issues.webos-ports.org/

Here are a few preset filter links that may help you get started:

Start developing

We have multiple different development models depending on the area you want to help with. Please choose an area to help with below, and we'll show you how to set up your development environment:

Enyo Apps

QML Apps