Mark Ramm wrote:
>> This is a crude way of implementing the freezed-set of EggBasket if
>> you prefer :)
>>
>> http://www.chrisarndt.de/projects/eggbasket/
>>     
>
> Agreed, the way we're doing this now is not the critical issue, and
> we're generating static interfaces just for speed, and easy-deployment
> now.
>
> EggBasket is probably the right way to go in the future, but
> installing will still come from a custom index, not pypi, so the
> client interface will not change.  ;)
>
>   
I must admit I don't like the use of private indexes for packages that 
are intended for public distribution, mainly because it's much nicer to say:

easy_install Foo

than:

easy_install -i http://some_url_i_always_need_to_look_up Foo

I understand the rationale behind it and I always use private indexes 
for *private* deployments in order to get repeatable builds, but I don't 
think it is a good solution for anything you plan to distribute 
publicly: PyPI is the canonical place for that IMHO.

Besides that, maintaining a private index is not fun :) (you have to 
manually keep it updated as the dependencies are upgraded, unless 
there's a buildbot doing it for you...)

This is how I'm planning to handle distribution and dependency issues 
with in python-rum.org:

- All eggs (Rum, tw.rum, RumAlchemy, etc...) list their dependencies 
with the minimum version guaranteed to work (and maximum if necessary, 
it isn't yet).
- A buildbot [1] builds everything in a clean virtualenv every day (and 
on every push) pulling dependencies from PyPI. This is to simulate what 
a user downloading Rum would experiment in their system. If any new 
version of a a dependency is released the dependent package can be 
either fixed if possible or the metadata updated with an upper bound on 
the required version and a new minor release made ASAP. This step should 
be improved by fetching from the respective trunks in order to get an 
early warning.
- Packages not available at PyPI are distributed from a private index 
and a "dependency_link" is added to setup.py to a page where *only* that 
dependency can be downloaded (eg: [2]). This is to avoid creating havoc 
all around with custom versions of other packages (as I once did by 
mistake with tw.org/download)
- If Rum ever pins an old version of a dep. which ceases to be 
distributed at PyPI no problem: the buildbot barfs and we manually 
create a package and distribute it at pypi.python.rum.org/custom

Alberto

[1] http://buildbot.python-rum.org/waterfall
[2] http://pypi.python-rum.org/custom/index/EggTranslations/


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"TurboGears Trunk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/turbogears-trunk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to