On 13 April 2015 at 22:29, Donald Stufft <don...@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. Cheers, Nick. -- Nick Coghlan | ncogh...@gmail.com | Brisbane, Australia _______________________________________________ Distutils-SIG maillist - Distutils-SIG@python.org https://mail.python.org/mailman/listinfo/distutils-sig