No way to pull requirements from source in devstack jobs
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
devstack |
Expired
|
Undecided
|
Unassigned |
Bug Description
Problem:
There's no proper way to install "siblings" [1] in devstack based zuul
v3 jobs for projects that also require the siblings via requirements.txt.
Background:
Following the zuul v3 migration guide for "sibling requirements" [1]
works fine for non-devstack based jobs. However, jobs that use devstack
must take other measures to install those siblings in their playbooks.
Based on what I see projects like oslo.messaging doing for cross
testing, they are using the PROJECTS env var to specify the siblings in
their playbook (example [2]). This approach may work if those siblings
are not in requirements.txt, but for projects that also require the
siblings at runtime (in requirements.txt) it appears the version from
the requirements.txt is used rather than the sibling's source.
For example the changes in [3][4].
Also see [5][6].
[1]
https:/
[2]
https:/
[3] https:/
[4]
http://
[5] http://
[6] https:/
affects: | tempest → devstack |
I do not think LIBS_FROM_GIT and requirement.txt are two conflict entity. repo
mentioned in LIBS_FROM_GIT will be checked against the requirement.txt version and
they should satisfy with the latest master version of repo mentioned in LIBS_FROM_GIT.
For example, in your case neutron is mentioned in LIBS_FROM_GIT so devstack will released- version)
pickup the neutron master version which should be compatible with the requirement.txt (>=neutron-
I saw in your patch - https:/ /review. openstack. org/#/c/ 638099/ (taking the example of PS7), neutron is installed form master[1] and it did satisfy the
requirement.txt version [5]. So the final installed version of neutron is 14.0.0.0b2.dev243 which is the latest master.
similar case with required_proj2ct which end up appending in LIBS_FROM_GIT by devstack so all repo
mentioned in required_projects are installed from source until installing project has explicitly constrained
them by upper_constarinted etc.
The problem I see in your patch is networking-sfc latest version is not picked up even that is installed from source. sfc-7.0. 0 has neutron.db.api imported which has been changed to neutron_lib.db.api in networking- sfc-8.0. 0 sfc-7.0. 0 is being picked up[3] instead of networking- sfc-8.0. 0 which fail with the latest neutron 14.0.0.0b2.dev243.
i found networking-
In the failure, networking-
All other PS8-11 [4], I cannot find the networking-sfc installed in that job and so does no error. I am not sure how that is passing without networking-sfc.
But in term of installation, devstack pickup the source version and then apply constraint according to what installation repo has.
[1] http:// logs.openstack. org/99/ 638099/ 7/check/ tricircle- functional/ 5b20269/ logs/devstacklo g.txt.gz# _2019-02- 21_19_23_ 35_571 logs.openstack. org/99/ 638099/ 7/check/ tricircle- functional/ 5b20269/ logs/devstacklo g.txt.gz# _2019-02- 21_19_23_ 31_906 logs.openstack. org/99/ 638099/ 7/check/ tricircle- functional/ 5b20269/ logs/devstacklo g.txt.gz# _2019-02- 21_19_23_ 39_418 logs.openstack. org/99/ 638099/ 8/check/ tricircle- functional/ 92841bb/ logs/devstacklo g.txt.gz
[2] http://
[3] http://
[4] http://