This adds PackageMetadata.provides and the associated code around that. It works by dumping all of the providers of a given name into pool's the internal name_to_packages list. The rest of the behavior falls out from that.
If package A provides package B, then either A or B can be used to satisfy dependencies (or cause conflicts with) B. This does imply that package A replaces package B or that package B is somehow obsolete or that package A should be preferred. With the current implementation, if two packages provide the same thing then you'll get whichever has a higher version number, but this is unspecified. If you care about priority, you'll need to use some of the other metadata features (not yet implemented).
This adds
PackageMetadata.provides
and the associated code around that. It works by dumping all of the providers of a given name into pool's the internalname_to_packages
list. The rest of the behavior falls out from that.If package A
provides
package B, then either A or B can be used to satisfy dependencies (or cause conflicts with) B. This does imply that package A replaces package B or that package B is somehow obsolete or that package A should be preferred. With the current implementation, if two packages provide the same thing then you'll get whichever has a higher version number, but this is unspecified. If you care about priority, you'll need to use some of the other metadata features (not yet implemented).See https://github.com/enthought/sat-solver/issues/177