Thursday, 2022-12-15

*** gthiemon1e is now known as gthiemonge12:41
*** pojadhav is now known as pojadhav|dr_appt13:50
*** dasm|off is now known as dasm14:30
*** frenzy_friday is now known as frenzy_friday|food14:45
*** frenzy_friday|food is now known as frenzy_friday15:33
clarkbfor tox v4 what I'ev realized is that projects like nova run the openstacksdk functional job which relies on openstacksdk's tox.ini file17:00
clarkbIt is possible we might end up with project A relying on B relying on C relying on A compatibility issues though I suspect for tox.ini things its unlikely to loop17:01
clarkbbut if we do have loops untangling that next week could be painful and updates should be made now if possible17:01
JayFWhen is the pin going away? Monday? 17:01
clarkbthe 22nd is what was announced iirc17:02
JayFThat's very rough timing; there'll be a lot of folks gone... 17:02
JayFI'll try to make sure Ironic is alright before I'm gone17:02
clarkbyes, but if we wait until janurary it will become "this is to oclose to the release" then once the release is done it will be "but we have this feature to write". We didn't control the timing of the tox release we've merely tried to address the bleeding so that we can move forward. But we have to move forward at some point17:03
clarkbin the meantime any developer fetching openstack and following dev instructions to run ttests before pushing a change will install tox and promptly discover nothing works17:03
JayFOh, I don't think it's anyone's fault the tminig is unfortunate17:04
JayFit jus is17:04
JayFespecially if we're going to need any highly coordinated fixes17:04
JayFhonestly it makes me tempted to revise my time off schedule to make sure I'm working 12/2217:04
clarkbmy main concern at this point is the new developer or even old developer who isn't following too closely having trouble doing something that should just work for them17:04
clarkbbut also I've written a handful of compatibility fixup changes at this point and there isn't too much to them.17:05
JayFIs it as simple as, install tox 4.0, run tests locally, it's fine? 17:05
JayFor are you taking a more programatic approach?17:05
clarkbya thats basically it. `tox -efoo --showconfig` is also useful as it will comment out things it is ignoring due to compatibility issues17:06
clarkbso ya you run tox and fix what explodes, then run tox --showconfig to see what isn't exploding and fix that. Make a commit and push it17:06
JayFack; I'll get all Ironic projects tested right now then17:06
clarkbthere are a few specific types of issues we've seen so far. The first is you need to convert whitelist_externals to allowlist_externals and that list needs to be complete as it doesn't produce warnings anymore but errors. Next is # are always treated as ini comments and need to be escaped if you don't want them to be a comment. Openstacksdk's problem is listing passenv env vars17:08
clarkbon one line space separated. They need to be on separate lines or comma separated. And ifnally neutron discovered that skipsdist might actually mean skip install and you may need to drop the use of skipsdist17:08
gmannit should be testable locally but have we identified all the changes/fixes we need to do ? or they need to investigate depends on their project ? 17:08
gmannI think most of the projects tox.ini are similar17:08
clarkbgmann: it will vary. I've seen different groupings of the above problems17:08
gmannok17:09
clarkbJayF: fwiw I'm not sure I'd revise time off schedules. Instead I was hoping to bring awareness to the prolem now so that we can head it off as much as possible17:13
JayFI'm going to make sure there's an ironic core around who I'd trust to troubleshoot if anything goes kaboom :) otherwise I'll make sure I have time that day to check up on things17:14
gmannchallenge is cross projects fixes and if we have their core around to merge it even we push the fix17:19
fungithat's not really a problem though is it? if there are no core reviewers around to approve tox fixes, they're also not around approving anything else that would break because of tox version incompatibilities17:23
clarkbfungi: my concern raised above is that we've got cros project testing that is affected. For example nova depends on an openstacksdk job which requires openstacksdk to be updated17:24
fungiif a job fails in the forest and there's nobody around to hear it...17:24
clarkbits possible the incidence of that is small enough we can address it without too much trouble17:24
clarkbBut also, this sort of situation might be the sort of thing where openstack fixes it rather than trying to rely on individual projects17:24
gmannfungi: is it about cross project, nova gate will be blocked until sdk fix are done17:25
clarkbfwiw sdk has reviewed the chagne, but it looks like osme of their tests are failing17:26
fungiin that scenario, nova will only be blocked if they don't disable the broken jobs, but yes that's mainly an argument in favor of better cross-pollination of core review teams17:27
gmannclarkb: nice, that is good17:27
fungior if they don't fork the jobs and run their own modified versions17:28
JayFStable branches are staying pinned to tox<4.0? 17:30
JayFOr do we need to test/fix those too17:30
gmannyeah that is main issue, how to pin them?17:30
fungidepends on what you mean17:30
gmannfor unit tests17:30
gmannwe should pin them instead of fixing all 17:30
JayFI don't know what I mean :) I'm asking if tox 4.0 compat fixes should be backported17:30
clarkbthe zuul-jobs ensure-tox role applies globally without branching. It is a central zuul role and has no concept of project specific ranching policies17:30
JayFwith an implied "please no" :) 17:30
fungifor things using ensure-tox you can just override the version in the job definition, and can do it with branch variants17:31
clarkbthat means when we unpin in ensure-tox your stable branches will also be unpinned.17:31
clarkbfungi: you can also set a project level var17:31
JayFthat still means having to land a change on those project stable branches17:31
clarkbbut I'm not sure if those are branch specific17:31
gmannwe can pin it openstack-tox-* job at least17:31
JayFwhich means fighting CI on those stable branches :( 17:31
JayFwhich means I might as well backport my tox fixes...17:31
fungibut also, remember that means telling people who want to work on stable branches that they need to keep an old version of tox on hand to do local testing17:31
JayFyeah, I think backporting the actual fix is the right move17:32
JayFbut also unpleasant17:32
gmannopenatack-tox-* pin shoould work for most of jobs until few are directly inherited from 'tox' jobs17:32
gmannor can we cap it in tox.ini with max_version or so?17:32
JayFI think this is absolutely a case of burn the candle at both ends: projects should fix tox in stable branches, and we should pin it so they don't have to 17:32
clarkbfungi: exactly. I think in this situation the correct thing may be to backport not pin17:32
fungialso it's only the ensure-tox role in zuul-jobs which was pinned and so that's the only pin being removed next week.17:33
clarkbbecause it is accomodating the external world not internal features17:33
JayFbecause we don't want CI failing in earlier branches for this reason; but we also want the better dev experience17:33
JayFI view leaving the pin on for stable branches a way to make sure we don't give yet-another-painful-change to projects that are barely maintained 17:33
gmannwell we did pin for devstack based jobs 17:33
fungiso for example, any pinning which was done for tempest isn't tied to what ensure-tox does or doesn't pin anyway17:33
gmannI will say be consistent on stable branch tesitng tox4 or not at all17:34
clarkband pinning for tempest is less prolblematic for devs beacuse devstack manages all of that for you17:34
gmanneither unit or integration testring 17:34
JayFI don't think we can or should dictate that, neccessarily. Ironic will backport tox 4.0 compat fixes whether stable is pinned or not, b/c dev experience is crap otherwise17:35
gmannpinning in openstack-zuul-jobs should cover most of that but need to check17:35
JayFbut I'm not oppossed to us pinning at a top level so CI always uses tox<417:35
JayFbut we shouldn't tell projects not to fix stable branches, too17:35
JayFthis just removes the time pressure17:35
gmannsure, its up to project if they want17:36
fungiright, luckily we haven't yet run into anything tox v4 requires which breaks v317:36
fungiso it should be possible to backport fixes for v4 without breaking the jobs that are still using v3 with the same configs17:37
fungithe whole situation with skipsdist being mutually exclusive of usedevelop is probably the biggest risk i can think of, though that's mainly going to impact job performance/duration not actual functionality17:37
fungiand the alternative workaround is to explicitly add {toxinidir} to your deps list for a given testenv if you really want to not install the project by default but have it in some specific testenvs17:38
fungirelying on usedevelop as a means of making sure the project gets installed is sort of abusing a feature which wasn't quite intended for that purpose17:39
fungiit's really for stating that you need the resulting venv to have the project installed in editable mode rather than normally17:40
*** pojadhav|dr_appt is now known as pojadhav18:01
gmannclarkb: I was testing pinning tox in openstack-zzul-jobs and then if project can unpin it in their zuul.yaml or not but this does not work as setting in template/job definition are taken priority https://review.opendev.org/c/openstack/glance/+/867880/5/.zuul.yaml#29520:20
gmannclarkb: any other way to do that?20:20
clarkbgmann: no things closest t othe playbook have priority20:21
clarkbwell no way around the precedence20:21
clarkbwhat you can do is inject vars with higher precedence via a job variant20:21
clarkbso when you run the foo-python38 job in your project you can make a variant for it. SImilar to how you might overide a nodeset. In this case you can override the var value20:21
gmannbut that needs to be done for many jobs and mainly project zuul.yaml run them via template so they have to explicitly add jobs with that var override20:22
gmannI think I will drop the idea of pin and let project to backport fixes as you all were suggesting 20:23
gmannI thought if it is easy way to unpin on project side then we can pin in central place20:24
fungiyeah, this is why the earlier zuul-jobs announcement suggested using depends-on to the wip change which will be removing the tox<4 pin20:24
fungiin order to test using tox v4 without having to make local configuration changes20:26
gmannyeah local config changes to unpin seems more complex than backport fixes :)20:26
gmannIf time permit today or weekend, I will try to test/fix projects as many as I can20:27
gmannbut let's keep the timeline same as holiday season can be taken as opportunity to fix them as not all developers will be on leave20:28
gmannshifting after holiday seems more disturbance to dev cycle/activities 20:28
clarkbya I think despite the holidays this is possibly the best time todo it. Fewer people are impacted and people who do plan to be around can get something done that helps others20:28
clarkbwell best time might be too strong. Of all the bad possibilities it is least bad :)20:29
gmannyeah20:29
JayFwe've already landed dozens of the fixes in ironic just today :)21:20
*** blarnath is now known as d34dh0r5322:29
clarkbheads up https://github.com/tox-dev/tox/issues/2712 is something sfinucan discovered, then I ran into independently23:13
*** dasm is now known as dasm|off23:59

Generated by irclog2html.py 2.17.3 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!