[Catalog-sig] PyPI and PEP 381
Jannis Leidel
jannis at leidel.info
Tue Jan 19 00:06:32 CET 2010
Am 18.01.2010 um 23:20 schrieb Martin v. Löwis:
>>> Can you please propose a specific change to something?
>>
>> I'm proposing:
>>
>> Use push notifications (HTTP POST requests) to tell the mirrors about
>> the availability of updates on the main main index, instead of having
>> the mirrors pull that information periodically.
>
> Ok: what specific notifications (i.e.: what specific URL, what specific
> payload), and what specific servers to contact (i.e. where does the
> list of servers come from)?
Extra URLs of the mirror
------------------------
1. /update
receives a payload with a timestamp to tell the mirror to update itself
the mirror should use that timestamp to compare it to its own "last-modified" timestamp.
2. /update/<project-name>/<version>
receives metadata of each project (same metadata the XML-RPC API uses) as well as a timestamp.
Extra URLs of PyPI
------------------
None
In case a mirror doesn't accept the update payload (e.g. due to temporary loss of connectivity) the mirror needs to be able to catch up at a later time.
Correct me if I'm wrong, but I believe the XML-RPC API is capable of providing that information already. Once the mirror gained the list of projects still to be updated, it would mirror them "manually".
List of servers
---------------
Actually this wouldn't differ from the PEP: starting with trusted mirrors. And I absolutely agree with what you earlier said, to slowly start with such a new feature.
On the long run -- but I keep that for a later proposal -- there would be also a way to register non-mirror consumers of the push notifications on the PyPI website.
Jannis
More information about the Catalog-SIG
mailing list