New question #273752 on anvil: https://answers.launchpad.net/anvil/+question/273752
Hi, I recently used Anvil to build openstack kilo packages on centos 7.1 server. All bootstrap/prepare/build steps went well and built rpms were saved in local repos. But when I tried to use some packages to deploy openstack, dependency conflicts occurred. For example, Some openstack components (i.e. glance) require: pbr>=0.6,!=0.7,<1.0 and sqlalchemy-migrate>=0.9.5 In my case, dependency pkg sqlalchemy-migrate==0.10.0 was chosen and built. But sqlalchemy-migrate 0.10.0 requires pbr>=1.3. --------- I know Anvil won't find this issue for it only solves one level dependency chain for openstack components. So I try to add a new requirements.txt file to pin the version for some packages, i.e. sqlalchemy-migrate==0.9.6. Anvil did find this potential conflict (There are 4 sqlalchemy-migrate>=0.9.5 and 1 sqlalchemy-migrate==0.9.6), but the result surprised me: Anvil insists that 'sqlalchemy-migrate>=0.9.5' should be the best match just because it has more requests! --------- I get a little bit confused of the scoring-best-match logic here, shouldn't we try our best to find the intersection of all requirements? If we cannot find intersection, then it's a severe conflict. For example, - expected: a>2 requirements: - a>1 - a>2 - expected: a>=1.5,<2 requirements: - a<3 - a<2 - a>=1.5 - expected: CONFLICT!! requirements: - a < 1 - a > 2 --------- I've already hacked the multipip tool with my 'find_intersection' method, just want to know why Anvil designs this scoring and best-match logic? Regards Jiexi -- You received this question notification because your team Yahoo! Engineering Team is an answer contact for anvil. -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : yahoo-eng-team@lists.launchpad.net Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp