SoyuzMultiplePPAs

Not logged in - Log In / Register

Summary

This specification describes what changes have to be applied in the current model to allow users to have more than one PPA and also their implication in the current behaviour of specific features users are already using, like upload-path, PPA publishing path and PPA pages.

Release Note

Once this implementation reaches LP mainline, users and team will be able to have multiple PPAs. The additional PPAs will be only created by administrators based on commercial agreements done in advance.

Rationale

Currently multiple PPAs are achieved only by having multiple teams and it's considered a suboptimal workflow for very focused (product-related) teams working with PPA.

Use cases

Assumptions

None.

Design

The database patch to add names to archives was landed some time ago. Here we discuss the other changes.

When using PPAs there are three different directory paths/URLs to consider:

Clearly, adding an extra path part to distinguish them per-person is going to break existing ones, so we need to introduce the difference without breaking the world.

We can have a migration period where both new and old styles will work. The new paths, initially, will be:

Upload: ~<person>/ppa/ubuntu/[distroseries] Web: /~<person>/+archive/ppa Repo: /person/ppa/ubuntu

"ppa" is the (default) name of the PPA, during the switchover period we'll automatically map/redirect the old paths to ones including "ppa" as the name and change the names of all the existing PPAs to "ppa".

In effect, this means that:

The one constraint is that people will not be able to name their PPAs "ubuntu" until the compatibility period is over (one or two LP release cycles).

UI Changes

TODO

Add a new page (or modify the existing one) to allow LP admins to create more named PPAs for a user.

Code Changes

Archive content class fixes

SoyuzScript fixes

Upload processor fixes

WebApp fixes

Publisher fixes

Fix IArchive.archive_url URL path Fix IArchive.getPubConfig archiveroot path Make some symlinks on germanium from the old to the new path.

Schema Changes

Already landed, but we need to rename default names to the new "ppa" default.

UPDATE ARCHIVE SET name='ppa' where name='default' AND purpose=2;

Migration

Unresolved issues

None yet.

SoyuzMultiplePPAs (last edited 2008-11-27 11:20:36 by julian-edwards)