[Distutils] Wheels and console script entry point wrappers (Was: Replacing pip.exe with a Python script)

Paul Moore p.f.moore at gmail.com
Tue Jul 16 18:44:54 CEST 2013


On 16 July 2013 16:51, Vinay Sajip <vinay_sajip at yahoo.co.uk> wrote:

> Paul Moore <p.f.moore <at> gmail.com> writes:
>
> > FWIW, I believe that the whole "scripts" directory as a concept is too
> > platform-specific. The only real use for it is to expose CLI applications
>
> Well, you can also expose GUI applications this way, though the
> applications
> are fewer - Qt applications could easily be cross-platform, for example.
> Also, you can put in scripts which are not entry-point related, which would
> be essential if you e.g. have existing scripts to bundle as part of an
> application, which could be written in other languages, say. Not common,
> perhaps, but not a case you want to arbitrarily restrict given that it
> works
> now. Of course, there the distributor of the package is responsible for
> ensuring cross-platform workability of such scripts using e.g. including
> .cmd files for Windows or whatever.


You're right, I should have included GUI apps.

I'm not aware of any cases of scripts that aren't entry-point related (and
which couldn't be converted to entry points fairly easily) although that
certainly doesn't mean there aren't any. OTOH, I do know that there used to
be a *lot* of examples of scripts doing what entry points do that were
either absolutely not cross-platform (Unix shell scripts, bat files) or
were problematic/badly implemented (Python scripts without a py extension,
etc)  Many of these have now gone, thank goodness, migrated to setuptools
entry points.

If I were writing a firm proposal, I'd go for something like entry points
as metadata, managed by installers, as the primary interface (with backward
compatibility code to automatically migrate setuptools entry points so the
impact on developers is minimal) and the scripts directory/setup argument
being solely for backward compatibility, no management by installers at
all, whatever is in there just gets dumped onto the target unchanged (and
the contents of scripts is explicitly defined as *not* affecting the
compatibility tags).

So setuptools users get new entry point metadata automatically, which is
processed at install time, and anyone still using the distutils scripts
parameter still works as before but gets no particular support from the new
tools.

Paul
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/distutils-sig/attachments/20130716/aa3d9081/attachment.html>


More information about the Distutils-SIG mailing list