Difference between revisions of "Getting Started"

From WebOS-Ports
Jump to navigation Jump to search
(Instructions for webos-keyboard)
 
(18 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
== How to get started as a developer? ==
 
== How to get started as a developer? ==
  
=== QML Apps ===
+
=== 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.
  
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 :)
+
=== 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 [[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).
  
What you will need:
+
=== 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.
  
* 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:
+
=== What can I work on? ===
*; Ubuntu <16.04 (Xenial Xerus)/Debian < Stretch
+
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/]
*: 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++</pre>
 
*; Ubuntu &gt;=16.04 (Xenial Xerus)/Debian &gt;= Stretch (tested on Debian, but untested on Ubuntu and may need to be changed a bit)
 
*: <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)
+
Here are a few preset filter links that may help you get started:
*# <pre>git clone https://github.com/webOS-ports/luna-next-cardshell.git</pre>
 
  
* 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)
+
* [http://issues.webos-ports.org/projects/ports/issues?set_filter=1&tracker_id=1 Core LuneOS bugs]
*# <pre>git clone https://github.com/webOS-ports/luneos-components.git</pre>
+
* [http://issues.webos-ports.org/projects/ports/issues?set_filter=1&tracker_id=3 Core LuneOS feature requests]
 +
* [http://issues.webos-ports.org/projects/apps/issues?set_filter=1&tracker_id=1 App bugs]
 +
* [http://issues.webos-ports.org/projects/apps/issues?set_filter=1&tracker_id=3 App feature requests]
  
* Configure your build environment:
+
=== Start developing ===
*# Open the luneos-components.pro file in Qt CreatorYou could choose another project, but this one gives us a consistent starting point for directions.
+
We have multiple different development models depending on the area you want to help withPlease choose an area to help with below, and we'll show you how to set up your development environment:
*# Under Projects (on the left side), go to the Build tab (should be the default) and change the following settings:
 
*## Deactivate Shadow Build.
 
*## For the qmake build steps, click on Details to expand the edit area.
 
*## Set Additional Arguments to: <pre>CONFIG+=desktop</pre>
 
*# 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:
+
==== Enyo Apps ====
** luna-next-cardshell (the main launcher for LuneOS)
+
* [[Getting Started - Enyo Apps|Calendar]]
**# Open luna-next-cardshell/qml/luna-next-qml.qmlproject in Qt Creator.
+
* [[Getting Started - Enyo Apps|Contacts]]
**# Click the top green Play button near the bottom left corner of the Qt Creator window.
+
* [[Getting Started - Enyo Apps|File Manager]]
** FirstUse
+
* [[Getting Started - Enyo Apps|Maps]]
**# 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>
+
* [[Getting Started - Enyo Apps|Memos]]
**# Open org.webosports.app.firstuse/firstuse.qmlproject in Qt Creator.
+
* [[Getting Started - Enyo Apps|Messaging]]
**# Click the top green Play button near the bottom left corner of the Qt Creator window.
+
* [[Getting Started - Enyo Apps|PDF Viewer]]
** Browser
+
* [[Getting Started - Enyo Apps|Photos and Videos]]
**# 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.
+
* [[Getting Started - Enyo Apps|Settings]]
**# 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>
+
* [[Getting Started - Enyo Apps|Testr]]
**# 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.)
+
==== QML Apps ====
** Phone
+
* [[Getting Started - QML Apps|Luna-Next (System launcher)]]
** webos-keyboard
+
* [[Getting Started - QML Apps|First Use app]]
**# 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.
+
* [[Getting Started - QML Apps|Browser App]]
**# 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>
+
* [[Getting Started - QML Apps|Phone App]]
**# Open webos-keyboard/luneos-keyboard.pro in Qt Creator.
+
* [[Getting Started - QML Apps|On-Screen Keyboard]]
**# Click the Configure Project button to set up basic build settings and continue.
 
**# Click the top green Play button near the bottom left corner of the Qt Creator window.  (Not fully tested.)
 

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