[Python-3000] We should write a PEP on what goes into the stdlib

Brett Cannon brett at python.org
Tue Jun 13 00:23:08 CEST 2006

One thing I forgot to say in the initial email was that I am being
intentially heavy-handed with restrictions on people to get some dialog and
see where people think things are okay and not.

On 6/12/06, Raymond Hettinger <rhettinger at ewtllc.com> wrote:
> Brett Cannon wrote:
> > This is purely about figuring out what is required for accepting a
> > module and for pruning out what we don't want that we currently have.
> Well intentioned, but futile.   Each case ultimately gets decided on its
> merits.  Any one reason for inclusion or exclusion can be outweighed by
> some other reason.  There isn't a consistent ruleset that explains
> clearly why decimal, elementtree, email, and textwrap were included
> while Cheetah, Twisted, numpy, and BeautifulSoup were not.

True.  And notice none of my points say that some package must have been
used in the community for X number of months or have Y number of users
across Z operating systems.  That is not the point of the PEP.

The points I laid out are not that rigid and are basically what we follow,
but centralized in a single place.  Plus it codifies how we want to handle
contributed code in terms of how flexible we want to be for handling
people's wants on how we touch their code in the repository.  A PEP on this
would give us something to point to when people email the list saying, "I
want to get this module added to the stdlib" and prevent ourselves from
repeating the same lines over and over and let people know what we expect.

Overly general rules are likely to be rife with exceptions and amount to
> useless administrivia.  I don't think these contentious issues can be
> decided in advance.  The specifics of each case are more relevant than a
> laundry list of generalizations.

I don't think the points made are that unreasonable.  Following formatting
guidelines, signing a contributor agreement, etc. are not useless
administrivia.  The PEP requirement maybe.  And stating what python-dev is
willing to do in terms of maintenance I think is totally reasonable to state
up front.

> First, the modules must have been in the wild and used by the
> > community.  This has worked well so far by making sure the code is
> > stable and that the API is good.
> Nice guideline, but the decimal module did not meet that test.

Right, so?  The decimal module would have most likely been picked up
eventually; maybe not 2.3 but at some point.  Having it available during dev
would have counted as use in the community anyway.

  For AST,
> the stability criterion was tossed and the ultimate API is still in
> limbo.

The AST is not a stdlib thing, in my opinion.  That was back-end stuff.
Plus you can't provide AST access directly without mucking with the
internals anyway, so that basically requires dev within at least a branch.

  Itertools went in directly.

Once again, fine, but would that have prevented it from ever going in?  I
doubt that.  I know you did a lot of asking the community for what to
include and such.  Had you done that externally while working on it and then
propose it to python-dev once you were satisfied with the implementation it
probably would have gone right in.

  However, the tried and true mxTools
> never went in, and the venerable bytecodehacks never had a chance.
> >
> > Second, the code must follow Python coding guidelines.
> We already have a PEP for that.

Yeah, and yet we still accept stuff that does not necessarily follow those
PEPs.  I am not saying we need to write those PEPs, again, but say that
those PEPs *must* be followed.

> > Third, a PEP discussing why the module should go in.
> We don't need a PEP for every module.  If the python-dev discussion says
> we want it and Guido approves, then it is a done deal.

Look at pysqlite.  We went through that discussion twice.  Most module
discussions end up being rather long and having a single place where stuff
is written would be nice.

But I don't view this as a necessary step.

> > Now, another thing is backwards compatibility.
> Isn't there already a PEP where people can add portability restrictions
> (i.e. having decimal continue to work on Py2.3?

Yep, PEP 291.  What I am asking here is whether contributers should be able
to request compatibility restrictions on the source code at all.  As I said,
I purposely went heavy-handed in this to get feedback from people.  The
points I made are all very python-def friendly and not external developer
friendly.  But we need to discuss that to get an idea of what python-dev is
willing to do to get external contributions for the stdlib.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/python-3000/attachments/20060612/2a122c84/attachment.htm 

More information about the Python-3000 mailing list