[Distutils] Beyond wheels 1.0: helping downstream, FHS and more

Nick Coghlan ncoghlan at gmail.com
Tue Apr 14 18:06:47 CEST 2015

On 13 April 2015 at 22:29, Donald Stufft <donald at stufft.io> wrote:
> So a possible way for this to work is in a PEP 426 world, simply define
> a twisted.plugins extension that says, in a declarative way, “hey when
> you install this Wheel, if there’s a plugin that understands this extension
> installed, let it do something before you actually move the files into
> place”. This let’s Wheels themselves still be declarative and moves the
> responsibility of implementing these bits into their own PyPI projects
> that can be versioned and independently upgraded and such. We’d probably
> need some method of marking an extension as “critical” (e.g. bail out and
> don’t install this Wheel if you don’t have something that knows how to handle
> it) and then non critical extensions just get ignored if we don’t know
> how to handle it.

Right, this is the intent of the "Required extension handling"
feature: https://www.python.org/dev/peps/pep-0426/#required-extension-handling

If a package flags an extension as "installer_must_handle", then
attempts to install that package are supposed to fail if the installer
doesn't recognise the extension. Otherwise, installers are free to
ignore extensions they don't understand.

So meta-installers like canopy could add their own extensions to their
generated wheel files, flag those extensions as required, and other
installers would correctly reject those wheels as unsupported.


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

More information about the Distutils-SIG mailing list