Wednesday, 2020-12-16

*** tosky has quit IRC00:04
ianwcorvus: thanks for setting up; https://gerrit.googlesource.com/plugins/zuul-results-summary/+/refs/heads/main imported00:34
*** goneri has quit IRC01:10
*** wuchunyang has joined #zuul01:16
*** mordred has quit IRC02:38
*** mordred has joined #zuul02:42
*** mgoddard has quit IRC02:58
*** rfolco has joined #zuul03:11
*** rfolco has quit IRC03:32
*** wuchunyang has quit IRC04:04
*** bhavikdbavishi has joined #zuul04:04
*** rlandy has quit IRC04:46
*** bhavikdbavishi has quit IRC04:53
*** bhavikdbavishi has joined #zuul04:54
*** wuchunyang has joined #zuul04:54
*** wuchunyang has quit IRC04:59
*** vishalmanchanda has joined #zuul05:02
*** hamalq_ has quit IRC05:16
*** evrardjp has quit IRC05:33
*** evrardjp has joined #zuul05:33
*** wuchunyang has joined #zuul05:51
*** bhavikdbavishi has quit IRC05:51
*** bhavikdbavishi has joined #zuul06:18
*** bhavikdbavishi1 has joined #zuul06:35
*** bhavikdbavishi has quit IRC06:37
*** bhavikdbavishi1 is now known as bhavikdbavishi06:37
*** bhavikdbavishi has quit IRC06:43
*** jfoufas1 has joined #zuul06:50
*** zenkuro has quit IRC06:55
*** zenkuro has joined #zuul06:56
*** mach1na has joined #zuul07:05
iceyI'm having trouble setting up Zuul's websocket behind nginx, I'm currently using something like https://pastebin.ubuntu.com/p/F9FtZxfM4J/ for the location that should be doing the websocket, but I'm getting exceptions like: `ws4py.exc.HandshakeError: Header Upgrade is not defined` when actually trying to load the log streams07:26
*** bhavikdbavishi has joined #zuul07:30
*** bhavikdbavishi1 has joined #zuul07:33
*** bhavikdbavishi has quit IRC07:35
*** bhavikdbavishi1 is now known as bhavikdbavishi07:35
*** mach1na has quit IRC07:41
*** jfoufas1 has quit IRC07:43
iceyand it turns out that it's my bad nginx config, nevermind :)07:45
*** piotrowskim has joined #zuul07:48
*** jcapitao has joined #zuul07:58
*** mach1na has joined #zuul08:01
*** mach1na has quit IRC08:06
*** mach1na has joined #zuul08:11
*** rpittau|afk is now known as rpittau08:18
*** tosky has joined #zuul08:33
*** wuchunyang has quit IRC08:34
*** mgoddard has joined #zuul08:46
*** jpena|off is now known as jpena08:56
*** bhavikdbavishi has quit IRC09:03
*** mgoddard has quit IRC09:06
*** mgoddard has joined #zuul09:07
*** bhavikdbavishi has joined #zuul09:12
zbr|roverdid anyone look at opendev-promote-javascript-deployment-tarball job on zuul?09:13
zbr|roverit was broken for weeks09:13
zbr|roverlast success was 15 days ago.09:13
*** bhavikdbavishi1 has joined #zuul09:15
*** bhavikdbavishi has quit IRC09:16
*** bhavikdbavishi1 is now known as bhavikdbavishi09:16
zbr|roverapparently "{{ build.json[0] }}" is causing a  list object has no element 0 failures09:17
*** LLIU82 has joined #zuul09:24
LLIU82 I have a change regarding gitlab timestamp for review. https://review.opendev.org/c/zuul/zuul/+/76599009:25
openstackgerritSorin Sbârnea proposed zuul/zuul-jobs master: Debug download-artifact  https://review.opendev.org/c/zuul/zuul-jobs/+/76728609:28
*** hashar has joined #zuul09:32
*** vishalmanchanda has quit IRC09:36
*** smyers_ has joined #zuul09:40
*** smyers has quit IRC09:42
*** smyers_ is now known as smyers09:42
*** tosky_ has joined #zuul09:47
openstackgerritSorin Sbârnea proposed zuul/zuul-jobs master: Avoid download-artifact failure with no artifacts  https://review.opendev.org/c/zuul/zuul-jobs/+/76728609:48
*** tosky is now known as Guest2437209:49
*** tosky_ is now known as tosky09:49
*** Guest24372 has quit IRC09:50
*** mach1na has quit IRC09:52
*** mach1na has joined #zuul09:54
*** CraigR has joined #zuul09:56
avassWe had ten seconds of sun today. That got punished with fog so thick I can't see further than five metres.09:57
*** mach1na has quit IRC10:00
*** mach1na has joined #zuul10:00
*** CraigR has quit IRC10:04
*** nils has joined #zuul10:06
*** vishalmanchanda has joined #zuul10:07
*** wuchunyang has joined #zuul10:09
zbr|roveri guess if I will see sun here, i will go out right away but my hopes are low till march10:09
*** wuchunyang has quit IRC10:13
iceyis the pipeline the only place that concurrency can be controller? ie: I have a job that I'd like to limit to X at one time10:20
*** LLIU82 has quit IRC10:23
avassicey: I guess you could limit the nodeset or use a semaphore for that10:41
avassI mean limit the number of nodes in nodepool10:41
iceyavass: yeah, continuing with the docs, I also found a sempahore which seems like the perfect option10:41
iceyI'd rather not limit the nodes in the pool to controle it as there are multiple types of jobs that my changes should trigger (lint, unit tests, functional tests) and the functional tests are really the only one that should have a limit seperate from the nodepool10:42
avassyeah but you can use separate labels for them :)10:49
avassbut if semaphores work I'd stick with that10:49
avasszbr|rover: you also affected by permanent overcast?10:51
zbr|roveravass: more or less, England weather.11:06
avasszbr|rover: we've had it since the beginning of november :(11:14
*** mach1na has quit IRC11:15
*** holser has joined #zuul11:37
avassAny reason why registerConnections is only ever run during startup?11:41
*** jcapitao is now known as jcapitao_lunch11:42
avassand not during fullReconfigure for example11:42
*** msuszko has quit IRC11:45
*** msuszko has joined #zuul11:47
iceyavass: doing a different label actually sounds like a very cool idea as well for entirely different reasons so I might end up doing both :-P11:53
lyrHi there11:56
lyrnodepool dib-image-delete debian-10-0000000008 tells me "Cannot delete a build in progress". How can I force this ? The build is dead or stuck atm, log file hasn't changed for 10 min11:57
lyrMost likely my fault has I restarted nodepool-builder service while it was building11:57
*** rfolco has joined #zuul12:01
avasstobiash: is the latest patch set on aws nodepool builder up to date?12:05
avassI want to start experimenting :)12:05
avassjonass: ^ ?12:06
jonassavass: yes this is up to date (documentation and tests are not yet finished though). But it is already running in our int environment :)12:08
avassjonass: nice :912:13
*** jfoufas1 has joined #zuul12:19
tobiashlyr: if you restarted the nodepool-builder a new build should be already running. The failed build attempt should be deleted automatically after the next successful build12:31
*** jpena is now known as jpena|lunch12:33
*** zenkuro has quit IRC12:41
*** zenkuro has joined #zuul12:41
*** zenkuro has quit IRC12:49
*** zenkuro has joined #zuul12:49
*** jcapitao_lunch is now known as jcapitao12:59
*** sduthil has joined #zuul13:05
*** rlandy has joined #zuul13:12
*** jpena|lunch is now known as jpena13:33
*** bhavikdbavishi has quit IRC13:35
avassjonass: any planned changes to what already exists or have you found any critical errors with it so far?13:46
avasswondering if it's worth setting up some experimental images connected to our zuul built with that13:47
avassotherwise it's working great, though the import through s3 is a bit slow. not sure if that could be optimized easily though13:47
jonassavass: Concerning the import, there i would just like to change it to vhd (this is supported by amazon, and then the upload is faster as the vhd images are only have as big). But maybe i do this with a later change, as the upload time is not that big of an issue.13:51
jonassThe import task itself is unfortunately rather slow (i think more than 20 minutes). But so far, i did not see anything how this could be improved.13:51
jonassBut, i have not yet actively researched that.13:52
avassthe only way I know of that could be faster is to enable dib to use a chroot and snapshot the chroot13:52
jonassOtherwise, i think it should run okay so far.13:52
avassthat should bypass s3 completely13:52
avassyeah it's not a problem but a bit annoying13:53
avassI mean enable dib to use an ebs mounted chroot :)13:53
avassand snaptshot the ebs13:53
jonassAh ok, yes that's a good point, i haven't tried yet how long this takes on AWS but that could be faster13:54
avassbut that would require nb to run in aws so the s3 option is good to have as well13:54
tobiashavass: since that's then an aws only solution I wonder if dib is the right tool for that kind of optimization13:55
avassyeah exactly13:55
jonasstobiash: yes I would also agree13:55
avassat that point it could be better to allow nodepool to use packer which already does that13:55
mordredyeah - it could be a nodepool specific thing - have dib make the image as normal, then just have the "upload" drive mount an ebs volume, unpack the image into it, unmount it and snapshot it13:55
tobiashif such an optimization is wanted I guess one would need into aws native ways of building images and leverage those as an optional way of image building13:56
avassmordred: or that13:56
mordredyou could have that nodepool driver really only work if the builders are running in aws - but it might not be a terrible path13:56
tobiashmordred: ok, that would be the third option to combine dib with an optional fast upload track13:57
mordredand you keep the benefit of dib of starting from scratch instead of from existing cloud base images13:57
openstackgerritDinesh Garg proposed zuul/zuul-jobs master: Allow customization of pip and chart testing binary  https://review.opendev.org/c/zuul/zuul-jobs/+/76735413:57
mordredyou could maybe even get fancy and detect whether the builder node is running in aws, if so use the ebs path, if not use the s3 path14:01
jonassAlso a good idea, should be doable14:04
avassthat should be possible14:04
mordredooh. IN FACT - to pull in an idea from avass ... (although this should maybe be an advanced knob)14:09
mordredwhat dib does already is "create chroot, update files in chroot, create image from chroot contents"14:09
mordredand you can control, iirc, the location of the chroot with dib command line arguments14:10
*** wuchunyang has joined #zuul14:11
mordredso maybe a setup where you just pre-create the chroot dir, mount an ebs volume in it, tell dib to use it - and to not delete the chroot when it's done14:11
mordredthat way you could avoid the "create image file" and "unpack image file" steps - really only an advantage if you're _only_ working on aws - as otherwise you'd want the image files to get created as normal14:11
*** jfoufas1 has quit IRC14:12
mordredit might be harder because it would combine knowledge of uploading at building time - which is a bit of a layer violation in the current model14:12
*** wuchunyang has quit IRC14:15
fungizbr|rover: i think we had some earlier discussions about deprecating the tarball deployment method for the tarball bits, but i don't recall if anyone identified what broke with that job14:17
zbr|roverfungi: well, a made a simple fix for the moment. you seen it?14:17
zbr|roverif results is empty, avoid a failure14:18
funginope, sorry, still caffeinating14:18
fungiwhich one?14:18
zbr|roverhttps://review.opendev.org/c/zuul/zuul-jobs/+/76728614:18
* zbr|rover going for another coffee14:18
avassmordred: could be useful but I letting nodepool mount an ebs is probably going to be a big time saver anyway and I don't think packing/unpacking is gonna take long compared to that14:19
avassand we'll probably be using both aws and azure, so you can expect azure support for nodepool builder in the future :)14:20
fungizbr|rover: did you see tristanC's comment on that yet? should we be skipping the upload in such cases?14:22
zbr|roverfungi: yes, but I still think that the current behavior is unacceptable (exception).14:23
zbr|roverif desired, I could also add a "fail" for the case the list of artifacts is empty.14:23
fungizbr|rover: just wondering if uploading an empty tarball will be even worse than breaking14:23
zbr|roverIMHO having a job that fails consistently for long time is worse as it creates bad habit of ignoring failed jobs.14:24
zbr|roverin these two weeks, we likely had >100 merges to the repo, but we did nothing. I do not think I was the only one observing that failure.14:25
zbr|roverlikely we can remove the job from running, but we should also fix the role to avoid such an ugly/confusing ansible failure14:26
fungii'm not disagreeing that we should fix the job, just suggesting that it's "failed safe" and not uploaded incomplete/empty tarballs which users might wind up pulling14:26
fungiif we work around that and tell it to upload anyway even when expected files are missing, that seems like it would be broken in a much worse way14:27
mordredavass: ++14:28
fungizbr|rover: right now the breakage means users who are relying on those tarballs to fetch the javascript bits of the webui are stuck on an old stale copy, rather than getting a new broken one14:28
avassmordred: I thought the azure driver was finished?14:29
mordredavass: yes! it is14:29
mordredduh14:29
zbr|roverfungi: for the moment, I will update the role to end with a fail call if there is nothing instead of silently pass. ok?14:29
* mordred isn't really fully here :)14:29
avasshaha14:30
avassmordred: though we'll see if we bump into some problems using it. I see that it doesn't have any private-ip toggle like the aws drvier does for example14:30
fungizbr|rover: do you happen to know why it's not building those files any longer?14:31
zbr|roverfungi: nope, i did not had time to investigate (very busy week)14:31
openstackgerritPaul Belanger proposed zuul/zuul-jobs master: DNM - debug tox siblings  https://review.opendev.org/c/zuul/zuul-jobs/+/76736114:35
tobiashavass: the azure driver is finished (without image support), however I don't know of any productive user yet, so expect problems when scaling up ;)14:39
avasstobiash: yeah that's gonna be fun since we need azure for nested virt currently. I want to see a zuul-native solution for that but it's getting some friction from non-zuul users :(14:44
tobiashavass: you're sure you want productively use nestedvirt?14:44
avassno14:44
tobiashwe have a half year odyssee behind up and end up with static nodes on bare metal for this use case14:45
avassyeah the problem is that it's a different organization creating the tool with a completely different ci setup14:45
tobiashavass: I just can give you this advice: don't try on openstack, and on azure carefully read the small written conditions ;)14:46
tobiash(and have a fall-back plan)14:48
avasstobiash: yeah they're gonna be using the same solution with nested virt in azure, so our fallback plan is pointing to zuul/nodepool ;)14:48
fungiour experience with nested virt acceleration (at least for linux) is that it is highly sensitive to the versions of the three kernels involved (host, guest, nested-guest)14:49
tobiashexactly, poc virtual validation worked, then under load it became highly unstable with all sorts of deep in the kernel embedded issues14:50
tristanCfungi: it seems like we don't rebuild the javascript tarball when a change doesn't modify web/ content, thus ideally we shouldn't try to promote in that situation14:50
tobiashespecially if the nested-guest is a custom ecu image -> don't even try it14:50
avasstobiash: :)14:51
fungitristanC: oh, we should skip the whole job if web content doesn't change?14:51
tristanCfungi: if that is possible yes14:51
fungiif it's actually run in the promote pipeline (change-merged trigger) i think it should be possible. if it's run in the post pipeline (ref-updated) then file filters won't work14:52
*** hashar has quit IRC15:03
*** ikhan has quit IRC15:05
*** ikhan has joined #zuul15:05
openstackgerritPaul Belanger proposed zuul/zuul-jobs master: DNM - debug tox siblings  https://review.opendev.org/c/zuul/zuul-jobs/+/76736115:07
pabelangermordred: so, we have a use case of a project, that isn't python (so no setup.cfg) and uses tox.  I'm trying to see how to get tox siblings to still work^ any ideas on we can skip comparing the pkg name?15:11
mordredpabelanger: I thought we had support for non-python projects already15:12
openstackgerritDinesh Garg proposed zuul/zuul-jobs master: Allow customization of pip and helm binary  https://review.opendev.org/c/zuul/zuul-jobs/+/76735415:12
mordredpabelanger: but - maybe what we did was just add code to read setup.cfg directly to support projects without a setup.py15:12
pabelangerHmm, I _think_ a setup.cfg file is needed15:12
mordredpabelanger: maybe it's ok to do a check for setup.cfg existing and if it doesn't to skip the package name comparison?15:13
pabelangerwfm15:14
mordredpabelanger: oh - it's more complicated than that15:17
mordredno - nevermind. the more complicated code I was looking at was for identifying cloned repos as siblings. that does need the package to be a python package (else it cant' really get installed)15:19
mordredpabelanger: we currently bail early if there's no setup.cfg - I think we might want to add a flag to override that behavior, otherwise it's a behavior change that might have hard to uderstand impact somewhere15:20
pabelangeryah, I think that is fair15:20
pabelangerlet me try to get it working first15:20
openstackgerritPaul Belanger proposed zuul/zuul-jobs master: DNM - debug tox siblings  https://review.opendev.org/c/zuul/zuul-jobs/+/76736115:21
*** jfoufas1 has joined #zuul15:28
avassshould squashfs-tools be part of nodepool builder?15:31
avasshad to install that to get ubuntu-bionic build working. am I missing something obvious?15:32
*** bhavikdbavishi has joined #zuul15:32
openstackgerritDinesh Garg proposed zuul/zuul-jobs master: Allow customization of pip and helm binary  https://review.opendev.org/c/zuul/zuul-jobs/+/76735415:33
openstackgerritDinesh Garg proposed zuul/zuul-jobs master: Allow customization of pip and helm binary  https://review.opendev.org/c/zuul/zuul-jobs/+/76735415:53
*** jpena is now known as jpena|off15:57
fungipabelanger: sorry to be a contrarian, but if it's not a python project then why tox? wouldn't something like make be better for non-python cases (granted some of us have waffled for years on whether make might be better even for python cases)?15:58
*** bhavikdbavishi has quit IRC15:58
funginot that i'm necessarily opposed to supporting non-python projects with our python-specific roles, just curious about the use case more than anything15:59
*** jpena|off is now known as jpena15:59
pabelangerfungi: mostly because of tox-siblings, I know of no other way to use depends-on (via zuul-jobs) without writing a bunch of new code15:59
fungioic15:59
fungiand yeah we have some similar mechanisms for container image based jobs, but it does require a bit of finesse to implement16:00
fungii guess this is something which has python-based dependencies but isn't itself in python?16:01
pabelangerright, the use-case is actually container project, that uses a python project to build the container16:01
pabelangerso, we use tox as entrypoint, given zuul has a lot of jobs around it, over makefiles16:01
openstackgerritPaul Belanger proposed zuul/zuul-jobs master: Create tox_package_name for tox role  https://review.opendev.org/c/zuul/zuul-jobs/+/76736116:13
mhuhello zuul-maint, can we get https://review.opendev.org/c/zuul/zuul-client/+/765999 https://review.opendev.org/c/zuul/zuul-client/+/765203 https://review.opendev.org/c/zuul/zuul-client/+/765313 and https://review.opendev.org/c/zuul/zuul-client/+/765553 reviewed please?16:18
fungipabelanger: cool, so in that case tox-siblings makes sense, because you have python projects you need to install with it16:18
fungieven if the triggering project is not itself in python16:19
*** hashar has joined #zuul16:29
openstackgerritPaul Belanger proposed zuul/zuul-jobs master: Create tox_package_name for tox role  https://review.opendev.org/c/zuul/zuul-jobs/+/76736116:29
*** zenkuro has quit IRC16:32
mordredfungi: I think we've had that use case with other things ourselves - like zuul-jobs and system-config16:32
mordredbut we just added a setup.cfg :)16:32
pabelangeryah, we've used setup.cfg for the most part too.16:35
pabelangerbut, it's difficult to explain to non-python folks why we need it in CI :)16:36
pabelangerthe good news is, they are mostly too busy loving speculative containers to fuss too much16:36
fungipabelanger: we could add a role which renames this_is_not_a_setup.cfg to setup.cfg and then you just insert that immediately before the tox roles? ;)16:40
fungi.sibling-deps.ini16:40
fungiwhatever you like, the filename could even be a configurable parameter16:40
*** wuchunyang has joined #zuul16:59
pabelanger++17:00
pabelangerunrelated, and likely wrong channel17:00
pabelangerhas anyone used poetry yet, to manage python dependencies?17:00
*** wuchunyang has quit IRC17:03
*** rpittau is now known as rpittau|afk17:11
tristanCpabelanger: yeah, and i found it super convenient17:22
pabelangertristanC: looking to maybe create a plugin for it, to get version info out of pbr17:22
pabelangerseems possible, by looking at something like: https://github.com/mtkennerly/poetry-dynamic-versioning17:23
*** jcapitao has quit IRC17:25
tristanCpabelanger: that plugin seems like the way to go17:26
tristanCpabelanger: shouldn't we add poetry job to zuul/zuul-jobs?17:29
pabelangermordred: fungi: https://review.opendev.org/c/zuul/zuul-jobs/+/767361 seems to do what I need for tox siblings17:29
*** hamalq has joined #zuul17:30
avassmordred, pabelanger: I think it would help if pip supported something like 'pip develop' on a project so that if you're trying to install that dependency it will install it from a local version instead17:34
avassnim does this really good: https://github.com/nim-lang/nimble#nimble-develop17:34
*** hamalq_ has joined #zuul17:34
*** hamalq has quit IRC17:38
tristanCavass: i think that's one of the reason projects are using poetry instead of pip17:41
avasstristanC: Yeah I've heard of that but haven't looked into it yet17:43
webknjaz@pabelanger: I've had a bad experience with Poetry + the maintainer is rather unreliable. So I stick with pip + pip-tools..17:45
avasspoetry looks a lot like npm for python though17:46
fungipabelanger: for clarity around the poetry discussion, you're looking for a mechanism whereby when you tell poetry to install a project from source and that project is using pbr via setuptools to generate package metadata, poetry would be able to read the additional git ref into out of the package's pbr json metadata file?17:46
pabelangerfungi: yup, that is right17:46
webknjaz@avass: In a way, yes. But it also makes questionable decisions that break things17:46
pabelangertoday, you have to hardcode the version string in pyproject.toml17:47
fungier, read the additional git ref info out of the package's pbr json metadata file17:47
fungipabelanger: oh, the entire version? that's a different problem, and not even pbr specific17:47
fungipbr embeds the version into the normal package metadata, so anything which can read the installed package version should be able to get it17:48
pabelangeryah, ansible-builder uses poetry for reasons (I don't fully understand). But they also want to use pbr, to avoid hardcoding version strings in git, and to make releases easier17:48
fungithe only separate pbr-specific metadata is for stuff like tracking the originating git ref id17:48
fungiso if you can make poetry read standard package metadata to get the version, that should be all you need unless you want the extra git bits17:49
fungiin modern python stdlib that's something like importlib.metadata.distribution(project_name).version17:51
avasstbh from what I've seen using lockfiles for all your dependencies causes more problems than version being bumped now and then and breaking like pip does17:52
webknjaz@pabelanger: there's a 3-year old feature request asking for SCM-based versioning that is still getting "me too"s. And I've even implemented a PoC for that. But the author does not allow core contributions from people who are not him and this is a known blocker.17:52
fungiit doesn't seem like this case would need poetry to "support" scm-based versioning, just reading versions from normal package metadata (whatever builds the package just needs to write the version into the metadata)17:54
fungipython packages have standardized metadata for precisely this reason17:55
fungiit's an interface. things which can write the standard metadata and things which can read the standard metadata will be interoperable17:55
fungibecause... standard17:55
webknjazI've also heard rumors that the person isn't known for finishing the projects. And I know that now he refuses to collaborate with the rest of the packaging community unless everyone starts using his own dependency resolver. So combined with all of this, I've just given up on Poetry.17:56
*** jpena is now known as jpena|off18:02
tristanCwebknjaz: that's unfortunate, the tool is very convenient to use though18:03
webknjazAs usual, there's ups and downs18:04
avasswebknjaz: sounds like the project needs a fork ;)18:11
*** nils has quit IRC18:29
*** wuchunyang has joined #zuul19:00
*** wuchunyang has quit IRC19:05
*** jfoufas1 has quit IRC19:55
*** SpamapS has quit IRC20:53
*** rfolco has quit IRC20:56
*** vishalmanchanda has quit IRC20:56
*** hashar has quit IRC21:13
*** rlandy is now known as rlandy|bbl21:43
*** wuchunyang has joined #zuul23:02
*** wuchunyang has quit IRC23:06
*** piotrowskim has quit IRC23:19
ianwany thoughts on making a type of job that is dependent on others, but always runs, even if some of the dependencies fail?  like a "finally" block i guess23:21
ianwthe context is the mirror jobs, which currently only run the release job if every platform build job completes23:22
ianwi could reorganise this without such a thing, just a thought23:23
fungiso dependent as in ordered to run after, not dependent on th eoutcome23:33
corvusianw: yeah, i think we've batted around the idea of a 'cleanup' job23:38
ianwfungi: yes, in essence23:39
corvuscould add another boolean flag like this one https://zuul-ci.org/docs/zuul/reference/job_def.html#attr-job.dependencies.soft23:40
ianwyeah, that's what i was thinking.  but just thinking at this stage, don't want to yak shave :)23:40

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