Working with and Bazaar

The TAPAAL project uses for code-hosting and bug management.

The TAPAAL project is hosted at:

All developers are encourage to get familiar with To get an overview of the features available in launchpad we recommend reading the introduction tour: All core developers is expected to have read the launchpad help pages:

TAPAAL uses a Decentralized with automatic gatekeeper workflow for bazaar (see This means that it is not possible to directly push/commit to trunk and series brances.

If you prefer a git like workflow, with one repository with all branches you can also do this with bzr, see section “Working with a shared repository”

Working with Bazaar

Before committing the first time

Before committing make sure that you are properly identified by launchpad and bzr by running:

bzr whoami

This will show you your name and email as registered on launchpad e.g. “Kenneth Yrke Joergensen”, if this is not the case, please correct it by running the command

bzr whoami 'Full Name <email@domain>'

Where “Full Name <email@domain>“is replaced by your name and email.

Make sure that your email address is correctly registered on launchpad (Hint, you can have more than one).

Make a branch

To work on tapaal you first need to create a feature branch. This is done by

  bzr branch lp:tapaal branchname

We suggest to name branches for bug fixes according to the bug number (eg tapaal-fix-832652).

Now hack way.

Before Committing

Before committing remember to go through the following steps.

  1. Check that the commit implements the feature it is meant to. A commit should be a complete and comprehensive patch to the system. Do not split up a change in many small commits.
  2. Check that no new files are forgotten by running bzr status
  3. Check that debug-code or other test changes are not included in the commit by running “bzr diff” and LOOK through the diff.
  4. Check that the code still builds (run make)
  5. Now you are ready to commit.


When you commit a bugfix to a TAPAAL branch always remember to add the –fixes to the commit.

bzr ci --fixes=lp:1234   # Where 1234 is a bug ID

Always remember to specify a meaningful commit message.

Commit message

The first line of the commit message is used summary and appears many places as a summary of the commit. So a descriptive yet concise first line is important.

For trivial fixes only specify the first line. For larger patches give a short and concise description in summary line. Use a blank line before giving a longer description of the patch.

If you are fixing a bug, always remember to specify the bug number in the commit message summary. Eg. “Fix for bug #1234”. (Also even if you use –fixes on the commit, not all tools are able to use the –fixes flag)

Example commit message (fictive):

Implemented check for verifyta version, fixes bug #1234

Added a function that check the verifyta executable version number before 
verifyta is started. Added a wrapper function for call to verifyta, remember
to use this new wrapper function. 

In order to make the commit message look good, remember to brak lines before 80 chars. (Std. width of a unix shell)

Making a branch public

In order for other to see your branch you need to upload it to launchpad. This is done using

bzr push lp:~username/tapaal/branchname

If the branch is not already there, it will be created. If you collaborate with other on a branch you can push it to a team by replacing ~username with ~team-name

Getting your branch into trunk

In order to get you code into trunk you need to create a merge request on launchpad. Remember to set a commit message in the interface, else it will not be merged.

In order to get merged you commit need the following status:

  1. The merge requested has the status approved
  2. At least two people has set the status approved
  3. No one has set the status reject
  4. The request has a commit message
  5. The java code builds without errors after the merge

Merges are automatically done every five minutes.

Bug Status

Remember to set a bug status: Read on what a status means. NB: Notice the status triaged and opinion

Working with a shared (git-like) repository

If you prefer working within a git-like manner, with one repository with several branches, this can also be done with bazaar. This workflow is very practical when working with an IDE like IntelliJ, as you can set up one project folder and then easily switch between branches without having to do any changes in the IDE.

To set up a shared repository run:

mkdir .r
bzr init-repo --no-trees .
bzr branch lp:tapaal .r/tapaal
bzr co --lightweight .\.r\tapaal\ .

To show you current branch run:

bzr info

To create (and switch to) a new branch from the current branch you can run:

bzr switch -b .r/bugfix-1234

To switch between branches run:

bzr switch <Branchname>

Eg. to switch to trunk run bzr switch tapaal. You do not need to include .r/, as switch is relative to the current branch path.

To list all branches:

ls .r

See more on

developer/workingwithlaunchpad.txt · Last modified: 2019/01/27 20:20 by kyrke
CC Attribution-Noncommercial-Share Alike 4.0 International Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0