[Catalog-sig] [Distutils] Prototype setuptools-specific PyPI index.
Phillip J. Eby
pje at telecommunity.com
Tue Jul 24 20:44:08 CEST 2007
At 08:21 PM 7/24/2007 +0200, Martin v. Löwis wrote:
> >> > Because if case actually made a difference, we couldn't have both
> >> > packages installed in the same directory, could we?
> >>
> >> Right. However, there is a difference between case-insensitive,
> >> and case-preserving.
> >
> > I don't understand your statement here, nor what is supposed to follow
> > from it.
>
>Clearly, on a case-insensitive file system, project names differing
>only in case cannot coexist. That doesn't mean that all references
>to the project should be case-normalized (e.g. lower-cased).
>
>So even if project names compare case-insensitive, there still
>should (could) be a "right" spelling, the one that the package
>author wants to see. This is the spelling that others then should
>use.
Well, that spelling will certainly show up everywhere. Setuptools is
case-preserving, *except* with regard to installing egg files on
case-insensitive filesystems (as defined by what os.path.normcase
does on a given platform). When it installs an egg, it normalizes
the case of the target path. In all other matters it is
case-insensitive for comparison, but case-preserving of the inputs it receives.
> > Jim's objection was that if it's possible to get case-correction from
> > the index, people will declare setup.py dependencies with incorrect
> > case, leading to other packages having indirect dependencies with
> > incorrect case, leading to lots of package index lookups.
>
>I don't think that was his objection. IIUC, he complains about
>incorrect spellings as bad, period - regardless of whether they also
>have a performance effect. It's like spelling your name "Philipp" -
>that's a bad thing to do, independent of whether it also makes you
>harder to find (which it actually doesn't, thanks to Google).
It's actually more like spelling my name "phillip", which is arguably
still spelled correctly, if punctuated poorly. :)
And it's also an answer to the wrong question: the *first* question
is whether we should allow "phillip" and "Phillip" to co-exist in the
package index. If not, then there is the question of whether there
is any reason to be case-sensitive with respect to searching.
If we are agreed that having projects whose names differ only by case
is a bad idea, then the latter question is considerably less controversial.
> > This objection is relevant only to requirements which differ from the
> > actual project name only by their case. A non-registered package lookup
> > is going to fail no matter what, and thus isn't going to wind up in a
> > setup.py without a dependency_links specifier that will prevent it being
> > looked up in the package index to begin with.
>
>Right. However, if setuptools would stop making case insensitive
>lookups to the index, lookups to unregistered packages would become
>more efficient.
I'm not sure I follow you. If a non-registered package is used as a
dependency, the setup() will need to specify dependency_links, in
which case PyPI will not be consulted.
More information about the Catalog-SIG
mailing list