On Thu, Feb 28, 2013 at 4:08 AM, Nick Coghlan <ncogh...@gmail.com> wrote:
> On Thu, Feb 28, 2013 at 7:00 PM, holger krekel <hol...@merlinux.eu> wrote:
>> To summarize, having pip/easy_install report red warnings and requiring
>> to pass a "--htmlscrape=PROJ1,PROJ2" option or so is a good way to
>> communicate, removing the ability is not, at this point.
>
> +1
>
> I'm a fan of updating the client side tools (both upload and download)
> to complain if files are not hosted on PyPI, and perhaps even
> requiring switches or configuration settings to say "yes, external
> downloads are OK for projects X, Y, and Z").
>
> I'm *not* a fan of changing the way PyPI handles external links,
> except perhaps for some of the suggestions PJE made about cleaning up
> some aspects of what PyPI chooses to publish for old releases.
>
> I'd prefer to leave the "you can't do it any more" step for the next
> generation secure metadata distribution infrastructure (so the
> installation tools will be able to fall back to the legacy
> infrastructure for projects that haven't updated yet).

Indeed.  I'm hoping that the new tools will make the old ones (e.g.
setuptools) entirely irrelevant, which is why I'm hammering so hard in
the PEP discussions on some use cases that eggs do well that wheels
don't.  I don't want people to have to keep using setuptools for those
use cases.  (e.g. simple plugin deployment ala Trac)  If the new tools
handle all of the use cases, then setuptools can die a natural death
sometime in the next decade or so, so I don't have to be responsible
for it when I turn old and senile.  (It's already turned me grey as it
is.)  ;-)

For the short run, I anticipate the following steps in the next
release of setuptools, which I'm aiming to release before PyCon:

* Default to SSL URL for PyPI
* Support SSL certificate verification for downloads if the 'requests'
library is available on sys.path
* Update docs for easy_install to more clearly and prominently state
that packages are downloaded from other sources than PyPI unless
--allow-hosts is used
* Add an immediate warning to each easy_install invocation (whether
programmatic or command line) if --allow-hosts is not explicitly set
to some value in the configuration or command line.

I'm also considering adding a warning for scraping home page links,
but at this point in the discussion haven't nailed down how that
should work.  Likewise, I'd like to provide some sort of monkeypatch
to make register/upload work properly with SSL in older Pythons, but
I'm not sure I can integrate cert checking there...  but at least the
security will be no worse than using plain distutils.  (i.e., it'll
still be subject to credential theft if someone MITMs PyPI)

Of course, this release will initially be available as a development
snapshot, i.e., made available through external links.  ;-)

Future releases I'm undecided about as yet, but certainly if PyPI
becomes able to pull and cache externally published releases (upon a
developer's request), that addresses all of my concerns on the
developer-burden side, and all of the availability/security concerns
on the other.  Setuptools could move to a default --allow-hosts of
just PyPI, as soon as that feature is available and being used.  (And
if the licensing issues can be worked out, old packages with external
links could be pulled to PyPI anyway, and the external links removed.)
_______________________________________________
Catalog-SIG mailing list
Catalog-SIG@python.org
http://mail.python.org/mailman/listinfo/catalog-sig

Reply via email to