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