[04:48] <jam> morning all
[08:11] <Chipaca> moin moin moin
[09:09] <jam> Chipaca,  o/
[09:15] <Chipaca> jam: how's things?
[09:16] <jam> Chipaca, going pretty well. Have a PR on Juju up, and a couple other code reviews to get through.
[09:17] <Chipaca> jam: what's the juju pr about?
[09:17] <jam> Chipaca, fixing an issue with 'juju debug-code' that facu ran into last week
[09:18] <jam> namely, if Juju fires an event that the charm doesn't implement a hook for, Juju would go into error
[09:21] <Chipaca> ah, that one :)
[09:22] <Chipaca> jam: I didn't realise there was a juju-side fix for that, i thought it was on us
[09:22] <jam> Chipaca, no, the issue was that the handler for 'debug-code' was looking for the script to run, and 'executing it anyway' even though it didn't exist
[09:23] <jam> so the open question was whether we should fall back to a bash debugger.
[09:23] <jam> I think you and achilleas and facu all felt like you'd rather not be interrupted
[09:23] <jam> so I went with that route
[09:26] <Chipaca> :+1:
[09:26] <Chipaca> heh, this hexchat is missing my subs tweaks
[09:27] <jam> Chipaca++
[09:28] <jam> hm, maybe that's only in canonical IRC
[10:37] <jam> Chipaca, you both hung for me, I'll rejoind
[11:14] <facubatista> Muy buenos días a todos!
[11:14] <jam> morning facubatista
[11:15] <facubatista> hola jam :)
[12:36] <facubatista> Chipaca, #221 ... can we settle for changing the 'will' for a 'should
[12:36] <mup_> PR #221: ops/main.py: support dispatch <Created by chipaca> <https://github.com/canonical/operator/pull/221>
[12:37] <facubatista> ' in line 181?
[12:39] <Chipaca> facubatista: sure
[12:40] <Chipaca> i'll do that as soon as i have a working dev environment again :-(
[12:40] <Chipaca> right now not even vi works
[12:40] <Chipaca> how hexchat is still up is a mystery :-)
[12:40] <facubatista> Chipaca, what happened?? wild weekend?
[12:41] <Chipaca> facubatista: my new dev machine had to go back to service (remember the 'sticking at 800MHz' thing?), so i'm on my old one, and it was on 16.0 so i'm slowly moving to 20.04 but it has less memory than it should to do that and be productive
[12:42] <Chipaca> (i moved off the old machine when the motherboard stopped liking having more than 4GB RAM)
[12:42] <facubatista> probably too late now, but shouldn't the move from 16 to 20 be *not* slowly? like, installing from scratch?
[12:42] <Chipaca> and lose all my everything? heck no
[12:42] <Chipaca> also i'd miss out on messages like
[12:42] <Chipaca>   assert result == expected, "got: %r expected: %r" (result, expected)
[12:43] <Chipaca> whoops
[12:43] <Chipaca> /usr/lib/python3/dist-packages/urwid/tests/test_canvas.py:232: SyntaxWarning: 'str' object is not callable; perhaps you missed a comma?
[12:43] <Chipaca>   assert result == expected, "got: %r expected: %r" (result, expected)
[12:43] <Chipaca> ^ that
[12:45] <Chipaca> facubatista: but more seriously, I _could_ do a fresh install and then a full backup, but that would take more of my time than just upgrading
[12:45] <Chipaca> s/full backup/full backup restore/
[12:46] <Chipaca> i'll probably do that at some point to drop unity and switch to lubuntu or lumina
[12:47] <Chipaca> huh, that's strange
[12:48] <Chipaca> just got a call from the local hospital thing, they're moving back to pre-covid stuff
[12:48] <facubatista> I got an appointment of May 17 moved to next month, "undetermined when"
[12:51] <Chipaca> facubatista: the week (or 2?) before lockdown started the hospital called me to say they were postponing any non-essential surgery 'indefinitely', and now they're scheduling them back
[12:51] <Chipaca> so it's like they are no longer in a panic
[12:51] <Chipaca> makes sense to me; they're also closing down the big emergency hospital
[12:52] <Chipaca> of course now the knee that's acting up is the other one, so i shouldn't just go in for surgery before a consultant looks at things again...
[12:52] <MarkMaglana> o/
[12:53] <facubatista> hello MarkMaglana
[12:53] <MarkMaglana> hello facubatista!
[12:55] <MarkMaglana> joining the fun in this channel with my fellow FE-in-rotation vgrevtsev :-)
[12:55] <vgrevtsev> \o
[12:56] <Chipaca> MarkMaglana, vgrevtsev: welcome!
[12:57] <facubatista> Chipaca, looks the curve is controlled, kind of https://aatishb.com/covidtrends/?location=United+Kingdom
[12:57] <facubatista> hello vgrevtsev
[12:58] <MarkMaglana> thanks, Chipaca! excited to help with the charming effort on top of the operator framework. :-)
[12:59] <Chipaca> things you don't want to read during an upgrade:  cryptsetup: ERROR: Couldn't resolve device
[13:02] <facubatista> Chipaca, are we doing the "docstrings styles" meeting or you prefer to postpone it for when you stop dancing around missing /dev nodes?
[13:03] <Chipaca> facubatista: trying to get there
[13:03] <Chipaca> firefox just crashed so there's that
[13:04] <Chipaca> give me 5
[13:12] <Chipaca> jam, facubatista, https://r.chipaca.com/docs/_build/html/123/ops.html#ops.testing.Harness.add_relation
[13:20] <Chipaca> https://sphinxcontrib-napoleon.readthedocs.io/en/latest/
[13:20] <jam> Chipaca, I think it is infectious
[13:55] <Chipaca> facubatista, jam, "more papist than the pope"
[14:01] <Chipaca> facubatista: WRT the import PR
[14:01] <Chipaca> facubatista: 1 sec phone
[14:01] <Chipaca> back
[14:01] <Chipaca> facubatista: WRT the import PR
[14:01] <jam> Chipaca, facubatista : https://github.com/canonical/operator/pull/252/files
[14:01] <mup_> PR #252: ops/testing.py: document Harness in Google style <Created by jameinel> <https://github.com/canonical/operator/pull/252>
[14:01] <Chipaca> facubatista: we were talking with jam earlier about it
[14:01] <jam> type annotations and google doc style for Harness
[14:02] <mup_> PR operator#252 opened: ops/testing.py: document Harness in Google style <Created by jameinel> <https://github.com/canonical/operator/pull/252>
[14:02] <Chipaca> facubatista: and were thinking it'd be nice to change things so that users of the fmk just needed to do
[14:02] <Chipaca> facubatista: from ops import CharmBase
[14:02] <Chipaca> facubatista: etc
[14:02] <Chipaca> facubatista: but only for the things that we thought were 'mainstream' public
[14:03] <facubatista> Chipaca, yes, we discussed it too
[14:03] <facubatista> Chipaca, we can do that! it's not a 5' branch, we need to discuss what we will be exposing, right? so my PR will be able to unblock people with current import errors
[14:05] <Chipaca> facubatista: right
[14:06] <Chipaca> facubatista: what I didn't want to do was have your branch close off that possibility :) but i don't think it does
[14:06] <facubatista> right
[14:06] <Chipaca> k
[14:07] <Chipaca> facubatista: wrt testing, why pull it in every time? is that needed to fix the issue at hand?
[14:07] <Chipaca> facubatista: i ask because this would be pulling it in even for in-production charms, which seems strangfe
[14:07] <Chipaca> strange also
[14:10] <facubatista> Chipaca, I included it because we may be importing testing to use the Harness even not in pure unittests.
[14:10] <facubatista> But I can totally remove it
[14:11] <facubatista> from the outside it will not change anything
[14:11] <facubatista> bah, less import time
[14:11] <mup_> PR operator#253 opened: Test harness no backend <Created by jameinel> <https://github.com/canonical/operator/pull/253>
[14:11] <jam> facubatista, Chipaca : https://github.com/canonical/operator/pull/253/files fixes for #241 without the backend call tracing
[14:11] <mup_> PR #253: Test harness no backend <Created by jameinel> <https://github.com/canonical/operator/pull/253>
[14:11] <mup_> Issue #241: _TestingModelBackend incorrectly raises KeyError on missing relation <Created by gnuoy> <https://github.com/canonical/operator/issues/241>
[14:12]  * jam eod 
[14:12]  * facubatista -> errands
[14:24] <Chipaca> facubatista: I don't understand: yes people may be importing testing other than in unittests but why does that mean we need to import it from __init__?
[14:25] <Chipaca> afaict the only thing we _need_ to import are the two that confuse python wrt ordering
[14:25] <Chipaca> or even just the one, the one tha tneeds to come first
[14:41] <facubatista> Chipaca, mmm... yes, probably with just importing one, the import cycle will be solved, but wouldn't it "look" weird?
[14:41] <Chipaca> facubatista: it would, but that's solved by a comment explaining it :)
[14:42] <Chipaca> facubatista: and then when we do the work to pull in exactly what we want in 'ops', it goes away
[14:42] <facubatista> Chipaca, ack
[14:59] <facubatista> Chipaca, pushed change
[15:16]  * Chipaca brb
[15:19] <mup_> Issue operator#254 opened: Improve docstrings to conform the Google Style <Created by facundobatista> <https://github.com/canonical/operator/issues/254>
[15:21] <mup_> Issue operator#255 opened: Incorporate type hinting in all public methods, and check them <Created by facundobatista> <https://github.com/canonical/operator/issues/255>
[15:29] <facubatista> niemeyer, Chipaca, may I get a review on #246? thanks!
[15:29] <mup_> PR #246: Made breakpoint handling code to use already parsed JUJU_DEBUG_AT, and isolated the message showing logic <Created by facundobatista> <https://github.com/canonical/operator/pull/246>
[15:37] <Chipaca> facubatista: will do
[15:37]  * facubatista -> lunch
[15:58] <Chipaca> waaaait
[15:58] <Chipaca> 3.5 didn't have type hints??
[15:58]  * Chipaca checks
[15:58] <Chipaca> yes it did
[16:13] <jam> Chipaca, so the question, is it that it doesn't like ): on a line by itself, or it doesn't like that __init__ doesn't have a -> return hint
[16:13] <jam> It didn't make sense to me to add a return hint to __init__
[16:23] <Chipaca> jam: __init__'s return is ignored AFAICT ¯\_(ツ)_/¯
[16:23] <jam> Chipaca, so, not wrapping to the next line seems to pass on 3.5
[16:24]  * Chipaca would dance if he were a dancer
[16:24] <jam> eg, don't do ',\n):' but just '):'
 waaaait
