← Back to team overview

launchpad-reviewers team mailing list archive

[Merge] lp:~cjwatson/launchpad/queue-api into lp:launchpad

 

The proposal to merge lp:~cjwatson/launchpad/queue-api into lp:launchpad has been updated.

Description changed to:

== Summary ==

Implement the next stage of https://code.launchpad.net/~cjwatson/launchpad/queue-api-accept-reject/+merge/107894, by exporting substantially more of PackageUpload.

== Proposed fix ==

Export enough of PackageUpload and DistroSeries.getPackageUploads to allow implementing an API client that replaces scripts/ftpmaster-tools/queue.

== Pre-implementation notes ==

I've gone round a few times with various people, particularly William Grant, on the exact way to export all of this stuff, because I gather that we want to avoid exposing the current data model in order that it can be rearranged in the future.  This has led to the following design choices:

 * Everything is on devel.  The only clients for this should be tools such as those in lp:ubuntu-archive-tools, which can be kept up to date if there's a need to change these interfaces.
 * Even though some of the underlying methods are on other objects, all the new exported methods are on PackageUpload rather than exporting anything else.
 * There are source packages with lots of binaries that sometimes need to be overridden individually (e.g. linux) and API requests aren't especially fast.  I've therefore arranged for properties (including overrides) of all binaries in an upload to come back as a list of dicts in a single JSON response, and I've amended Archive.overrideBinaries to take a similar list of dicts as a "changes" parameter, allowing many override changes to be made in a single request.

== LOC Rationale ==

+615, on top of a previous branch that was +91.  I think this is valid because this is part of an arc of work (resourced by Ubuntu Engineering) that will culminate in removing lib/lp/soyuz/scripts/queue.py and scripts/ftpmaster-tools/queue for at least -862.  While it's possible there'll be one or two more bits and pieces, they shouldn't amount to any more than +156, so this whole arc will be LoC-negative.

== Tests ==

bin/test -vvct nascentupload-ddebs.txt -t distroseriesqueue.txt -t xx-packageupload.txt -t test_distroseriesqueue -t test_packageupload

== Demo and Q/A ==

http://paste.ubuntu.com/1026996/ is my prototype client; I plan to walk through all its functionality against qastaging (or dogfood if I need to make new uploads).

For more details, see:
https://code.launchpad.net/~cjwatson/launchpad/queue-api/+merge/108967
-- 
https://code.launchpad.net/~cjwatson/launchpad/queue-api/+merge/108967
Your team Launchpad code reviewers is subscribed to branch lp:launchpad.


References