Clone
Cédric Champeau
committed
on 04 Jul 18
Add support for backlinks in dependency graph
A module may declare the platform(s) it belongs to. If it does so, then we implicitly add an o… Show more
Add support for backlinks in dependency graph

A module may declare the platform(s) it belongs to. If it does so, then we implicitly add an outgoing edge

to the platform, allowing us to resolve all dependencies belonging to the same platform consistently. This

allow us to implement _module alignment_, by telling that 2 modules belong to the same platform. In practice,

there are 2 possible cases:

1. the "platform" a module belongs to exists, in which case, an outgoing edge is added to a "published module",

and this module is expected to have constraints onto the other modules of the same platform.

2. the "platform" a module belongs to doesn't exist, for example because the publisher didn't define

such a thing. In that case, a platform can be constructed "adhoc", and we will try to use modules of the same

version as the platform whenever possible.

The second case is significantly more expensive as it forces us to create "virtual" dependencies, and for each

of them we need to check if the target modules exist.

Show less

master + 425 more