Why we're basing our Private Archive Hosting work on Launchpad


As described on PrivateArchiveHostingInfrastructure, we will base our efforts to provide partners with internal archive management tools on Launchpad. This page goes through the various other options we considered for this work and our evaluations of them.


reprepro is a tool for handling local archives.


  • Exists, does may of the jobs we'd need to do.


  • Written in C.
  • Uses bsddb (even the man page says this was a bad idea).

  • Maintains own state, can't be used as a library or tool driven by our data.
  • Entirely divorced from Launchpad/Ubuntu view of the world.

From scratch, library code from Launchpad

This idea was to write a new UI and database layer using django and split code out of Launchpad as we found we needed functionality already provided by Launchpad.


  • Architecturally appealing
  • Opportunity for a clean start
  • Some people are not fans of Zope


  • Splitting some things out of Launchpad would be a lot of work.
  • Implies changes to Launchpad that might be a hard sell to Launchpad developers.

Componentize Launchpad (aka APPocalypse)

The idea here was to finish splitting Launchpad up along applications lines and then use the Soyuz and Registry applications, extended as needed, to meet our partners needs.


  • Does something Launchpad developers are wanting to do anyway.


  • Lots of work. And before we get anything we can use at all.

SOA-ize Launchpad (APPocalypse++)

An even more radical extension of the above idea would be to have the different applications that make up Launchpad communicate via some other mechanism than shared access to an RDBMS, such as AMQP or celery or ...


  • Architecturally appealing.


  • Massive amount of work.

Run parts of Launchpad

This idea is to deploy the entire Launchpad codebase, but only run the parts that we need to run, such as the archivepublisher.


  • Allows incremental improvement.



My biases are probably showing.

internal/archive/Platform/Infrastructure/Specs/PrivateArchiveHostingInfrastructure/WhyLaunchpad (last modified 2013-08-23 02:04:41)