[01:26] <veebers> thumper oh lol, sorry to blank you - I'm not actually online atm (EOY leave :-D) How's things?
[01:51] <hpidcock> tlm: can you review this plz https://github.com/juju/juju/pull/11044
[01:52] <thumper> veebers: I thought it could have just been a bouncer reconnect
[01:52] <thumper> veebers: I'm good, you?
[01:52] <thumper> veebers: we should catch up for a coffee sometime
[01:53] <veebers> thumper can't complain - busy with the boy. Aye I would be keen!
[01:55] <thumper> veebers: he must be getting a lot bigger now
[01:56] <veebers> thumper grows faster than a weed! On a fine day we could go play a round of disc golf if you wanted something more energetic than coffee :-D In the week after xmas  I could bring Link too
[01:56] <tlm> hpidcock: sure
[01:57] <thumper> veebers: not sure how energetic I'll feel :)
[01:57] <thumper> babbageclunk: I think I need you again
[01:57] <veebers> :-D
[01:58] <wallyworld> hpidcock: and here it is https://github.com/juju/juju/pull/11045
[01:59] <wallyworld> babbageclunk: you ready for me to look at your test issue?
[01:59] <hpidcock> just a casual 222 files changed
[01:59] <wallyworld> mostly imports :-)
[02:25] <thumper> hpidcock, babbageclunk: https://github.com/juju/juju/pull/11046 for 2.7 merge
[02:25] <thumper> can I get you two to cast your eyes over it to make sure I didn't fubar it
[02:28] <hpidcock> thumper: yep, the files I was concerned about look how they should
[02:29] <thumper> hpidcock: coolio
[02:34] <hpidcock> wallyworld: I'm halfway and the green lines are starting to merge with the red lines haha I'm going to take a break from this PR for a bit
[02:34] <wallyworld> sure, np
[02:47] <babbageclunk> thumper: looking
[02:49] <wallyworld> babbageclunk: so in https://github.com/juju/juju/pull/11013, what test is it that is failing?
[02:50] <babbageclunk> wallyworld: hang on, getting you a link...
[02:50] <wallyworld> and PR has latest code pushed?
[02:50] <babbageclunk> it's in api/crossmodelrelations
[02:50] <babbageclunk> yup
[02:51] <babbageclunk> wallyworld: https://github.com/juju/juju/pull/11013/files#diff-d93493a140cf12285d568802cca83761R363
[02:52] <wallyworld> righto
[02:53] <babbageclunk> fails with: https://paste.ubuntu.com/p/wwgkyScvFY/
[02:53] <babbageclunk> Instead of coming in as something that I can assign a value to, result comes in as just interface{}
[02:54] <babbageclunk> Presumably it's because of the dance that happens with the commonWatcher inside the client-side watchers (constructing a new result type and passing it around as interface{})?
[03:00] <wallyworld> not sure yet, will look
[03:01] <wallyworld> just finishing a fight with go dep. go dep sucks
[03:26] <babbageclunk> it's just dep
[03:27] <babbageclunk> thanks - no rush, still wrestling with the remoterelations worker tests
[03:37] <hpidcock> thumper: you still handling that forward port?
[03:41] <thumper> hpidcock: yeah, got an expected error
[03:41] <thumper> in babbageclunk's stuff
[03:41] <thumper> babbageclunk: may need your assistance again
[03:42] <babbageclunk> ok
[03:48] <thumper> that was easier than I thought it was going to be
[03:48] <thumper> ... which is good
[03:56] <babbageclunk> thumper: normally it goes the other way
[03:57] <thumper> babbageclunk: true that
[04:09] <wallyworld> babbageclunk: i'm not sure either at this point how to deference that ptr. Goland knows how to so it clearly can be done
[04:16] <wallyworld> babbageclunk: actually, this works, but need to figure out how to do the assert
[04:16] <wallyworld> 				res := reflect.ValueOf(result).Elem()
[04:16] <wallyworld> 				res.Set(reflect.ValueOf(&params.RelationUnitsWatchResult{}))
[04:16] <wallyworld> 				//c.Assert(res, gc.FitsTypeOf, &params.RelationUnitsWatchResult{})
[04:16] <wallyworld> 				*(res.Interface().(*params.RelationUnitsWatchResult)) = params.RelationUnitsWatchResult{
[04:16] <wallyworld> 					Error: &params.Error{Message: "STOPPED"},
[04:16] <wallyworld> 				}
[04:17] <hpidcock> you should be able to dereference a interface ptr https://play.golang.org/p/mlyAZHqvWPJ
[04:19] <wallyworld> yeah, that works need to see if it works with the assert stuff
[04:31] <wallyworld> hmmm, we still need all the reflect machinery to wrie stuff up. but can add a check to start with and avoid the checker
[04:31] <wallyworld> 				_, ok := result.(interface{}).(*params.RelationUnitsWatchResult)
[04:31] <wallyworld> 				if !ok {
[04:31] <wallyworld> 					c.Fail()
[04:31] <wallyworld> 				}
[04:31] <wallyworld> 				res := reflect.ValueOf(result).Elem()
[04:31] <wallyworld> 				res.Set(reflect.ValueOf(&params.RelationUnitsWatchResult{}))
[04:31] <wallyworld> 				*(res.Interface().(*params.RelationUnitsWatchResult)) = params.RelationUnitsWatchResult{
[04:31] <wallyworld> 					Error: &params.Error{Message: "STOPPED"},
[04:31] <wallyworld> 				}
[04:32] <wallyworld> babbageclunk: the above will unblock for now at least
[04:38] <thumper> https://github.com/juju/juju/pull/11047 for someone...
[04:38] <thumper> provides exposing the underlying replicaset status in juju_metrics and juju_engine_report
[04:53] <wallyworld> thumper: done
[04:53] <thumper> wallyworld: ta
[04:53] <wallyworld> tlm: you going ok on the pylibjuju bug?
[04:54] <tlm> bug yes
[04:54] <tlm> python venv no
[04:54] <wallyworld> joy
[04:54] <wallyworld> hpidcock can probs help
[04:54] <wallyworld> don't forget to add a trello card
[04:54] <tlm> it will work soon, hpidcock has been. Having an issue installing requirements. Might be a version mismatch
[04:54] <tlm> yep will do now
[04:54] <wallyworld> ty
[04:56] <hpidcock> wallyworld: I won't let him drown
[04:57] <wallyworld> hpidcock: did the pr explain ok how bakery.v2-unstable in places still?
[04:59] <hpidcock> wallyworld: haha yep makes sense sorry. I must have read it. Went in this ear and out the other
[04:59] <wallyworld> no worries, sorry about the snark :-)
[05:00] <hpidcock> I appreciated the snarky comment
[05:02] <tlm> rage quit, problem is because python remove a function from an interface between 3.7 3.8. So much for backwards compatibility
[05:03] <hpidcock> go 1.0 promise keeps me loving go
[05:06] <hpidcock> wallyworld: I'm happy with the PR now. Hopefully it lands without 🔥
[05:07] <wallyworld> hpidcock: awesome, and many thanks, those sorts of prs are horrible to review (and even worse to write, took me ages to get stuff sorted).
[05:07] <hpidcock> they are fine, one day I'll return the favour with a 1000 file PR :P
[05:08] <wallyworld> huh, only 1000, i eat then for breakfast
[05:13]  * thumper EODs
[05:13] <thumper> see y'all tomorrow
[06:06] <hpidcock> wallyworld: can a subordinate unit be a subordinate to multiple parents?
[06:06] <hpidcock> hmm I dunno if that makes sense
[06:06] <wallyworld> no, you need to install the charm a second time and alias the app name
[06:06] <hpidcock> ok
[06:07] <hpidcock> weird how the "subordinate-to" field is an array
[06:07] <wallyworld> hmmm, maybe i'm wrong then
[06:07] <wallyworld> i would have been 99.9% sure i was right
[06:17] <hpidcock> yeah I'm getting more and more confused as I read the code
[06:19] <hpidcock> processApplicationRelations in apiserver/facades/client/client/status.go
[06:19] <hpidcock> makes me think it "could"
[10:11] <stickupkid> I find it interesting that on first use of juju, we break --format directives :|
[14:08] <gnuoy> stickupkid, do you know when the next release to pypi might be for libjuju ?
[14:09] <stickupkid> gnuoy, might be worth pinging rick_h
[14:09] <gnuoy> stickupkid, ack, thanks
[14:19] <rick_h> gnuoy:  sorry, it'll be after the break I think. There's some WIP that's going into the next release for some missing items that we're doing on roadmap
[14:20] <gnuoy> rick_h, sure, np, thanks
[14:20] <rick_h> gnuoy:  the other half of Juju is doing them so I don't have really solid insight into what % of the way they are but it feels a bit like there's another weekish of work there
[16:35] <achilleasa> hml: I am looking at the code in runner/debug/server.go:43. Can you tell how it figures out what script to run?
[16:36] <hml> achilleasa:  looking
[16:37] <hml> achilleasa:  I think i know - HO?
[16:37] <achilleasa> give me 5'
[16:38] <hml> achilleasa:  sure - it’s related to juju debug-hooks
[16:49] <hml> achilleasa:  a hook is not actually run, just does setup to the debug-hooks tmux session to let the user know what hook would have been run.  so the user can run it themselves and debug the results, try again etc.
[16:50] <hml> we do need a way to “hook” into that for process-hook.
[16:54] <achilleasa> hml: can you join daily?
[16:54] <hml> achilleasa:  omw
[22:01] <babbageclunk> wallyworld: ah, so it seems the problem is that it's an interface{} wrapping another interface{} wrapping the real type, and the checker machinery is only going down one level?
[22:02] <wallyworld> babbageclunk: yeah, i think that's the case
[22:02] <babbageclunk> awesome - thanks for picking that apart! Think I've got all of the other tests fixed, just incorporating that now.
[22:03] <wallyworld> awesome
[22:29] <babbageclunk> wallyworld: hmm, I don't think that does it - that code always succeeds, even if the result type is wrong
[22:31] <babbageclunk> ie, I've changed the newResult func to use the wrong type, and I can't get the test to fail
[22:32] <wallyworld> hmmm, well that sucks
[22:33] <wallyworld> babbageclunk: this line is meant to cater f rot that
[22:33] <wallyworld> _, ok := result.(interface{}).(*params.RelationUnitsWatchResult)
[22:33] <wallyworld> ok should be false if the type is wrong surely?
[23:09] <babbageclunk> doesn't seem to fail...
[23:09] <babbageclunk> wallyworld: oh yeah - that fails, but it also fails if the type is right.
[23:18] <hpidcock> small forward port from 2.7 - develop https://github.com/juju/juju/pull/11048
[23:22] <babbageclunk> hpidcock: did you have any conflicts?
[23:22] <hpidcock> 0 conflicto
[23:22] <babbageclunk> sweet
[23:23] <babbageclunk> I'm going to get so many when I merge the remaining cmr/appdata stuff
[23:23] <babbageclunk> really looking forward to it
[23:23] <hpidcock> pffft, you'll only have 5000
[23:26] <babbageclunk> hpidcock: approved anyway
[23:27] <hpidcock> thanks :)
[23:34] <wallyworld> babbageclunk: i ran the unit test with the code i pasted and it worked as expected when the type was correct
[23:34] <wallyworld> i didn't test when the type was wrong, but i can't see how it wouldn't fail
[23:35] <babbageclunk> :(
[23:35] <babbageclunk> might try in the debugger
[23:37] <wallyworld> so it passes for you? but dosn't fail?
[23:39] <babbageclunk> no, that check always fails
[23:39] <babbageclunk> if I take it out, the res.Set always succeeds
[23:39] <wallyworld> whaaaat
[23:40] <babbageclunk> ikr
[23:40] <wallyworld> maybe get someone else to pull the code and try it
[23:40] <babbageclunk> Looking at the watcher code I can see that I'm missing a case where the watch result has an error - I'm going to handle that and then tweak the test some more
[23:40] <babbageclunk> wallyworld: you don't believe me! It's true though
[23:41] <hpidcock> I'm happy to help, let me know
[23:44] <babbageclunk> thanks hpidcock - just trying something else, will v likely hit you up after that
[23:52] <babbageclunk> ugh, trying to read the json unmarshalling code to see how it manages to store info into the result in this circumstance
[23:54] <babbageclunk> yeah, that's too Lovecraftian for my taste