← Back to team overview

launchpad-dev team mailing list archive

Re: Release of lpsetup


On 08/27/2012 04:55 PM, Brad Crittenden wrote:

As a by-product of the work the Yellow Squad has been doing to parallelize the Launchpad test suite, we've created a tool called 'lpsetup' that replaces the rocketfuel-setup scripts but with lots of new functionality.

You can use lpsetup to prepare your development machine to do Launchpad development as with rocketfuel-setup but you can also have it install everything into an LXC container, leaving your real machine mostly untouched.  Going the LXC route is straightforward and very clean.

Getting Started

* Grab the lpsetup PPA from ppa/launchpad:

% sudo add-apt-repository ppa:launchpad/ppa
% sudo apt-get update
% sudo apt-get install lpsetup

What'll it do?

Every lpsetup command accepts the --dry-run option which just shows you what it would do.  When running a command for real, it will display the changes that will be made and give you the option of canceling.

Creating Launchpad environment using LXC

% lp-setup install-lxc

Brad and I talked briefly before he sent this email out, and I couldn't think why we shouldn't advertise this easiest path. However, later I remembered something Robert had said: if people initialize their systems the same way they refresh them, they will have a better idea of how to do the refresh when it is needed.

If you agree with that, then it is worth noting that you can also get an LXC environment by running lp-setup init-lxc, starting the new container, sshing into it, and then using the steps below within the container.

Creating Launchpad environment on your host

% lp-setup init-target
% lp-setup init-repo
% cd ~/launchpad/lp-branches/sandbox
% lp-setup update
% sudo make install

One other note is that Robert was interested in init-lxc and init-target being able to update existing systems, after a new version of lp-setup learns new best practices. We didn't solve that problem, but we did leave data around on the system so someone could add that functionality later (we think).