Not logged in - Log In / Register

Launchpad Juju Charm for Developers

Make a Juju charm that can support casual/quick Launchpad development and one-off parallel testing (as opposed to automatic parallel testing).

Build with LEP/LaunchpadSetupScripts and in support of LEP/ParallelEC2Command.

Launchpad deployment with Juju is out of scope.

Contact: Gary Poster
On Launchpad: XXX Link to a blueprint, milestone or (best) a bug tag search across launchpad-project


We needed something like this when Graham gave a UDS training session to teach and entice potential Launchpad contributors who have small itches to scratch. Now, when dedicated Launchpad development has reduced dramatically, enabling easier self-help for Launchpad's customers is a compelling goal to ease their pain and add to Launchpad's velocity.

It might also be useful for teams officially assigned to work on Launchpad: they could easily and quickly have another development environment available. That might be useful alone, to try and duplicate and investigate an issue; and it also might be useful for them to have a more powerful machine available, such as the 32-thread EC2 machines.

This also is a step along the way toward the proposed approach of LEP/ParallelEC2Command.


The Launchpad developers are the primary stakeholders for this LEP. The LEP was developed after discussion with Graham Binns, who could have used something like this for the 12.10 UDS session, and after discussion with other Launchpad developers. The LEP will be announced to the launchpad-dev list for comments.

Another group of stakeholders is Launchpad users. Graham Binns has been used as a proxy for this group, but if this is regarded as insufficient then we can call for more comments.

User stories

Launchpad User Learns How to Develop Launchpad

As a Launchpad User
I want to quickly get a temporary development environment
so that I can be taught how to develop Launchpad at a live event such as a UDS session

Launchpad User Develops and Contributes a Quick Patch

As a Launchpad User
I want to quickly get a temporary development environment
so that I can develop, test, and push a Launchpad branch to quickly scratch an itch I have

Launchpad Developer Wants Another Machine to Investigate an Issue

As a Launchpad Developer
I want to quickly get a temporary development environment
so that I can investigate an issue, perhaps to see if I can duplicate a problem that I see locally within a clean environment.

Launchpad Developer Wants a More Powerful Machine for Tests

As a Launchpad Developer
I want to quickly get a temporary development environment
so that I can interactively run tests more quickly, probably in parallel but maybe just a subset of the full suite.

Constraints and Requirements


Nice to have

Must not

Out of scope


We intend to use LEP/LaunchpadSetupScripts for the initialization.


How will we know when we are done?

A developer can enter "juju bootstrap" and a "juju deploy..." command or two and within five minutes have a Launchpad development environment in which she can quickly and successfully branch from and push to Launchpad. It would be OK if the developer also had to check out the charm and run it locally, rather than having it available in the official Juju repository, though that would be nice. The user may also have to use "juju ssh -A ..." to get to the machine, and may have to follow a short set of instructions, such as running "bzr launchpad-login" on the remote machine.

LEP/ParallelEC2Command can use this charm to automatically run tests.

How will we measure how well we have done?

Developers and users report success doing the above.


Implementation/research Notes


Current Idea:


Benji followed the above plan manually to verify that it would work, and figured out some of the details. The following are some of his notes on how to mount an EBS volume on an EC2 instance.

LEP/LaunchpadJujuCharmForDevs (last edited 2012-06-19 22:40:51 by gary)