[Catalog-sig] [Distutils] Prototype setuptools-specific PyPI index.

Jim Fulton jim at zope.com
Tue Jul 24 17:39:38 CEST 2007


On Jul 24, 2007, at 11:31 AM, Phillip J. Eby wrote:

> At 06:11 AM 7/24/2007 -0400, Jim Fulton wrote:
>
>> On Jul 23, 2007, at 5:21 PM, Phillip J. Eby wrote:
>>
>>> At 11:13 PM 7/23/2007 +0200, Martin v. Löwis wrote:
>>>>> Yes, especially since compatibility with the existing installation
>>>>> base requires case insensitivity, because on case-insensitive
>>>>> platforms easy_install already normalizes the case of filenames it
>>>>> creates.  So, the question of what the "right thing" to do is  
>>>>> in the
>>>>> abstract has already been moot for a year or two.
>>>>
>>>> Can you elaborate a bit, please? Why does the case of filenames
>>>> matter for the queries it makes?
>>>>
>>>> AFAIU, it gets package names either from the user or from setup.py,
>>>> perhaps also from packages dependency inside .egg files (assuming
>>>> those support dependencies); these should all be case-sensitive.
>>>
>>> In order to resolve dependencies, the system looks at installed .egg
>>> files and directories (and .egg-info direcories), and extracts
>>> package name and version info from the filenames.
>>
>> But the package name and version are in the PKG-INFO files, so it
>> certainly has access to non-normalized names.  Why can't it double
>> check a possible match against that file?
>
> Because if case actually made a difference, we couldn't have both  
> packages installed in the same directory, could we?  And why add an  
> extra file open (which currently is only needed for "develop" eggs)  
> to the process of building a working set or environment, in order  
> to confirm something whose only purpose is to make requirements  
> more difficult to specify?  :)

Currently, we allow packages to differ only in case.  The fact that  
setuptools pretends we don't doesn't change the fact that we do.  You  
said  that "compatibility with the existing installation base  
requires case insensitivity, because on case-insensitive platforms  
easy_install already normalizes the case of filenames it creates".  
I'm merely pointing out that we don't have to rely soley on the file  
name.

> Note that if what's bothering you is the package index access time,  
> use Apache's mod_speling to enable case-insensitive URLs for the  
> static page tree.

*If* we decide that package names are case insensitive, then we  
should do this. We haven't decided this.

Jim

--
Jim Fulton			mailto:jim at zope.com		Python Powered!
CTO 				(540) 361-1714			http://www.python.org
Zope Corporation	http://www.zope.com		http://www.zope.org





More information about the Catalog-SIG mailing list