Nemo/GettingStartedInFixingBugs

= Getting Started in Fixing Bugs = Prerequisites
 * Tools on your computer:
 * osc
 * spectacle
 * User accounts
 * Community OBS account
 * Nemo Bugzilla account
 * For running on device: Nemo Mobile device
 * Optionally
 * For N900/N950 devices Qt SDK 1.1.4 with Harmattan target installed may help testing the fix

Take a bug

 * 1) Go to https://bugs.nemomobile.org
 * 2) Chooce a bug, preferably one from not-assigned bugs.
 * 3) Change to assignee to yourself
 * 4) Change the bug status as assigned

Create a patch
Ideally, we would fix the upstream pacakge and would release a new version of the package. However, many times we want fix quicker than this allows and thus end up temporarily patching the package. This gives a brief instructions on how.

Once you know which package needs to be fixed
 * 1) Find where the upstream git repository is
 * 2) Clone the sources git clone
 * 3) Check out the release tag that matches the version in Nemo
 * 4) Create local branch for you fix
 * 5) Fix the sources.
 * 6) * In fixing your package the QtSDK may help you if you work on N900 or N950. See hello world -tutorial for details
 * 7) * Second option is to use local builds using osc. (TODO tutorial)
 * 8) * Third option is let OBS build the package. (In practice in this point ignoring if the fix works and executing the remaining steps and steps in the next section)
 * 9) Once the fix works commit your fix to your local branch
 * 10) create patch with git format-patch

Building package with the patch in OBS

 * 1) Log into community OBS
 * 2) Search for the package needing the fix
 * 3) Branch the package
 * 4) Go to your computers command line
 * 5) Check out your branched package with osc -A https://api.pub.meego.com/ co /
 * 6) Change into dir that was checked out above
 * 7) Copy the patch to working dir
 * 8) Add the patch to package's source files with osc add
 * 9) Add the patch in .yaml file in the patches-section
 * 10) Run specify to update .spec file
 * 11) Update .changes file. See details of changelog format here
 * 12) Check in your changes with osc ci -m "fixes NEMO#xx" where xx is bug number
 * 13) Go back to community OBS Web UI. Check that your pacakge builds.
 * 14) Once OBS has succesfully built a pacakge for your architecture, install it on your device to check that it works.

Submit your fixed package to Nemo

 * 1) Go to community OBS Web UI
 * 2) Enable publish for all architectures (under your branched project -> repositories)
 * 3) In case you have not done this before it would be good to say in irc channel #nemomobile that you are planning to submit bug fix
 * 4) Go to overview page of the package
 * 5) Submit
 * 6) Mark the bug in bugzilla as fixed and add link to submit request to comments of the bug
 * 7) Be prepared to do (typically minor) fixes to your submit request based on automated feedback by build infrastructure or by review of maintainer (sage)
 * 8) Once the fix has been accepted maintainer (Sage) will mark the bug as released in bugzilla

More information

 * There is an example with images of a bug's life in Vesku's blog