[Catalog-sig] PyPI and PEP 381

Robert Kern robert.kern at gmail.com
Mon Jan 18 23:48:49 CET 2010

On 2010-01-18 16:20 PM, "Martin v. Löwis" wrote:
>>> 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)?

Not that I care too much[1], but one reasonable approach would be to use 
Google's PubSubHubbub protocol which attempts to standardize such push 


The protocol in a nutshell is as follows:

* An feed URL (a "topic") declares its Hub server(s) in its Atom or RSS XML 
file, via <link rel="hub" ...>. The hub(s) can be run by the publisher of the 
feed, or can be a community hub that anybody can use. (Atom and RssFeeds are 

* A subscriber (a server that's interested in a topic), initially fetches the 
Atom URL as normal. If the Atom file declares its hubs, the subscriber can then 
avoid lame, repeated polling of the URL and can instead register with the feed's 
hub(s) and subscribe to updates.

* The subscriber subscribes to the Topic URL from the Topic URL's declared Hub(s).

* When the Publisher next updates the Topic URL, the publisher software pings 
the Hub(s) saying that there's an update.

* The hub efficiently fetches the published feed and multicasts the new/changed 
content out to all registered subscribers.

[1] Personally, I probably won't use the API, so I have no dog in the fight, and 
I'm certainly not volunteering to code anything. I just wanted to add some more 
concreteness to what Jannis is suggesting.

Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma
  that is made terrible by our own mad attempt to interpret it as though it had
  an underlying truth."
   -- Umberto Eco

More information about the Catalog-SIG mailing list