[Distutils] Metadata 2.0: Warning if optional features are missing

Nick Coghlan ncoghlan at gmail.com
Wed Dec 16 05:59:38 EST 2015


On 16 December 2015 at 04:59, Robert Collins <robertc at robertcollins.net> wrote:
> Some issues with reusing extras are:
>  - extras refer to things in the dependency graph, but as
> distributions are the installable things and the graph nodes are
> distributions, foo[fast] is - in widespread deployment - entirely and
> only a list of additional distributions.
>  - there's no concept of 'default extra', and there is no clear path
> for bringing it in compatibly, at least so far
>  - we haven't worked through the ui implications about which end of
> the relation this should be configured: should consumers be specifying
> them, or providers?
>  - negative operators on extras are as yet undefined, and due to the
> dependencies of an install being a graph, not a tree, a naive
> definition is likely very hard to use IMO

One of the other challenges posed by the current extras system is how
best to map it to alternate packaging systems. It *can* be done, but
it's not particularly clean (the main approaches I'm aware of involves
defining a meta-package for each extra, which is rather horrible, or
just translating them to Recommends or Suggests and accepting the loss
of granularity).

> Recommends and suggests are an interesting way of modelling this, and
> its possible we don't need an exclude relation- rather users should
> blacklist them globally in the target environment somehow, which would
> contain that partcular complexity.

I doubt it will surprise anyone to learn I'd be a fan of aiming to
learn from Linux distro experience with describing complex dependency
graphs on this front :)

The RPM folks recently decided the Debian design was essentially a
good one, so the new(ish) weak dependency support in that ecosystem
has a lot of similarities to Debian's approach:
http://www.rpm.org/wiki/PackagerDocs/DependenciesOverview#Weakdependencies

Cheers,
Nick.

P.S. I had to check the actual degree of similarity myself, so for
reference, the relevant Debian docs link is at
https://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps

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


More information about the Distutils-SIG mailing list