[Distutils] Mystery solved

Jim Fulton jim at zope.com
Tue Jul 11 21:56:48 CEST 2006


On Jul 11, 2006, at 2:07 PM, Phillip J. Eby wrote:

> At 11:50 AM 7/11/2006 -0400, Jim Fulton wrote:
>> OK that's an interesting point wrt possible misspellings. If you can
>> find the package via the find links, but not via the index, that
>> seems to me to be a pretty good indication that this is not a
>> misspelling.  This is the case I'm worried about.  If the package
>> can't be found anywhere, then I agree that a warning is warranted.
>
> The interesting question there is, should the fallback scan still  
> take place in the absence of the warning?  If it *does* take place,  
> then the reason for the scan (and delay) is unexplained.  If it  
> does *not* take place, then there is an undesirable change in  
> semantics.
>
> Currently, if you have a package called "Bob's Incredible Package",  
> this will be treated by easy_install as being spelled "Bob-s- 
> Incredible-Package", and it will require a top-level index scan to  
> find the right URL.  It is also possible to have --find-links pages  
> containing obsolete versions, while PyPI contains the latest  
> version, so removing the scan doesn't seem to be a reasonable option.
>
> So, I will simply change the message to an "info" message stating  
> that the index page couldn't be found (rather than a warning  
> suggesting misspelling), *if* easy_install has previously seen at  
> least one valid distribution file or link for the applicable  
> project name.

Great!

>
>> The specific case, which I'll repeat from above, as clearly as I can,
>> is this:
>>
>> - A user chooses not to store their software in an index.
>> - The user places distributions on a web server somewhere.  This is
>> just a directory, it is not a valid index.
>> - The user points at their server using find-links
>> - The user has an installation and they want to check for newer
>> versions.
>> - The distributions that they are looking for newer versions of can
>> be found on the server that they name via find-links.
>>
>> In this case, they will get a warning that the distribution they are
>> looking for couldn't be found on the index.
>
> Okay, this scenario is fixed by changing to an info message as  
> described above.

Yup. Cool.

>>>   If you did that, however, it brings in the question of which of
>>> the --find-links URLs should be checked for a /projectname/
>>> subdirectory.  All of them?  Just the first one that finds a
>>> result?  None of them, if some other criterion is met?
>>
>> I would stop when a result is found.
>
> Even so, this means O(N x M) web hits, where N is the number of  
> packages and M is the number of --find-links (including dependency  
> links supplied by eggs installed so far).  I don't think it's  
> reasonable to hit so many non-existent URLs on non-index servers,  
> and is impolite to the servers' operators.  (For example, if they  
> receive a daily report of all 404 errors from their web servers, as  
> I do.  This is pretty common on Red Hat boxes using logwatch, for  
> example.)
>
> It's particularly unfair since using e.g. http:// 
> peak.telecommunity.com/snapshots/ as a --find-links while  
> installing, say TurboGears, would cause a whole host of "index"  
> hits to subdirectories of that URL, even though none of them can or  
> will be found.
>
> The fallout from this approach is far worse than any "screen  
> scraping" issues we've had.

Isn't this the approach that's followed now?  Aren't all of the find- 
links searched as well as the index?  I suppose you're referring to  
the search for /projectname, which potentially doubles the number of  
requests.

>> What is the use case for spreading distributions over multiple
>> servers?  Do people really want to do that? I can see providing
>> multiple places to look, because different distributions might be on
>> different servers, but I don't see why distributions for a single
>> project should be spread over multiple servers.
>
> Platform-specific distributions may be provided by contributors to  
> a project, rather than by the project's author; see, for example,  
> Bob Ippolito's pages for distributing Mac OS X builds of popular  
> Python packages.  For this reason, you may have certain pages that  
> you always want included in your --find-links, to be checked in  
> addition to the normal indexes.

OK

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 Distutils-SIG mailing list