[16:29] <jam> https://github.com/canonical/operator/pull/252/commits/7e988b3bdc74b7061d5da213ec6ce54a387f5bfa
[16:29] <mup_> PR #252: ops/testing.py: document Harness in Google style <Created by jameinel> <https://github.com/canonical/operator/pull/252>
[16:29] <jam> of course, cut and paste correctly :)
[16:30] <Chipaca> jam: just one thing to note, that isn't important right now but might be later
[16:30] <Chipaca> jam: None isn't a string, and isn't a typing.TextIO
[16:31] <Chipaca> so what you really mean is Optional[typing.Union[str, typing.TextIO]], or equivalently typing.Union[str, typing.TextIO, None]
[16:31] <jam> Chipaca, type annotations seem like they become unwieldy
[16:31] <Chipaca> yes
[16:32] <jam> Chipaca, what syntax would you prefer?
[16:32] <Chipaca> jam: that's what I tried to say, earlier :-/
[16:32] <jam> Optional seems to hint to the user
[16:32] <Chipaca> i like what they do, but they're not exactly gratis
[16:32] <Chipaca> OTOH you can do MyThing = typing.Optional[....]
[16:32] <jam> for things that aren't str or file they feel a lot better
[16:33] <Chipaca> Optional communicates intent better, yes. But it does evaluate to the Union one (so if you stringify it you'll see the Union)
[16:33] <facubatista> Chipaca, meeting?
[16:33] <Chipaca> facubatista: can we move our 1:1 to tomorrow?
[16:33] <facubatista> Chipaca, yes we can
[16:34] <Chipaca> facubatista: I still don't have audio and am a bit cross about that
[16:34] <Chipaca> would rather not do it on the phone again
[16:34] <facubatista> Chipaca, just send the invite :)
[16:34] <facubatista> or, better, first fix the audio then send the invite :p
[16:35] <Chipaca> man, tomorrow is solid meetings
[16:35] <facubatista> Thu
[16:35] <Chipaca> even got a conflict; i'm not going to make the standup
[16:37] <jam> Chipaca, OptionalYAML incoming
[16:41] <Chipaca> facubatista: that's two PRs you could be mergin'
[16:42] <facubatista> yay
[16:43] <mup_> PR operator#221 closed: ops/main.py: support dispatch <Created by chipaca> <Merged by chipaca> <https://github.com/canonical/operator/pull/221>
[16:43] <mup_> PR operator#248 closed: Import internal modules in a controlled way. Fixes #247 <Created by facundobatista> <Merged by facundobatista> <https://github.com/canonical/operator/pull/248>
[16:44] <mup_> Issue operator#247 closed: Circular dependency error after pulling in latest version of framework <Created by gnuoy> <Closed by facundobatista> <https://github.com/canonical/operator/issues/247>
[16:44] <mup_> PR operator#246 closed: Made breakpoint handling code to use already parsed JUJU_DEBUG_AT, and isolated the message showing logic <Created by facundobatista> <Merged by facundobatista> <https://github.com/canonical/operator/pull/246>
[16:44] <mup_> PR operator#251 closed: Fix doctrings for add_relation_unit in ops.testing <Created by gnuoy> <Merged by chipaca> <https://github.com/canonical/operator/pull/251>
[16:47] <Chipaca> facubatista: can you give #253 a pass? it fixes a bug that people are having to work around right now
[16:47] <mup_> PR #253: Test harness no backend <Created by jameinel> <https://github.com/canonical/operator/pull/253>
[16:49] <facubatista> Chipaca, yes
[16:59] <Chipaca> timidity had sequestered /dev/snd/*!
[17:00]  * Chipaca whacks it for its temerity
[17:00] <Chipaca> aaaand, I need to EOD. ttfn at least :-)
[20:19]  * facubatista eods
[21:30]  * Chipaca EODs