[all][gate][stable] Pinning tox<4 in stable branch testing

Ghanshyam Mann gmann at ghanshyammann.com
Fri Jan 6 23:56:03 UTC 2023


 ---- On Fri, 06 Jan 2023 10:41:43 -0800  Ghanshyam Mann  wrote --- 
 >  ---- On Fri, 06 Jan 2023 05:42:45 -0800  Brian Rosmaita  wrote --- 
 >  > Apologies for top posting, but in addition the change gmann has 
 >  > proposed, I believe that you'll need to change your tox.ini file to pin 
 >  > tox <4.  I ran into this working on [0] yesterday, where cinderclient 
 >  > functional tests are devstack-based, and at some point during devstack 
 >  > install someone [1] pip-installs tox unconstrained.
 >  > 
 >  > The zuul ensure_tox role only ensures that tox is present.  The 
 >  > ensure_tox_version var has a slightly misleading name in that it is only 
 >  > used when the role decides it needs to install tox, and then it uses the 
 >  > value of that var; it doesn't ensure that the available tox is that version.
 >  > 
 >  > I've verified that the 'requires = tox<4' trick in [0] works when the 
 >  > tox being called is >=4 [2]; tox creates a virtualenv in .tox/.tox and 
 >  > installs tox<4 in there, and then runs your testenvs using the tox you 
 >  > required in your tox.ini.
 > 
 > I saw in the log that it is using the ensure-tox role from devstack/playbooks/tox/run-both.yaml
 > - https://zuul.opendev.org/t/openstack/build/c957db6323dc4b42bee07f6b709fb3ad/log/job-output.txt#1182
 > 
 > Which is run after pre-yaml where we pinned tox<4 via  ensure_tox_version but missed
 > doing it in run-both.yaml. Testing it by pinning in run-both.yaml also. 

Pinning in run-both.yaml playbook did not fix the python-cinderclient issue and pinning tox<4 in
tox.ini is the way forward for this case.

-gmann

 > 
 > - https://review.opendev.org/c/openstack/python-cinderclient/+/869494
 > 
 > -gmann
 > 
 >  > 
 >  > cheers,
 >  > brian
 >  > 
 >  > [0] https://review.opendev.org/c/openstack/python-cinderclient/+/869263
 >  > [1] not naming any names here; also this same situation will happen if 
 >  > the test node image already contains tox4
 >  > [2] it works in tox 3 too, sometime after tox 3.18.0.  Hopefully it will 
 >  > continue to work in tox 4, though they way they're introducing bad 
 >  > regressions (e.g., [3]), I guess I should say that i've verified that it 
 >  > works through 4.2.2 (4.2.4 was released yesterday).
 >  > [3] https://github.com/tox-dev/tox/issues/2811
 >  > 
 >  > On 1/4/23 11:08 PM, Ghanshyam Mann wrote:
 >  > > Hello Everyone,
 >  > > 
 >  > > As you might know, tox4 broke almost all the projects tox.ini and so do master as well
 >  > > as stable branches gate. On the master, we need to fix it as we should use tox4 in testing.
 >  > > To fix the stable branches gate, either we need to backport all the fixes which include some
 >  > > more issues fixes[1] or we can pin the tox<4.
 >  > > 
 >  > > We discussed it in today's TC meeting and it is better to keep testing the stable branch
 >  > > with the tox version that they were released with and not with the tox4. Even in future,
 >  > > there might be the cases where latest tox might introduce more incompatible changes.
 >  > > By considering all these factors, it is better to pin tox<4 for stable branches (<=stable/zed)
 >  > > testing.
 >  > > 
 >  > > I have prepared the patch to pin it in the common job/template, feel free to comment
 >  > > with your feedback/opinion:
 >  > > - https://review.opendev.org/c/openstack/openstack-zuul-jobs/+/867849/3
 >  > > 
 >  > > also, tested with nova/cinder stable branches:
 >  > > - https://review.opendev.org/q/I0ca55abf9975c5a3f9713ac5dd5be39083e04554
 >  > > - https://review.opendev.org/q/I300e7804a27d08ecd239d1a7faaf2aaf3e07b9ee
 >  > > 
 >  > > You can also test it in your project stable branches in case any different syntax in tox.ini
 >  > > causing the tox upgrade to the latest.
 >  > > 
 >  > > [1] https://github.com/tox-dev/tox/issues/2712
 >  > > 
 >  > > -gmann
 >  > > 
 >  > > 
 >  > 
 >  > 
 >  > 
 > 
 > 



More information about the openstack-discuss mailing list