At 08:38 AM 6/24/2006 -0400, Jim Fulton wrote:
>Suppose you have some distributions of interest in a directory
>somewhere. You ask easy_install to update your packages.  You use
>find-links to tell it to look in the directory of distributions.  By
>default, it looks for  an index at http://www.python.org/pypi.
>Further assume that the distribution you are updating is not in
>PyPI.  You'll get the following messages:
>
>   Couldn't find index page for 'jimtest' (maybe misspelled?)
>   Scanning index of all packages (this may take a while)
>
>And easy install will have made 2 connections, to:
>  http://www.python.org/pypi/jimtest/, and to  http://www.python.org/ pypi/.
>
>You should be able to easily reproduce this.
>
>Now, suppose, instead, you provide an index (-i) option telling
>easy_install to look somewhere else?  Say, http://www.python.org. You
>don't get the messages and only a single connection is made.Why?
>What's the difference you ask?  Well, PyPI (and my test server)
>returns a content type of text/plain for 404 results, while most web
>servers return text/html.  I changed my test server to return HTML
>Non-Found results, and the messages went away and I only get a single
>connection.

Ah, the irony.  Your change, and the recent change of PyPI to do the same 
thing, are actually forcing *erroneous* behavior now, by suppressing the 
fallback search.  :)


>So what is the correct behavior?  I dunno.  The warnings are rather
>annoying, so I'm glad I've found out how to make them go away.

They'll come back when I release 0.6b4, since it's setuptools' behavior 
that's broken here.  If a response was text/plain, it was doing the right 
thing, but it wasn't checking text/html responses to see if they were 404 
status.


>However, I'm pretty sure your intent was to search both / project_name/ 
>and /.  When a server returns an HTML not-found error,
>easy_install skips the / check.
>
>I think there are 2 bugs here:
>
>1. The scan of the all-package index is skipped if the content-type
>of the
>      if the /project_name/ request is HTML.

Yep, that's a bug, and I'm fixing it now.


>2. The messages:
>
>        Couldn't find index page for 'jimtest' (maybe misspelled?)
>        Scanning index of all packages (this may take a while)
>
>     should be info messages, not warning messages.  If they
>     remain warnings, and you fix the first problem, it will be
>     impossible to avoid the warnings without creating a PyPI
>     project or creating an index server, and I don't think it was
>     your intent to require either of these.  I don't think a warning
>     should be issues for correct use of software.

Here's the problem.  Reducing everything to info messages means there's 
effectively no control over output detail.  I generally use 'warn()' for 
things that *may* reflect an error in input parameters.  So, my take on the 
above is that although the "Scanning" message could become an info(), the 
previous one shouldn't.

_______________________________________________
Distutils-SIG maillist  -  [email protected]
http://mail.python.org/mailman/listinfo/distutils-sig

Reply via email to