[Distutils] buildout download cache

rafael at nexedi.com rafael at nexedi.com
Mon Jan 10 12:28:51 CET 2011


Hi,

I give you a better explanation with a Use Case.

We would like to a solution not only for eggs download but for ALL  
kind of downloads that should be done by the buildout. For example  
haproxy setup [1]:

[haproxy]
recipe = hexagonit.recipe.cmmi
url = http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.9.tar.gz
md5sum = 2cbcc95b54c0d803edaa13e7b4aeec25

This recipe uses zc.buildout.download (standard buildout API) and  
requires this that url be online when you run buildout for the first  
time.

Considering that we get files from multiple source, we increase the  
changes that some service be offline, breaking the buildout setup.

The good approach for all downloads should be:

1st: Try Local cache (buildout download API already do this) which are  
not available in the first run.
2nd: Try original URL (buildout download API already do this)
3rd: Try a cache server or "network cache" (what we want to do or know  
if someone already did it)

This will guarantee that buildout could still running even original  
source is offline. It is also preferred that ALL recipes can use this  
network cache and be unified (or available) to download eggs too.

[1]  
https://svn.erp5.org/repos/public/erp5/trunk/buildout/software-profiles/haproxy.cfg

I beleave eggproxy is only usefull for eggs download, right?

Use global download-cache helps to share downloads between your builds  
but it do not help first time users.

Regards,
Rafael Monnerat

Quoting "Marius Gedminas" <marius at pov.lt>:

> On Sun, Jan 09, 2011 at 10:59:18PM +0100, rafael at nexedi.com wrote:
>> We are planning to extend buildout download API to provide a
>> distributed automatic packaging and caching system so that even if
>> original source web site is down, the buildout process can stil run.
>> This could also be useful to build software in secured networks.
>>
>> Do you know of any similar project before we start?
>
> http://pypi.python.org/pypi/collective.eggproxy
>
> (I haven't used it myself yet. When PyPI or original mirrors go down, I
> can always find the necessary package in my development machine's
> ~/.buildout/cache/ and copy it over to where I need it -- because I've
> set a global download-cache in ~/.buildout/default.cfg.)
>
> Marius Gedminas
> --
> Computers are not intelligent.  They only think they are.
>



----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.


More information about the Distutils-SIG mailing list