[Distutils] PEP 426 moved back to Draft status

Nick Coghlan ncoghlan at gmail.com
Mon Mar 13 06:32:48 EDT 2017

On 11 March 2017 at 14:17, Nick Coghlan <ncoghlan at gmail.com> wrote:

> On 11 March 2017 at 07:03, Daniel Holth <dholth at gmail.com> wrote:
>> You lost me a bit at 'extra sets'. FYI it is already possible to depend
>> on your own extras in another extra.
>> Extra pseudo code:
>> spampackage
>> extra['spam'] = 'spampackage[eggs]'
>> extra['eggs'] = ...
> Oh, nice. In that case, we can drop the '*' idea and just make "all"
> another pre-declared extra with a SHOULD that says sdist build tools should
> implicitly populate it as:
>     {
>         "requires": "thisproject[extra1,extra2,extra3,extra4]"
>         "extra": "all"
>     }
> given an extras clause containing '["extra1",'extra2","extra3","extra4"]'.
> Endorsing that approach to handling "extra sets" does impose a design
> constraint though, which is that installation tools will need to
> special-case self-referential requirements so they don't get stuck in a
> recursive loop. (That will become a new MUST in the spec)

Next update:

- metadata version bumped to 3.0
- expected filename changed to pysdist.json and stated to be immutable once
generated for a given release
- project obsolescence changes deferred to a possible future metadata
- no proposed changes to extras syntax and the "self" and "runtime"
pseudo-extras dropped
- "all" added as an implied extra for all declared extras
- "alldev" added as an implied superset of "test", "build", "doc" and "dev"

Even though it's not strictly necessary, I'd still kind of like to have a
standard way to say "install all the dev dependencies, but not the package
itself or its runtime dependencies". I guess if we take distro build tools
as an example though, they handle that as a separate command (e.g. "dnf
builddep" vs "dnf install") rather than as a variation on the normal
install command.


Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/distutils-sig/attachments/20170313/16543b8b/attachment-0001.html>

More information about the Distutils-SIG mailing list