This page tells you how to contribute code changes to Launchpad. Ask for help right away if you run into problems.
Submitting a Patch to Launchpad
Below we describe the process of getting a code change into Launchpad. You should already have the Launchpad sources, be able to build and run Launchpad, and be familiar with the coding style guidelines.
Note that by "patch", we just mean a code change, not an actual patch file meant for the patch program. In Launchpad, patches are typically delivered as Bazaar branches hosted on Launchpad itself; see below for details.
Before making your change, you need to talk about it first to a Launchpad developer. The easiest way there is to ask the person listed as the on-call reviewer (OCR) in the #launchpad-reviews IRC channel on irc.freenode.net. That "pre-implementation chat" will make sure that you have all things covered. If your proposal involves UI changes, you might even want to make screenshots or a screencast.
- Make sure your change is about one single thing (say, a specific bugfix), and that all the revisions for it are committed on your Bazaar branch.
Push the branch up to your Launchpad user account: bzr push my_bugfix123_branch lp:~my_username/launchpad/bugfix123
Run tests on your branch. If the tests don't pass, go back to hacking, commit new changes, re-push, and re-test. Repeat until the branch passes.
Please send in your contributor agreement form now (it's an easy email process). We can't accept the change without a contributor agreement.
Propose your branch for merging, by going to https://code.launchpad.net/~my_username/launchpad/bugfix123 and click on Propose for merging into another branch. (The branch to merge into is lp:~launchpad-pqm/launchpad/devel.) Fill in the field for requested reviewer with the name of the reviewer you found, and follow the guidelines for writing the merge cover letter.
Find someone to review the branch. Usually, this would be the Launchpad developer with whom you had your "pre-implementation" chat about the change. If he or she is not available, you can ping the on-call reviewer in #launchpad-dev. See the Code Review page.
Once the reviewer approves the change, they'll take care of merging your changes (that's until we work out an automated process).