Tuesday, 2024-04-09

@clarkb:matrix.orgcorvus: change lgtm. I did leave one minor suggestion though00:10
-@gerrit:opendev.org- Zuul merged on behalf of Clark Boylan: [zuul/zuul] 914715: Handle annotated and signed tags when packing refs https://review.opendev.org/c/zuul/zuul/+/91471509:45
-@gerrit:opendev.org- Nils Gondermann proposed: [zuul/zuul] 915326: Inherit files attribute from abstract parent jobs https://review.opendev.org/c/zuul/zuul/+/91532612:52
-@gerrit:opendev.org- Nils Gondermann proposed wip: [zuul/zuul] 915326: Inherit files attribute from abstract parent jobs https://review.opendev.org/c/zuul/zuul/+/91532613:02
-@gerrit:opendev.org- Nils Gondermann marked as active: [zuul/zuul] 915326: Inherit files attribute from abstract parent jobs https://review.opendev.org/c/zuul/zuul/+/91532613:05
-@gerrit:opendev.org- James E. Blair https://matrix.to/#/@jim:acmegating.com proposed: [zuul/zuul] 915300: Split build/buildset list queries into two https://review.opendev.org/c/zuul/zuul/+/91530013:39
-@gerrit:opendev.org- Joseph Kostreva proposed: [zuul/zuul] 915334: Check gerrit dependencies using isMerged() https://review.opendev.org/c/zuul/zuul/+/91533413:48
-@gerrit:opendev.org- Clark Boylan proposed: [zuul/zuul-jobs] 915366: Add option to set compile flags for pyenv in ensure-python https://review.opendev.org/c/zuul/zuul-jobs/+/91536616:53
-@gerrit:opendev.org- Clark Boylan proposed: [zuul/zuul] 915367: Build python3.12 with optimizations enabled https://review.opendev.org/c/zuul/zuul/+/91536716:55
@clarkb:matrix.orgThat pair of changes is a bit of an experiment. I want to see if we can trade off slower python builds for faster zuul testing and get faster jobs in the end16:55
@clarkb:matrix.orgit immediately explodes in ./configure on "check if the compiler works" hrm I wonder if the empty env vars are being set in a way that makes things sad16:57
-@gerrit:opendev.org- Clark Boylan proposed: [zuul/zuul-jobs] 915366: Add option to set compile flags for pyenv in ensure-python https://review.opendev.org/c/zuul/zuul-jobs/+/91536616:59
@clarkb:matrix.orgas promised the build is much slower. It is up to about 10 minutes so far. Not sure we'll make up 10 minutes during the test runtime. But we shall see17:17
@clarkb:matrix.orgin the end it took about 18 minutes on this test node17:28
-@gerrit:opendev.org- Zuul merged on behalf of James E. Blair https://matrix.to/#/@jim:acmegating.com: [zuul/zuul] 915300: Split build/buildset list queries into two https://review.opendev.org/c/zuul/zuul/+/91530017:54
@fungicide:matrix.orgClark: i compile all the python releases from source on my debian-based workstation, i should probably double-check the optimization options and build dependencies19:58
@fungicide:matrix.orgah, never mind, you've got the same options i pass to configure, and i guess pyenv handles the build dependencies on its own20:11
@clarkb:matrix.orgYou need extra deps if using clang but I think gcc can do them out of the box20:12
@clarkb:matrix.orgThere is a new experimental feature to use llvm's BOLT when building with clang that gives another couple of percentage improvements but we use gcc so I ignored that for now20:13
@clarkb:matrix.orgfungi: unfortunately it looks like the build costs are greater than any time save but I need to look more closely at the results20:14
@fungicide:matrix.orgClark: however, the stow solution would save us the build time, at the cost of increased complexity20:22
@fungicide:matrix.orgoh, speaking of compiling cpython from source, 3.12.3 and 3.13.0a6 were just announced moments ago20:27
@clarkb:matrix.orgYa we may have to dial back some of the options for arch stuff20:27
@clarkb:matrix.orgBut I suspect we could still get something that performed better and installs quickly that eay20:27
@fungicide:matrix.orgprobably. the debian packaged cpython does at least use ``--enable-optimizations`` and ``--with-lto`` already20:28
@fungicide:matrix.orgbut not the ``CFLAGS`` additions20:29
@clarkb:matrix.orgPart of this started when comparing 3.11 to 3.12 job runtimes and test timing. 3.12 isn't really bad compared to 3.11 but it isn't better despite improvements that should make it better if not crazily so. Then I realized we were building without a bunch of optimizations 20:35
@clarkb:matrix.orgThe 3.12 job took 18 minutes longer than the 3.11 job. They ran on the same cloud. The build took 18 ish minutes instead of 2 ish minutes20:41
@clarkb:matrix.orgThe zuul-jobs change is probably worth landing (because it gives people more flexibility), but I don't think we'll be able to take advantage of it the way I had hoped in zuul20:41
@fungicide:matrix.orgyeah, if we were doing stow images, we could also include a full `make test` in our image build as a safety, and not worry about the additional time required for that either20:52
@fungicide:matrix.orgi've also noticed that there are a lot of fallbacks in cpython builds to account for platforms that lack one c lib or another, so we could also be building in the absence of some libraries and ending up with less performant pure python fallbacks for some parts of stdlib particularly20:55
@fungicide:matrix.orgmake emits a message with a list of which ones couldn't be built, but it's kinda buried in the other output20:56
@clarkb:matrix.orgya I think we saved about 110 seconds in the stestr runtime or about 3.5% ish20:57
@clarkb:matrix.orgwhich still seems like small improvements compared to what python3.12 should be giving us? But at least it is in the right direction now20:58
@clarkb:matrix.orgoh ya that could be too if we're falling back to python implementation of stuff that could be C20:58
@fungicide:matrix.orgi've got a 3.13 build underway right now, but it's probably close enough to 3.12's output that i should be able to grab a copy of what the "we managed to build it all" message looks like21:00
@clarkb:matrix.orgrereading the python3.12 release notes a lot of the performance improvements have to do with asyncio which zuul is not using so that may explain why they are close together as well21:01
@fungicide:matrix.orgas for build times, i also use `make -j32` on a quad-core machine, mainly to parallelize the inbuilt test phase which `--enable-optimizations` relies on21:04
@fungicide:matrix.orgi played around with different parallelization amounts to see where the sweet spot on that machine was21:05
@clarkb:matrix.orgfungi: the default is probably -jN where N == numcores?21:06
@fungicide:matrix.orgmaybe, i actually don't know21:08
@fungicide:matrix.orgalso, for the record, the "we were able to build all the modules" message on 3.13 looks like `Checked 112 modules (33 built-in, 78 shared, 1 n/a on linux-x86_64, 0 disabled, 0 missing, 0 failed on import)`21:10
@fungicide:matrix.orgnumbers may vary on 3.1221:10
@clarkb:matrix.orgI suspect that message may be hidden away my pyenv but I'll see what the logs say21:11
@clarkb:matrix.orgya we don't get much https://zuul.opendev.org/t/zuul/build/7756d931d7104c09801d48ad645fd831/console#2/0/11/ubuntu-jammy21:12
@fungicide:matrix.orgi'm unfortunately unfamiliar with pyenv, my process looks like `export $STUFF && ./configure --options && make && make test && make altinstall ...`21:17
@clarkb:matrix.orgI think pyenv is doing all the same stuff under the hood, but the interface it gives is you tell it what version to install and where to install it and then it figures out the rest21:19
@clarkb:matrix.orggood when you don't care bout all the small details and honestly it is working pretty well without the tuning21:19
@fungicide:matrix.orgyeah, i mean, "what version to install" is just `$1` in my script, and does some quick `git tag` sorting/filtering/stripping to pick the latest patch or prerelease for a given minor version21:22
@fungicide:matrix.orgthe whole build script is maybe a dozen lines of shell21:23
@fungicide:matrix.orgbut then again, i'm preinstalling the build deps in the system and only targeting one platform21:23
@fungicide:matrix.orgso there's a lot of complexity i'm able to opt out of21:24
@mordred:waterwanders.comI love pyenv21:36
@mordred:waterwanders.comif I ever work for a company that doesn't have its own linux distro, I'm totally going to spin up my own distro that doesn't have any distro packages for python but instead just uses pyenv. and same for node and nvm. something something21:37
@clarkb:matrix.orgthere is a new package manager manager for nvm you should use that21:38
@mordred:waterwanders.comoh yeah?21:38
@clarkb:matrix.org`pnpm`21:38
@clarkb:matrix.orgetherpad uses it now21:38
@mordred:waterwanders.comwait - that's a replacement for npm - not nvm?21:39
@clarkb:matrix.orgoh sorry I clearly need a break from staring at screens21:40
@clarkb:matrix.orgcorrect npm not nvm21:40
@clarkb:matrix.orgmy brain saw node and nvm and immediately thought node and npm21:40
@mordred:waterwanders.comcool. because yarn vs npm wasn't fun enough. but - I'll learn about it anyway :) 21:40
@fungicide:matrix.orgpnpm seems to want to be a yarn+npm replacement, from what i was able to work out21:48
@mordred:waterwanders.comyeah. of course, yarn wanted to be an npm replacement - so I invoke https://xkcd.com/927/22:38

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