On Mon, May 27, 2019 at 07:26:11PM -0400, Doug Hellmann wrote:
The gate always uses a local copy of the constraints list.
On Tue, 2019-05-28 at 09:28 +1000, Tony Breeds wrote: this is almost always true. howver the tempest jobs use a tempest tox env to create a venv used to generate teh tempst config https://github.com/openstack/devstack/blob/master/lib/tempest#L592 we then uncondtionally use master upper constaits to reinstall the deps form the local zuul clonned copy of the requirement repo. https://github.com/openstack/devstack/blob/master/lib/tempest#L595-L597 that first invocation of tox does not use the local requirement repo and hits the interwebs as i have seen this cause gate failures due to dns resoltuion issues in the past. im not really sure why we do it this way to be honest. for the tox jobs a non default constaitns file is only used if tox_constraints_file is defiend. https://github.com/openstack-infra/zuul-jobs/blob/d1465e8b1b5ba8af4619f7bb95... we dont define that in our base tox jobs in zuul jobs repo https://github.com/openstack-infra/zuul-jobs/blob/ed1323d09616230eb446365702... but we do set it in our openstack-tox job in the openstack-zuul-jobs repo so we shoudl be safe in that regard. https://github.com/openstack/openstack-zuul-jobs/blob/c716915911a612ea351ab6... so it only where we direcly invoke tox in devstack or costom jobs that we need to be carful.
The race condition is on developers’ local systems, where the old style URL will point to something that does not exist until the requirements repo is branched.
I assume that when zuul tries to get the stable/$series branch from openstack/requirements if that branch doesn't exist it just gets master right?
Yours Tony.