Make proposed pocket useful for staging uploads

Bug #930217 reported by Colin Watson
16
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Launchpad itself
Fix Released
Low
Colin Watson

Bug Description

https://blueprints.launchpad.net/ubuntu/+spec/foundations-p-upload-intermediary discusses, among other things, having an intermediary staging pocket that we can use to stage uploads before copying into the release pocket during development. This came up again recently in the context of an eglibc upload that caused widespread problems for users of the development series.

PPAs can serve this purpose to some extent. However, they have significant failings:

 * They don't provide a single place where QA can run tests on everything pending integration. (The recent eglibc upload was staged in a PPA, which helped a bit but not enough.)
 * There is no formal identification of some PPAs as more official than others, so they don't provide a good equivalent of a single "unstable" branch for users.
 * While copying uploads from a PPA to the primary archive with included binaries is possible, it's somewhat scary and we prefer not to do it.
 * Ubuntu developers who do not work for Canonical cannot use PPAs to stage uploads which will be copied including binaries, because they are not permitted to have access to non-virtualised PPAs.

In other words, PPAs are akin to unmerged branches in personal namespaces; we would like to create something that is more like the devel branch of Launchpad, which can have changes that have not been deployed to production.

We would like to use the existing -proposed pocket, which is used for staging uploads to -updates, for this purpose. There is no conflict between our current use of that pocket and this new use. Currently, it is only possible to upload to it when the distroseries is FROZEN or in one of the stable states. We would like it to additionally be possible to upload to it when the distroseries is in the other unstable states (DEVELOPMENT or EXPERIMENTAL). Furthermore, I think it would be helpful if uploads to -proposed were auto-approved in the same situations that cause uploads to the release pocket to be auto-approved. We're only intending to use this for a fairly small fraction of uploads to start with - the ones that are most damaging when they break, or that cause significant problems when built out of sync on different architectures - but we might well want to use it more widely in future and I don't want to impose a huge burden on archive administrators.

Obviously doing a full job of the staging-pocket idea will require much more work, including test systems, tools for checking soundness of dependencies, PQM/tarmac-like systems for automatically copying packages between pockets, and so on; but Launchpad already exposes all the interfaces necessary to do that. Our assessment is that making the -proposed pocket usable pre-release is the only change we actually need from Launchpad, and it seems like this should be a simple enough piece of work. Absent objections, I'm happy to do the work.

Tags: qa-ok

Related branches

Aaron Bentley (abentley)
Changed in launchpad:
status: New → Triaged
importance: Undecided → Low
Revision history for this message
Martin Pitt (pitti) wrote :

We had at least 4 or 5 times in the last three weeks where having this would have prevented rather major breakage. People kept coming to us because apt-get dist-upgrade wanted to remove skype (due to buildd arch desync of glibc, and again gcc-4.6), amd64 was uninstallable (due to the webkit i386 build hitting an "out of memory" condition), armel images breaking because compiz failing to build on armel (due to a new bug in kdelibs), etc.

Can this please be bumped higher than "low"? Thanks in advance!

Colin Watson (cjwatson)
Changed in launchpad:
status: Triaged → In Progress
assignee: nobody → Colin Watson (cjwatson)
Revision history for this message
Launchpad QA Bot (lpqabot) wrote :
tags: added: qa-needstesting
Changed in launchpad:
status: In Progress → Fix Committed
Revision history for this message
Colin Watson (cjwatson) wrote :

I ran the following QA on dogfood:

 * Uploaded hello 2.6-1dogfood1 to natty-proposed (CURRENT). This landed in the unapproved queue, and I rejected it.
 * Uploaded hello 2.7-1dogfood4 to oneiric-proposed (FROZEN). This landed in the unapproved queue, and I rejected it.
 * Changed oneiric from FROZEN to DEVELOPMENT.
 * Uploaded hello 2.7-1dogfood4 to oneiric-proposed (DEVELOPMENT). This was automatically accepted.
 * Changed oneiric from DEVELOPMENT back to FROZEN.

Looks good to me; qa-ok.

tags: added: qa-ok
removed: qa-needstesting
William Grant (wgrant)
Changed in launchpad:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers