[Python-Dev] PEP 594: Removing dead batteries from the standard library

Glenn Linderman v+python at g.nevcal.com
Wed May 22 14:56:55 EDT 2019


Between this discussion and Steve Dower's recently referenced blog post 
at 
https://devblogs.microsoft.com/python/python-in-the-windows-10-may-2019-update/from 
which I quote below:

> It’s been widely known for many years that Windows is the only 
> mainstream operating system that does not include a Python interpreter 
> out of the box.

and Victor's and Eric's work to make embedding Python easier, it makes 
me wonder when emacs will include a Python interpreter as an extension 
language.


On 5/22/2019 2:26 AM, Stephen J. Turnbull wrote:
> Neil Schemenauer writes:
>
>   > Here is an alternative, straw man, proposal.  Split the CPython repo
>   > into two parts:
>   >
>   >     - core Python: minimal possible stdlib
>   >     - everything else
>
> I take issue with the characterization of "straw man," it's a
> practical idea that turns out to be not so easy to implement.
>
> We tried to do this with XEmacs, and found it just didn't work for us.
> It requires a lot of effort to pare a distribution down to a minimal
> core.  (In fact, we never got close.)  We gave up on that idea after
> only a year, and this was an age and an environment that did not have
> pip-like support for installation of 3rd-party packages (which you
> deprecate as "not really a great solution"), and a lot of people were
> still downloading at ISDN speeds or worse.  The demand for a minimal
> core was correspondingly greater than today, I think.
>
> We did bundle most applications such as MUAs and even C/C++
> development support into sumo packages (one for general use, one for
> packages that didn't function at all without the "MULE" multilingual
> environment which was optional in XEmacs).  But we still ended up with
> many packages staying in the core distribution, because other parts of
> the core or the installation process used them, and as you say "If I
> have a script that uses one of these modules and it gets removed, my
> script breaks."  That annoyed core developers as much as anyone, and
> they generally had priorities that did not emphasize minimalism (to
> say the least).
>
>   > When Python is released, provide installers for a Python that only
>   > includes the "core" part and a second installer that includes
>   > everything else.  I realize this is more work for the release team.
>   > Hopefully with some scripting, it will not be too labour intensive.
>
> Creating the distributions (core and sumo) was not particularly
> labor-intensive for us because we mostly didn't distribute binaries.
> A few moderately baroque scripts did the trick.  Automation has
> advanced, but due to the amount of it it's still fragile, especially
> when you're producing turn-key binary installers.
>
> As I mentioned above, it wasn't the release process that was the
> bottleneck, it was other factors that made it hard to reduce the
> core.  We had an "xemacs-base" package that provided a set of "extra
> tools" that some packages required, and libraries moved in and out of
> it pretty much every release as some developer got tired of telling
> people to install xemacs-base (back to core) or working around missing
> features (move it to xemacs-base where it could be updated easily).
>
> These are the same things that Python maintainers mention as pros and
> cons of having things in stdlib or out on PyPI.  We learned there is a
> sweet spot.  I know we didn't hit it most of the time, but it's very
> clear that both extremes are hard, if not infeasible, to maintain.
> (At the maximalist extreme, even GNU Emacs doesn't really try to
> include everything written in Emacs Lisp any more.)
>
>   > To help the people who need 100s or 1000s of extra PyPI packages,
>   > we could develop a tool that creates a "sumo" Python installer,
>   > grabbing packages from PyPI and building a installer package.
>
> This could be done by any third party (it wouldn't even need to be a
> public distribution, it could easily be an enterprise that open
> sources an internal tool or a GSoC project).  And it could be hosted
> on PyPI itself, since it's not the kind of thing that enterprises need
> to install on 100,000 workstations.
>
>   > To install that package, you would not need network access.
>
> AIUI, it's not the network access that is usually the problem these
> days, although it can be annoying if net access is flaky or if you
> have to sneakernet USBs around.  Still, "sneakernet" is basically a
> one-off cost.  The problem is that collections of random software from
> untrusted sources are verboten in the enterprise.  (Ah, those Walnut
> Creek CDs were wonderful!  I wonder what a modern AV tool would find
> in them?!)  I suppose that in those situations people already have the
> necessary tooling to roll the sumo or provide an intranet repository;
> the problem is navigating the red tape.
>
>   > That doesn't need to happen right away.  Also, maybe other Python
>   > distributions can fill that need if core Python devs don't want to
>   > build it.
>
> I don't think this is about what core devs do or don't want to build.
> I also don't feel a strong sense among the core developers that they
> don't want to maintain a "batteries included" standard library.  Sure,
> there's Christian's PEP, but there's also deliberate activity to
> promote more participation at the core (ie, committer) level.  AIUI,
> Christian's PEP is about transparency of what is already happening
> (WONTFIX-ing or long periods of inactivity on issues with modules of
> "low importance" to the active core developers), and a first step
> toward making a managed process for the deprecation of modules we
> can't afford to maintain given others we have committed to maintain.
>
> Steve

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20190522/b3190044/attachment.html>


More information about the Python-Dev mailing list