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

Reply via email to