[Distutils] Splitting distribute in several distributions

Tarek Ziadé ziade.tarek at gmail.com
Wed Aug 12 02:44:01 CEST 2009


2009/8/12 Sridhar Ratnakumar <SridharR at activestate.com>:
> I am glad that you have started thinking about the module split.
>
> 1) Why are the distributions named in CamelCase? Why not
> 'distribute.resources' instead of 'DistributeResources' (like, for instance,
> zope.interface instead of ZopeInterface).

Because the distribution name is not the packages names.
See for instance the Paste project : PasteScript, Paste, PasteDeploy.

>
> 2) In your proposal below, version comparison is part of
> distribute.installer; this means distribute.resources (and other modules
> needing version comparison) will be depending on distribute.installer,
> correct? Is this intended, or should version comparison go to something like
> distribute.core?

When would distribute.resources need version comparisons if its sole
role is to provide query APIs
for installed packages ? (pre-PEP 376, then PEP 376-compliant)

>
> 3) PyPM's backend uses a) pkg_resources' version comparison, b)
> package_index's download logic (not API-friendly). I'd be interested to see
> distribute.installer provide this download logic (finding URLs, tarballs and
> fetching them) as an API. I believe pip and zc.buildout too relies on this
> download logic.

pakage_index would be included in distribute.installer, and we could probably
add simpler APIs to use it to drive a download

>
> 4) How about distribute.pypi that interfaces with pypi?
>

So, like a subpart of package_index ? this is a nice idea, so tools
like yolk or z3c.pypimirror could browse pypi index with it,

It could also have a full xmlrpc client implementation for PyPI xml-rpc APIs,

> -srid
>
> On Tue, 11 Aug 2009 15:30:47 -0700, Tarek Ziadé <ziade.tarek at gmail.com>
> wrote:
>
>> Hey,
>>
>> I've started to work on splitting Distribute into several distributions
>> for 0.7
>>
>> Here's the organization  I was thinking about:
>>
>> - Distribution Name  = "Distribute"
>> - Content: setuptools package renamed to distribute (minus some
>> elements). root modules in setuptools will be moved to the
>> distribute.core package so the
>>  root namespace stays empty.
>>
>> - Distribution Name  = "DistributeResources"
>> - Content: the part of pkg_resources.py that handles installed
>> distribution querying +  renamed to "distribute.resources"
>>
>> - Distribution Name  = "DistributeEntryPoints"
>> - Content: the part of pkg_resources.py that handles entry points +
>> renamed to "distribute.entry_points"
>>
>> - Distribution Name  = "DistributeInstaller"
>> - Content: the part of pkg_resources.py that handles version
>> comparison + package_index, that gets files at pypi + easy_install.py
>> + easy_install command extracted from setuptools package +  renamed
>> into a "distribute.installer" package
>>
>> I am not sure yet how the distribute namespace will be handled,
>> because (maybe ala PEP 382)
>>
>> I am not sure either if "setuptools.sandbox" should get its own
>> distribution. I'd keep it in Distribute
>>
>> Any thoughts ?
>>
>> Cheers
>> Tarek
>>
>
>



-- 
Tarek Ziadé | http://ziade.org


More information about the Distutils-SIG mailing list