The Mer Wiki now uses your Mer user account and password (create account on https://bugs.merproject.org/)
Nemo/GettingStartedInFixingBugs
(→Getting Started in Fixing Bugs) |
(→Getting Started in Fixing Bugs) |
||
(12 intermediate revisions by 8 users not shown) | |||
Line 1: | Line 1: | ||
= Getting Started in Fixing Bugs = | = Getting Started in Fixing Bugs = | ||
'''Prerequisites''' | '''Prerequisites''' | ||
− | * | + | * [[Platform SDK|Mer SDK installed]] |
− | + | ||
− | + | ||
* User accounts | * User accounts | ||
− | ** Community OBS account | + | ** [https://build.merproject.org/ Community OBS] same account as bugzilla below, https://wiki.merproject.org/wiki/Nemo/OBS#Getting_started_with_the_build_system |
− | ** Nemo Bugzilla account (same account works on both mer and nemo bugzilla, register here: https://bugs.merproject.org/createaccount.cgi) | + | ** [https://bugs.nemomobile.org/ Nemo Bugzilla] account (same account works on both mer and nemo bugzilla, register here: https://bugs.merproject.org/createaccount.cgi) |
* For running on device: Nemo Mobile device | * For running on device: Nemo Mobile device | ||
* Optionally | * Optionally | ||
Line 13: | Line 11: | ||
== Take a bug == | == Take a bug == | ||
# Go to https://bugs.nemomobile.org | # Go to https://bugs.nemomobile.org | ||
− | # | + | # Choose a bug: [https://bugs.nemomobile.org/buglist.cgi?chfieldto=Now&query_format=advanced&chfieldfrom=2013-11-18&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED] |
# Change the assignee to yourself | # Change the assignee to yourself | ||
# Change the bug status to assigned | # Change the bug status to assigned | ||
== Create a patch == | == Create a patch == | ||
− | Ideally, we would fix the upstream | + | Ideally, we would fix the upstream package 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 | Once you know which package needs to be fixed | ||
Line 31: | Line 29: | ||
# Once the fix works commit your fix to your local branch | # Once the fix works commit your fix to your local branch | ||
# create patch with <pre>git format-patch</pre> | # create patch with <pre>git format-patch</pre> | ||
− | + | ||
+ | == Submit the patch upstream == | ||
+ | |||
+ | Nemo contains software from a variety of sources, so there isn't always a clear guideline for how to do this, but generally speaking: | ||
+ | |||
+ | * For anything we maintain (generally speaking, anything on https://github.com/nemomobile), please submit a pull request on github. The right people should get a mail notification automatically, but feel free to ping us in #nemomobile too. | ||
+ | * For software from Maemo (or MeeGo), or other sources where there may not be an active upstream, please ask (in #nemomobile) to get a repository created in the nemomobile project on github. | ||
+ | * For anything else, please follow upstream proceedures. If you can't find them, please ping in #nemomobile and we'll try help you out. | ||
+ | |||
+ | If you're unsure, or need help, please just ask. | ||
+ | |||
== Building package with the patch in OBS == | == Building package with the patch in OBS == | ||
− | # Log into [https://build. | + | Please note that you don't need to patch packages that we maintain (see github). Instead, we should be making releases of those packages. Generally, the maintainer(s) of the packages will take care of this in a reasonable amount of time after your patch is merged, but please ping someone on #nemomobile if this process takes too long. (TODO: write a page on release guidelines) |
+ | |||
+ | # Log into [https://build.merproject.org/ community OBS] | ||
# Search for the package needing the fix | # Search for the package needing the fix | ||
# Branch the package | # Branch the package | ||
# Go to your computers command line | # Go to your computers command line | ||
− | # Check out your branched package with <pre>osc -A https://api. | + | # Check out your branched package with <pre>osc -A https://api.merproject.org/ co <your_branched_project>/<package-name></pre> |
# Change into dir that was checked out above | # Change into dir that was checked out above | ||
# Copy the patch to working dir | # Copy the patch to working dir | ||
Line 45: | Line 55: | ||
# Update .changes file. See details of changelog format [http://www.mail-archive.com/mer-general@lists.merproject.org/msg00055.html here] | # Update .changes file. See details of changelog format [http://www.mail-archive.com/mer-general@lists.merproject.org/msg00055.html here] | ||
# Check in your changes with <pre>osc ci -m "fixes NEMO#xx"</pre> where xx is bug number | # Check in your changes with <pre>osc ci -m "fixes NEMO#xx"</pre> where xx is bug number | ||
− | # Go back to community OBS Web UI. Check that your | + | # Go back to community OBS Web UI. Check that your package builds. |
− | # Once OBS has succesfully built a | + | # Once OBS has succesfully built a package for your architecture, install it on your device to check that it works. |
== Submit your fixed package to Nemo == | == Submit your fixed package to Nemo == | ||
Line 55: | Line 65: | ||
# Submit | # Submit | ||
# Mark the bug in bugzilla as fixed and add link to submit request to comments of the bug | # Mark the bug in bugzilla as fixed and add link to submit request to comments of the bug | ||
− | # Be prepared to do (typically minor) fixes | + | # Be prepared to do (typically minor) fixes based on automated feedback by build infrastructure or by review of maintainer (sage). Create a new submit request with the fix, if you will try to reopen the old declined one, then the same old non-fixed revision will be used. |
# Once the fix has been accepted maintainer (Sage) will mark the bug as released in bugzilla | # Once the fix has been accepted maintainer (Sage) will mark the bug as released in bugzilla | ||
− | |||
== More information == | == More information == | ||
* There is an example with images of a bug's life in [http://veskuh.blogspot.com/2012/01/bugs-life.html Vesku's blog] | * There is an example with images of a bug's life in [http://veskuh.blogspot.com/2012/01/bugs-life.html Vesku's blog] |
Latest revision as of 19:47, 11 February 2014
Contents |
[edit] Getting Started in Fixing Bugs
Prerequisites
- Mer SDK installed
- User accounts
- Community OBS same account as bugzilla below, https://wiki.merproject.org/wiki/Nemo/OBS#Getting_started_with_the_build_system
- Nemo Bugzilla account (same account works on both mer and nemo bugzilla, register here: https://bugs.merproject.org/createaccount.cgi)
- 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
[edit] Take a bug
- Go to https://bugs.nemomobile.org
- Choose a bug: [1]
- Change the assignee to yourself
- Change the bug status to assigned
[edit] Create a patch
Ideally, we would fix the upstream package 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
- Find where the upstream git repository is
- Clone the sources
git clone <url>
- Check out the release tag that matches the version in Nemo
- Create local branch for you fix
- Fix the sources.
- In fixing your package the QtSDK may help you if you work on N900 or N950. See hello world -tutorial for details
- Second option is to use local builds using osc. (TODO tutorial)
- 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)
- Once the fix works commit your fix to your local branch
- create patch with
git format-patch
[edit] Submit the patch upstream
Nemo contains software from a variety of sources, so there isn't always a clear guideline for how to do this, but generally speaking:
- For anything we maintain (generally speaking, anything on https://github.com/nemomobile), please submit a pull request on github. The right people should get a mail notification automatically, but feel free to ping us in #nemomobile too.
- For software from Maemo (or MeeGo), or other sources where there may not be an active upstream, please ask (in #nemomobile) to get a repository created in the nemomobile project on github.
- For anything else, please follow upstream proceedures. If you can't find them, please ping in #nemomobile and we'll try help you out.
If you're unsure, or need help, please just ask.
[edit] Building package with the patch in OBS
Please note that you don't need to patch packages that we maintain (see github). Instead, we should be making releases of those packages. Generally, the maintainer(s) of the packages will take care of this in a reasonable amount of time after your patch is merged, but please ping someone on #nemomobile if this process takes too long. (TODO: write a page on release guidelines)
- Log into community OBS
- Search for the package needing the fix
- Branch the package
- Go to your computers command line
- Check out your branched package with
osc -A https://api.merproject.org/ co <your_branched_project>/<package-name>
- Change into dir that was checked out above
- Copy the patch to working dir
- Add the patch to package's source files with
osc add <patch>
- Add the patch in .yaml file in the patches-section
- Run specify to update .spec file
- Update .changes file. See details of changelog format here
- Check in your changes with
osc ci -m "fixes NEMO#xx"
where xx is bug number - Go back to community OBS Web UI. Check that your package builds.
- Once OBS has succesfully built a package for your architecture, install it on your device to check that it works.
[edit] Submit your fixed package to Nemo
- Go to community OBS Web UI
- Enable publish for all architectures (under your branched project -> repositories)
- 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
- Go to overview page of the package
- Submit
- Mark the bug in bugzilla as fixed and add link to submit request to comments of the bug
- Be prepared to do (typically minor) fixes based on automated feedback by build infrastructure or by review of maintainer (sage). Create a new submit request with the fix, if you will try to reopen the old declined one, then the same old non-fixed revision will be used.
- Once the fix has been accepted maintainer (Sage) will mark the bug as released in bugzilla
[edit] More information
- There is an example with images of a bug's life in Vesku's blog