On Thu, Aug 28, 2014 at 14:58 -0400, Donald Stufft wrote: > Right now the “canonical” page for a particular project on PyPI is whatever > the > author happened to name their package (e.g. Django). This requires PyPI to > have > some "smarts" so that it can redirect things like /simple/django/ to > /simple/Django/ otherwise someone doing ``pip install django`` would fall back > to a much worse behavior. > > If this redirect doesn't happen, then pip will issue a request for just > /simple/ and look for a link that, when both sides are normalized, compares > equal to the name it's looking for. It will then follow the link, get > /simple/Django/ and everything works... Except it doesn't. The problem here > comes from the external link classification that we have now. Pip sees the > link to /simple/Django/ as an external link (because it lacks the required > rels) and the installation finally fails. > > The /simple/ case rarely happens when installing from PyPI itself because of > the redirect, however it happens quite often when someone is attempting to > instal from a mirror instead. Even when everything works correctly the > penality > for not knowing exactly what name to type in results in at least 1 extra http > request, one of which (/simple/) requires pulling down a 2.1MB file. > > To fix this I'm going to modify PyPI so that it uses the normalized name in > the /simple/ URL and redirects everything else to the non-normalized name.
Of course you mean redirecting everything to the normalized name. > I'm also going to submit a PR to bandersnatch so that it will use > normalized names ... devpi-server also broke and I did a hotfix release today. Older installs will still have a problem, though (not all companies run the newest version all the time). Apart form the fact i was on vacation and on business travels, the notice for that breaking change was only one day which i think is a bit too quick. I'd really appreciate if you send a mail to Christian for bandersnatch and me for devpi before such changes happen and with a bit more reasonable ahead time. Besides, i think it's a good change in principle. best and thanks, holger > for it's directories and such as well. These two changes will make it so that > the client side will know ahead of time exactly what form the server expects > any given name to be in. This will allow a change in pip to happen which > will pre-normalize all names which will make the interaction with mirrors > better > and will reduce the number of HTTP requests that a single ``pip install`` > needs > to make. > > --- > Donald Stufft > PGP: 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA > > _______________________________________________ > Distutils-SIG maillist - Distutils-SIG@python.org > https://mail.python.org/mailman/listinfo/distutils-sig _______________________________________________ Distutils-SIG maillist - Distutils-SIG@python.org https://mail.python.org/mailman/listinfo/distutils-sig