[Catalog-sig] PyPI update broke setuptools
Phillip J. Eby
pje at telecommunity.com
Tue Aug 2 02:42:17 CEST 2005
>Sorry, this didn't register when you first posted. You were relying on a
>side-effect that I removed while we were trying to remove the "pypi" part of
>the URL. It seemed wrong to me that PyPI would return totally different
>results for:
>
> http://cheeseshop.python.org/pypi
> http://cheeseshop.python.org/pypi/
Well, it seemed quite *right* to me, with "pypi" being the front page, and
pypi/ being the directory listing of packages. It fit perfectly with the
rest of the URL scheme, and so I assumed it was an intentional feature, not
just a desirable one. :)
>Is there any chance the software could be changed to use the more correct
>"?:action=search" which is what the "/" side-effect was effectively doing?
Certainly it could be changed, but because the PyPI change breaks the
versions that are already in the field, it would require a new release,
which would be rather awkward at the moment, because I don't want to force
people to upgrade to the heavily refactored 0.6 series from the relatively
stable 0.5 series. I was planning to make a release of 0.6a1 this coming
weekend, but not upgrade ez_setup, so that people would need to make a
conscious decision to upgrade. Thus, I'm somewhat loathe to put an
upgraded version into wide release in order to fix an unrelated problem.
Also, the reason I didn't use the uglier search API in the first place was
because the more REST-like interface using a / seemed more compatible with
manually-created catalogs. i.e., somebody can simulate a catalog of their
own just by using static files and directories, whereas the :action=search
thing is pretty heavily tied to a single protocol version of PyPI and
requires the index to be implemented using some kind of dynamic
technology. I deliberately wanted to make EasyInstall's protocol
expectations modest enough that a wide variety of technologies could
fulfill them, so as to allow for small private or specialty indexes to
exist without needing to set up databases and such running the same
software as PyPI.
PyPI's existing URL-based API (including the '/' trick) seemed *perfect*
for this, and both python.org/pypi and cheeseshop.python.org/ seemed to
obey it.
If the software has to change, it has to change. But I'd much prefer it if
we could restore service to existing versions of the software, and it would
also be nice if I could continue to allow people to create interoperable
indexes based on static files, without EasyInstall having to do more
sophisticated (and therefore more fragile) sniffing to tell what version of
PyPI (or not) it's running against, or having to introduce command line
options to tell EasyInstall what PyPI protocol version to use, or whatever.
More information about the Catalog-sig
mailing list