|[equinox-dev] Uses constraints conflict|
I have a resolution problem due to a uses constraints conflict. My setup includes a large number of bundles and a lot of the exports contain uses directives. Upon initial startup one of the bundles fails to resolve due to a uses constraint conflict. However, if I refresh this bundle after that, it gets resolved. Is this behavior expected?
I debugged the uses constraints checking code, and I observed that packages from three bundles are identified to have uses constraints conflicts. From the involved imported packages two have more than one possible supplier (both have two suppliers). When iterating the four possible combinations of the suppliers of the imports, the best case turns out to have two resolved and one unresolved bundle and the algorithm chooses this combination.
But still, when the algorithm checks a particular combination, it checks if it can wire the packages of all three bundles to the chosen suppliers. Is this OK? Isn’t it possible that one of the bundles have a different supplier than the other two? Because this is what actually happens when the unresolved bundle is refreshed – it is wired to a different supplier then the other two and then it is successfully resolved.