[Python-Dev] Making stdlib modules optional for distributions (Was: Breaking up the stdlib (Was: release cadence))

Nick Coghlan ncoghlan at gmail.com
Wed Jul 6 22:44:31 EDT 2016

On 7 July 2016 at 00:27, Steve Dower <steve.dower at python.org> wrote:
> I consider making stdlib modules "optional" like this to be completely
> separate from making them individually versioned - can't quite tell whether
> you guys do as well?

The point of overlap I see is that if the stdlib starts putting some
selected modules into site-packages (so "pip install --upgrade
<sublibrary>" works without any changes to pip or equivalent tools),
then that also solves the "How to explicitly declare dependencies on
particular pieces of the standard library" problem: you use the same
mechanisms we already use to declare dependencies on 3rd party
packages distributed via a packaging server.

I really like the idea of those independently versioned subcomponents
of the standard library only being special in the way they're
developed (i.e. as part of the standard library) and the way they're
published (i.e. included by default with the python.org binary
installers and source tarballs), rather than also being special in the
way they're managed at runtime.

Versioning selected stdlib subsets also has potential to help
delineate clear expectations for redistributors: Are you leaving a
particular subset out of your default install? Then you should propose
that it become an independently versioned subset of the stdlib. Is a
given subset already independently versioned in the stdlib? Then it
may be OK to leave it out of your default install and document that
you've done so.

> To everyone: please don't conflate these two discussions. The other is about
> CPython workflow and this one is about community/user expectations (I have
> not been proposing to remove stdlib modules at any point).

While I agree they're separate discussions, the workflow management
one has the potential to *also* improve the user experience in cases
where redistributors are already separating out pieces of the stdlib
to make them optional.


Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia

More information about the Python-Dev mailing list