[infra][qa] installing required projects from source in functional/devstack jobs

Ghanshyam Mann gmann at ghanshyammann.com
Wed Feb 27 18:02:21 UTC 2019


 ---- On Fri, 22 Feb 2019 22:11:33 +0900 Boden Russell <bodenvmw at gmail.com> wrote ---- 
 > On 2/21/19 4:54 PM, Ghanshyam Mann wrote: 
 > > In addition to what Clark mentioned, all repo defined in "required-projects" 
 > variable in zuul v3 job gets appended to devstack's LIBS_FROM_GIT 
 > variable by 
 > default. 
 >  
 > Thanks for the info. 
 >  
 > However, based on trial and error, using LIBS_FROM_GIT only works if 
 > those projects are not in requirements.txt. If the projects used in 
 > LIBS_FROM_GIT are also in requirements.txt; the versions from 
 > requirements.txt are used; not the source from git. 
 >  
 > For example the tricircle-functional job passes when neutron and 
 > networking-sfc are removed from requirements.txt [1], but fails if they 
 > are in requirements.txt [2]. I've also tried moving those required 
 > projects into their own requirements file [3], but that does not work 
 > either. 
 >  
 > That said; the only solution I see at the moment is to remove those 
 > required projects from requirements.txt until we are ready to release 
 > the given project and then specify the versions for these source projects. 
 >  
 > Am I missing something here; it seems there must be a better solution? 

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
pickup the neutron master verison which should be compatible with the requirement.txt (>=neutron-released-version)

I saw in your patch (taking the example of PS7), neutron is installed form master[4] 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_project 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.
i found networking-sfc-7.0.0 has neutron.db.api imported which has been changed to neutron_lib.db.api in networking-sfc-8.0.0
 In the failure, networking-sfc-7.0.0 is being picked up[6] instead of networking-sfc-8.0.0 which fail with the latest neutron 14.0.0.0b2.dev243.


All other PS8-11 [7], 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] https://review.openstack.org/#/c/638099/8 
 > [2] https://review.openstack.org/#/c/638099/7 
 > [3] https://review.openstack.org/#/c/638099/9 

[4] http://logs.openstack.org/99/638099/7/check/tricircle-functional/5b20269/logs/devstacklog.txt.gz#_2019-02-21_19_23_35_571
[5] http://logs.openstack.org/99/638099/7/check/tricircle-functional/5b20269/logs/devstacklog.txt.gz#_2019-02-21_19_23_31_906 
[6] http://logs.openstack.org/99/638099/7/check/tricircle-functional/5b20269/logs/devstacklog.txt.gz#_2019-02-21_19_23_39_418
[7] http://logs.openstack.org/99/638099/8/check/tricircle-functional/92841bb/logs/devstacklog.txt.gz

-gmann

 >  
 > 





More information about the openstack-discuss mailing list