What are Launchpad and Bazaar

Launchpad is a web based platform for software development and code hosting.

Bazaar (also known as bzr) is a distributed version control system that is designed to be easy to use. It is the version control system of choice for launchpad and provides good integration with Launchpad.

More recently, Launchpad has added support for the git version control system.

Downloading AppArmor

Downloading tarballs

The current release tarballs can be found in [[1]], by selecting the series and then from the series page selecting the desired download.

Checking out the source tree with bazaar

To get an svn style checkout of the current development branch do

bzr co lp:apparmor

to create a local branch

bzr branch lp:apparmor

Checking out the apparmor source tree with git

There is work underway to move the AppArmor source trees to git. Otherwise, you can try to use git-bzr-ng as described in the Old Stuff section.

Checking out the apparmor-profiles repository with git

The AppArmor Profiles repository is now hosted with git on Launchpad. To check out (aka clone):

This page will let you propose a merge to the main project. The Target Reference Location is a fancy name for the main project's branch you wish to merge to; for the main apparmor-profiles development branch, you would enter master into this field.

Merging a proposal into the apparmor-profiles repo

NOTE: for apparmor-profiles maintainers

Once a merge proposal is in shape to be merged, do the following with git.

(The --no-ff will force a seperate merge commit, helping to clarify who merged/approved the branch. Include a short description, any bug reference urls "Bug: https://somesite/bug/123456/", and Acked-Bys as need be in the merge commit message.)

Once you're happy with the merge and your commit message (git commit --amend will let you edit your commit message), push the commit to launchpad:

git push origin master

That's it! Launchpad will notice the merge and mark the state of the merge proposal as Merged. You can delete the remote from the merge requestor from your git tree, or you can keep it around if you expect the proposer to future merge requests.