Fixing a bug

In Dekko we track all work items through bugs & blueprints. I would suggest having a read of the Launchpad help documents to get a good idea of how these work.

Assigning bugs

When you wish to start working on a bug you should assign the bug to yourself and mark it as "in progress".

Assigning blueprint tasks

You can assign a bleprint task to yourself by adding your launchpad username inside square bracket and append the task with "INPROGRESS"

e.g

[my-lp-username] Implement foobar component: INPROGRESS

Create local branch

The first thing you should do is create a new branch for the task. You should make sure your local & remote master repository is up to date first

$ git checkout master
$ git fetch origin/master
$ git rebase -i origin/master
// Check & save the commit message
$ git push lp master

Now you can create a branch. Branch names should be descriptive, usually either the bug number e.g fix-111920 or a short description of what it implements e.g "msg-list-avatar"

To create a new branch run:

$ git checkout -b my-new-branch-name

Running git branch will show you have switched to the new branch and your now ready to start working.

Committing changes

When ready to commit some changes first you should either run $ git status or $ git diff to check you are committing the correct changes.

The changes first need staging to add a single file to the commit run

$ git add path/to/filname

or to add all changes at once you can just add a period

$ git add .

Now finally commit the changes

$ git commit

The commit message should display a short title of what the patch does, and a paragraph or two explaining any reasoning,issues,logic that would help the reviewer or when looking back at the commit in the future. If this is a bug fix the last line of the commit should contain fixes: bug #

example commit

Implement flippable foobar

This patch implements a flippable foobar! 
The previous rotating foobar was a bottleneck 
when multiple instances were running at the 
same time.

Using a flippable the foobars are now alot lighter.
See added benchmark tests to confirm.

fixes: bug 12398123

Once you have saved the commit you can push it to your remote user repository.

$ git push lp my-new-branch-name

Create merge proposal

Merge proposals are created from the launchpad UI for the branch you just pushed. Make sure the target repository is lp:dekko and "master" is the target branch. Also it would be handy if you could copy/paste the commit message into the description field of the merge proposal.

Hint: use $ git log