WorkingWithDbDevel

Not logged in - Log In / Register

Revision 2 as of 2009-07-22 09:34:55

Clear message

Working with db-devel

As the standard rocketfuel and ec2test scripts work on devel, some care must be taken when developing against db-devel. This is a guide for all who have only used rocketfuel-scripts so far.

Alternative trunk

Create an alternative trunk directory called db-devel next to your trunk directory in your repository (e.g. ~/launchpad/lp-branches).

bzr branch lp:~launchpad-pqm/launchpad/db-devel db-devel

Set the public location for this branch in ~/.bazaar/locations.conf

[<your-home-dir>/launchpad/lp-branches/db-devel]
    public_branch = bzr+ssh://bazaar.launchpad.net/~launchpad-pqm/launchpad/db-devel

Now you can use this to create new branches of db-devel in lp-branches:

bzr branch db-devel my-db-devel-branch

You can update db-devel by pulling in changes.

cd db-devel
bzr pull

You can merge changes from db-devel into your branch.

cd my-db-devel-branch
bzr merge ../db-devel
bzr commit -m"Merge db-devel."

To run code in your branch, you need to link the external source code. Normally rocketfuel-branch would do that for you.

cd my-db-devel-branch
utilities/link-external-sourcecode ../../lp-sourcedeps/

Note: Should we make it a habit to prefix these branches' names with "db-" so we never forget? —jtv

You should still run rocketfuel-get regularly because it updates lp-sourcedeps and the links in all your branches (including your db-devel branches).

rocketfuel-get

Pushing to Launchpad

You can push to Launchpad as usual but it will stack on devel, so depending on how far they have diverged, the initial push may take a bit longer. The stacking on devel does no harm otherwise.

Creating a merge proposal

It is very important to get the merge target right when creating a merge proposal, otherwise your reviewer will see a much larger patch than what you thought you were submitting.

When creating a merge proposal through the UI make sure to pick db-devel. This is fairly easy.

Using bzr send is recommended. You can simply pass your local db-devel branch as the submit-branch to the lpsend command because you set up its public location earlier.

cd my-db-devel-branch
bzr lpsend ../db-devel/

Note: It is a good idea to mention that you want to merge into db-devel in the cover letter because it is not very conspicuous to the reviewer otherwise.

Running ec2test

Using ec2test.py (sorry, still internal) works as desrcibed but you need to add one or two options to it. The -b option defines the public branch you are working on and the --pqm-submit-location defines where you want pqm to merge your branch into. The latter is only needed if you also supply the -s option with a submit message for pqm. This is a full call.

cd my-db-devel-branch
~/launchpad/lp-dev-utils/ec2test.py --headless -s '[r=kermit][ui=none] Fix the frobnob.' -b launchpad=db-devel --pqm-submit-location=bzr+ssh://bazaar.launchpad.net/~launchpad-pqm/launchpad/db-devel

To my knowledge, the lp: address scheme cannot be used here.

Submitting to PQM

Lastly, if you need to submit to pqm without going through ec2test (why ever? ;), you can use pqm-submit and pass in db-devel as the --submit-branch.

cd my-db-devel-branch
bzr pqm-submit -m '[r=kermit][ui=none] Fix the frobnob.' --submit-branch=bzr+ssh://bazaar.launchpad.net/~launchpad-pqm/launchpad/db-devel