Tuesday, 2023-10-31

opendevreviewMerged openstack/tempest master: Switch Neutron RBAC flag in testing  https://review.opendev.org/c/openstack/tempest/+/89931009:25
elodilleshi QA team, i have a quick qestion about generating doc from docstrings. Is there an easy way to generate them for *-tempest-plugins along with tempest docstrings (for example in tempest: https://docs.openstack.org/tempest/latest/tests/network/network.admin.html )13:01
elodillesthere might be a description about how to do it, but i haven't found it yet13:01
fricklerclarkb: fungi: I think we should be fine with proceeding with 816741 to clear a bit of the path for sean-k-mooney's keystone change?14:51
frickleralso, kind of unrelated, but do we want jammy and debian testing for bindep?14:52
clarkbya I think 816741 is fine as is adding more testing. FWIW I discovered this https://gregoryszorc.com/blog/2023/10/30/my-user-experience-porting-off-setup.py/ and that says that new pip uses a default pyproject.toml definition if you don't supply one14:54
clarkbfor this raeson I think we actually do need to set a pyproject.toml to avoid any improper default behavior (and this is likely related to what sean-k-mooney debugged as well since it won't use the pbr shim)14:55
sean-k-mooneyi jsut started an email thread on this by the way14:59
sean-k-mooneywell the pep517/pip23.1 suuport14:59
sean-k-mooneyfrickler: clarkb  the delta between what i did in the keystoen patch and the bindep patch15:00
sean-k-mooneyis that i did not remove setup.py functionality15:00
sean-k-mooneyi just added pyproject.toml 15:00
sean-k-mooneyso that we would not break any exsiting packagers15:00
clarkbsean-k-mooney: ya all that bindep change did was chmod away the +x15:00
clarkbso shouldn't be a huge impact to pacakgers, but agreed making minimal updates is a good idea15:00
sean-k-mooneymy proposal would be to deprecate teh setup.py funcitonal in caracal and perhaps remove it in the next release15:01
sean-k-mooneyclarkb: ill add that block to my reading list15:01
sean-k-mooney*blog15:02
clarkbsean-k-mooney: there is a lot in the blog but good info that overlaps here. I think fundamentally the pip use of a specific default pyproject.toml if you don't provide one is the underlying source of the issue here (since that forks pip and setuptools behavior off in a different direction)15:02
sean-k-mooneyclarkb: ya so it almost works15:03
sean-k-mooneyclarkb: the issue is that we use -e in devstack and that breaks the integration15:03
sean-k-mooneyif we use there default the wsgi script are generate when we dont use -w15:04
sean-k-mooney*-e15:04
sean-k-mooneybut being explcit instead of relying on the fallback and jsut saying "build with pbr" is likely the better approch long term15:04
sean-k-mooneyassumign we stay with pbr15:04
JayFclarkb: looks like they are using PEP517 support to install (in this example, diskimage-builder), but are using it via *setuptools*15:05
clarkbyes I think being explicit here is a good idea15:05
sean-k-mooneyour use of wsgi_script which is a pbr extenion based on the setuptools console_scripts pattern is what broke15:05
JayFclarkb: so they invoke setuptools legacy support via PEP517, using setup.py and getting into PBR that way15:05
clarkbJayF: ya so they are doing the pip default pyproject.toml path essentially15:05
JayFclarkb: there's a little bit of hand-waviness in there because I didn't want to dig further, but that's essentially the behavior :)15:06
sean-k-mooneyin pip  23.115:06
sean-k-mooneythe invocation of setup.py was removed15:06
sean-k-mooneyJayF: so that is what is breaking now15:06
JayFAh, I bet that's masked in gentoo because that probably breaks the world, not just openstack-y things15:06
sean-k-mooneyJayF: now they are building a temp wheel without using setup.py15:06
JayFheh, nope15:07
* JayF goes to validate the DIB ebuild is broken in gentoo15:07
JayFit works; but it's obvious it's ignoring the setup.py based on the large number of QA warnings about files installed not listed in packages15:10
JayF(but those files are still installed)15:10
sean-k-mooneyJayF: right it "works" almost good enough provided your not using a pbr extention like wsgi_scripts15:14
sean-k-mooneyim not seeting this on the arcive yet but i sent a mail with subject "[all][packaging][release][qa] pep-517 and pip 23"15:15
dansmithsean-k-mooney: so it dropped setuptools but not setup.py entirely right?15:15
dansmith(by default)15:15
dansmithseems like distutils.core.setup still gets called by default15:16
sean-k-mooneyother way around. the deprecated using setup.py install 2 years ago in pip 20.2 if pyporject.toml does not exsit15:16
dansmithI know that might not be relevant to us, I'm just trying to make sure I know what all has changed15:16
sean-k-mooneydansmith: they still use setuptool by defautl if its not found i belive just not setup.py install15:16
dansmithsean-k-mooney: okay I'm just testing an older package that doesn't have the toml but it still seems to be working15:16
sean-k-mooneyinstead of building an egg they now build a wheel15:16
dansmithhmm15:17
sean-k-mooneydansmith: it will still use setuptool in that acase and setup.cfg15:17
sean-k-mooneyjust not setup.py so it does not enable pbr15:17
sean-k-mooneyso anything that is natively uspported in setuptool like console_script still works as those stevador metadata15:17
dansmithokay15:18
sean-k-mooneyand some fo pbr generate is working as part of builidng the wheel15:18
sean-k-mooneydansmith: i have a repoducer in https://etherpad.opendev.org/p/pep-517-and-pip-23#L815:19
sean-k-mooneydansmith: you can downgrade pip before 23.1  in a seperate env15:19
sean-k-mooneyand compare the behavior15:19
dansmithsean-k-mooney: yeah I'm most just trying to grasp what all is changing (this time)15:20
sean-k-mooneythe problem this time is we have been ignoring the deprecation and they finally removed the fallback15:21
sean-k-mooneyi think the deprecation only printed in verbose mode15:21
sean-k-mooneyso we never saw the warning15:21
sean-k-mooneyim going to propos patchs for nova/placment and i may do the "core" proejcts quickly15:21
dansmithI understand that, I just don't understand the difference between ignoring setup.py entirely and not, because it seems like it sometimes still "runs" setup.py15:21
dansmithI just need to dig into it after this call15:22
dansmithI've mostly been ignoring it myself15:22
sean-k-mooneyack15:22
clarkbdansmith: sean-k-mooney: I think the distinction is python setup.py vs some tool importing setup.py and running it15:22
sean-k-mooneyill admit i dont fully undersand this eitehr how i figured this out is i started adding logs to pbr15:22
sean-k-mooneyand noticed that part of if was nto being called any more15:22
clarkbsetup.py is still used when you use setuptools. But it will never be invoked as python setup.py something with modern tools15:22
clarkband the import path is enough to make pbr work for most stuff but apparently not the wsgi scripts15:23
dansmithclarkb: okay I thought to continue getting that fallback you needed a toml that says that's your build backend15:23
sean-k-mooneyclarkb: i think its invoked as "setup.py build" or "setup.py wheel"15:23
dansmithclarkb: but I'm playing with it locally and I don't have that in place and yet I'm still getting the automatic fallback15:23
sean-k-mooneyor something like that15:23
dansmithso I'm trying to figure out what the actual change and requirement is15:23
dansmithsean-k-mooney: so only "setup.py install" is removed?15:24
clarkbdansmith: pip specifically has a default pyproject.toml it uses if you don't define one according to the blog linked above15:24
dansmithclarkb: okay I'll read15:24
sean-k-mooneyso what is actully breaking us is this code https://github.com/openstack/pbr/blob/d03d617c09e7ba8ddf62d1e53d71685cd708e2da/pbr/packaging.py#L458-L514 is not never invoked15:25
sean-k-mooneybecause it never does a local install via setup tools now15:25
dansmithokay so as long as a package builds properly into a wheel with build then I guess everything is fine for the moment?15:27
sean-k-mooneyso i think "based on skiming that blog" its now doing "python3.12 -m build --wheel ."15:27
dansmithlike they build the wheel and then install the wheel with pip instead of letting setup.py do the install?15:27
sean-k-mooneydansmith: yes15:27
dansmithack15:28
sean-k-mooneyand what broken is building an editable wheel15:28
sean-k-mooneydoes not include the wsgi scripts15:28
sean-k-mooneyif you build a non editiabel wheel it does include them15:28
sean-k-mooneyim not sure why that is diffent and we might eb able to fix that in pbr15:28
sean-k-mooneythat was what i was orginally goign to do15:28
sean-k-mooneybut i dont understand how pbr works well enough to do that15:29
dansmithack15:29
sean-k-mooneyby the way im not sure if the issue is in the wheel build or in the pip install15:30
sean-k-mooneyi.e. im not sure how the -e flag is applied (in the build phase or in the use of the wheel phase or both)15:30
dansmithI guess I assume no wheel can be installed editable15:31
sean-k-mooneyif you read the output you see this https://paste.opendev.org/show/biPIqW8kz1b4aGNRXwPU/15:34
sean-k-mooney  Building editable for keystone (pyproject.toml) ... done15:34
sean-k-mooneythat with master (without my change)15:34
sean-k-mooneyusing the default pyporject.toml form pip i assume15:34
sean-k-mooneydansmith: -e is not a flago for build "python3 -m build --wheel -e ." is invlaid15:37
sean-k-mooneyand without -e the wheel has the wsgi files15:37
dansmithsean-k-mooney: yeah I just figured that install wouldn't do an editable for a wheel15:38
sean-k-mooneyit is an accepted arg for "python -m pip wheel -e ."15:39
sean-k-mooneythat will polute your repo...15:40
sean-k-mooneyand the wheel still has the correct content when invoked that way15:42
sean-k-mooneyso the issue is in how pip is installing the scripts15:43
sean-k-mooneywe could file a bug with pip for this but i dont  know if they would fix it15:44
clarkbgmann: what is the plan for flipping python3.11 jobs to voting in caracal?18:21
gmannclarkb: I think we did. elt me check my change is merged or not18:25
clarkboh yup looks like that did happen at least for openstacksdk18:33
gmannclarkb: it is merged, https://review.opendev.org/c/openstack/openstack-zuul-jobs/+/89123818:34
gmannand it is running voting https://zuul.openstack.org/builds?job_name=openstack-tox-py311&skip=0&limit=10018:34
gmannoh did nto check for sdk. let me check if they are not using this template18:35
clarkbthanks. I'm regenerating results on https://review.opendev.org/c/openstack/python-openstackclient/+/898129 and then that can be approved when it ocmes back voting18:35
clarkbgmann: ^ is the actual chnage I'm concerned about and zuul will tell us momentarily18:35
clarkbyup looks like it is voting in the status page18:35
gmanncool. template used is all correct https://github.com/openstack/python-openstackclient/blob/master/.zuul.yaml#L21618:36
fricklerclarkb: do you want to update the commit message accordingly?18:41
clarkbyup can do now that we know its set18:41
clarkbdone18:44
*** elodilles is now known as elodilles_pto20:29
-opendevstatus- NOTICE: Gerrit on review.opendev.org will be restarted to pick up a configuration change required as part of Gerrit 3.8 upgrade preparations.22:02

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