DevelopmentGuide
Development Guide
Before Your Start
There are a few things you should do before you start hacking:
Download and install the SDK from http://developer.ubuntu.com - you should also run through the tutorial to get acquainted with the technology.
Sign the Contributor Agreement - email kevin.wright@canonical.com for details - we need to ask folks to sign this as many carriers and handset manufacturers require specific license agreements, and this allows us to dual-license the code between both a a fully Free Software license and a license that might be required for a handset manufacturer or operator.
Getting Started
Here is how you get started. If you have any questions, feel free to email Kevin Wright
Join The Mailing List
You should first join the ubuntu-phone mailing list. To do this, head over to https://launchpad.net/~ubuntu-phone and join the list. You can see the list archives at https://lists.launchpad.net/ubuntu-phone/
When sending emails to the list, please put app name from the Launchpad project in square brackets in your subject line. As an example, for the Calendar app:
[ubuntu-calendar-app] My subject title
This helps us to filter the list better.
Getting The Code
To get the code, go to the wiki page for the app you are interested in and click the Launchpad Project link. You can then see how to branch the code.
For example, for the calendar you run:
bzr branch lp:ubuntu-calendar-app
Using Bzr
Bzr is the primary version control system used by Ubuntu and Ubuntu projects. Bzr is quite like other distributed version control systems, just as Git and Mercurial in that you have both a local checkout and the full branch history locally. This allows you to branch, commit and merge code without being connected to a central server.
When you branch the project's code (using the command above), you get the full history of the branch, with the tip (HEAD) checked out in your new directory. When you make changes to this code you will need to commit is to your branch history by running:
bzr commit -m "Commit Message"
This commits your changes to your local branch history, but not to the remove Bzr branch that you pulled from. You can commit as much as you like to this local branch history until you are ready to submit all of your changes back to the original branch.
When you are ready to submit your changes, you will need to push them back to Launchpad. You should not push to the same branch you pulled from however, instead you should push to a new branch location where you changes can be reviewed before making it way to trunk. Do do this, run the following command:
bzr push lp:~<your_launchpad_username>/ubuntu-calendar-app/<unique_branch_name>
You'll need to have a launchpad profile, and give your branch a unique name that you can use to identify it. Replace ubuntu-calendar-app with the name of the project you are working on. You can then open the new branch in your browser with:
bzr launchpad-open lp:~<your_launchpad_username>/ubuntu-calendar-app/<unique_branch_name>
Using Launchpad
For Developers
Feature Development
join meetings
coordinate features in meetings and on the list
use blueprints to track this work
Fixing Bugs
find the bugs list
assign the bug to you
fix the bug and submit as a merge proposal
Contributing Your Branch
how to upload the branch to LP and then submit a merge proposal
For the Project Team
Reviewing Branches
how to review someone elses branch
Triaging Bugs
how to manage bug reports and get them ready for developers