[12:46] <gmb> Oh, bugger. Better grab some food.
[12:46]  * gmb -> lunch
[12:59] <gary_poster> gmb, changes look good, thank you
[12:59] <gary_poster> and incidentally, bzr diff -r5 has a significantly different output than bzr diff -r-5
[13:16] <gmb> Heh
[13:20]  * bac relieved. the first two times i tried doing QA with our overlay, qastaging died.  i was beginning to wonder if it was causal.
[13:22] <gary_poster> weird anyway, though :-/
[13:23] <gary_poster> danilos, your mic working today?
[13:24] <danilos> gary_poster, surprisingly, yes (and I first got a cheap headset for 6 euros, spent 20 minutes getting that one to partially work, and then just tried my regulard logitech USB headset and the mic worked); so, now I've got an extra headset just-in-case
[13:24] <gary_poster> heh
[13:24] <gary_poster> ok
[13:24] <gary_poster> and also weird :-)
[13:28] <gary_poster> bac benji danilos gmb call in 2
[13:29] <gmb> k
[13:31] <gary_poster> danilos pyoo hoo
[13:31] <gary_poster> heh
[13:31] <gary_poster> thant's a combination of ping and yoohoo
[13:31] <danilos> mumble won't take my "unmute" clicks
[13:31] <gary_poster> bah
[13:32] <gary_poster> bah
[13:32] <gary_poster> I can hear you
[13:32] <gary_poster> 1 sec
[13:34] <danilos> :((( it's up at 100% cpu
[13:39] <gary_poster> danilos: how goes the "revert lousy xss fix"?
[13:40] <danilos> gary_poster, it's landing, not sure why it didn't land yesterday
[13:40] <gary_poster> ok
[13:40] <gary_poster> and how about add button on structural subscriptrion page
[13:40] <danilos> gary_poster, didn't get any emails from ec2 or pqm, so I resubmitted
[13:40] <danilos> gary_poster, should be up for review in an hour or two
[13:42] <danilos> gary_poster, however, it seems mumble is the cause of all my sound troubles, because I tested with skype earlier today and it all worked fine
[13:45] <gary_poster> danilos can you get on Skype then?
[13:45] <danilos> gary_poster, well, not with my regular USB headset, but yes with the new one
[13:45] <gary_poster> danilos please do it then :-)
[13:45] <danilos> or well, a combination
[13:54] <benji> grr, that's a stupid place to put that button
[14:02] <gmb> danilos: Are you sat inside a washing machine?
[14:02] <bac> gmb: :)
[14:02] <danilos> gmb, hahaha, something like that
[14:03] <danilos> gmb, my setup is a bit weird atm, I am using one headset to listen in, and another for the microphone
[14:03] <gmb> Heh, lovely.
[14:05] <benji> https://wiki.canonical.com/StayingInTouch/Video
[14:08] <danilos> gary_poster, when do we have our call? I'd like to get some food and get my old headset working
[14:08] <bac> fwiw, i'm +1 on using skype as it frees me from being tethered to my laptop.  (i always get the urge for tea when these calls start.)
[14:09] <gary_poster> danilos, propose a time :-)
[14:10] <danilos> gary_poster, 1h50mins?
[14:10] <gary_poster> wfm danilos
[14:10] <danilos> *in*
[14:10] <danilos> gary_poster, excellent, then it's a deal :)
[14:10] <gary_poster> :-) cool
[14:17] <bac> hi benji, could you have a look at https://code.launchpad.net/~bac/launchpad/person-in-team/+merge/55928
[14:17] <bac> it's quite short
[14:17] <benji> sure
[14:20] <benji> bac: approved
[14:20] <bac> benji: thanks
[14:41] <bac> gary_poster: i have the outstanding task of blogging about bug 164196 -- any reason not to do that now?
[14:41] <_mup_> Bug #164196: Quickly-undone actions shouldn't send mail notifications <email> <lp-bugs> <qa-ok> <story-better-bug-notification> <Launchpad itself:Fix Released by yellow> < https://launchpad.net/bugs/164196 >
[14:41] <gary_poster> bac, sure.
[14:42] <bac> any subtleties to the way it works?
[14:43] <bac> gary_poster: btw, i never heard back from sarah.  perhaps you should ping her today.
[14:44] <gary_poster> bac, subtleties: ...thinking.  to start with the obvious: if there's a non-undone action, all bets are off.  In particular,
[14:44] <gary_poster> If I do something
[14:44] <gary_poster> make a comment
[14:44] <gary_poster> and then undo it
[14:44] <gary_poster> then you'll get it all
[14:44] <gary_poster> also
[14:44] <gary_poster> it is within our collection window for events
[14:45] <gary_poster> I'm not sure if that is one minute or five
[14:45] <gary_poster> in the above example "make a comment" could be replaced with "do anything that is not itself undone"
[14:45] <gary_poster> (since you can't undo making a comment that always fits)
[14:46] <gary_poster> (and because comments define our batches to some degree)
[14:46] <bac> so 'assign to alice; make comment; assign to bob' results in alice and bob bothing getting notified about three events?
[14:46] <gary_poster> correct
[14:46] <bac> but assign alice; reassign to bob only results in bob getting notified?
[14:47] <gary_poster> correct
[14:47] <gary_poster> it works for a whole bunch of different kinds of changes
[14:47] <bac> i think that deserves to be explained!
[14:47] <gary_poster> it's possible we missed some reasonable ones
[14:47] <gary_poster> but I don't know of any
[14:47] <gary_poster> bac, actually
[14:48] <gary_poster> "but assign alice; reassign to bob only results in bob getting notified" : no, no one gets notified
[14:48]  * danilos reboots
[14:48] <gary_poster> bac, re sarah: ack. I have an email started to her and Francis to send out my text review, which will be a practical ping on the subject, I think.
[14:49] <gary_poster> back to alice and bob: if something is undone, and nothing hiccups the evaluation, no-one is notified, whatever the change.
[14:50] <gary_poster> here's another example
[14:50] <gary_poster> assign alice; change the status; reassign bob.
[14:50] <gary_poster> people will get notifications, but only of the status change
[14:51] <gary_poster> (assuming this all happens within the collected time frame)
[14:52] <bac> "but assign alice; reassign to bob only results in bob getting notified" -- why would bob not get notified?  assuming he wasn't the original assignee.
[14:52] <gary_poster> oh
[14:52] <bac> nobody-alice-bob is what i meant
[14:52] <bac> perhaps you were referring to bob-alice-bob
[14:52] <gary_poster> I interpreted "reassign to bob" as bob was initially assigned.
[14:52] <bac> gotcha
[14:53] <gary_poster> what you describe is not regareded as "undone" in the current code
[14:53] <gary_poster> regarded
[14:53] <gary_poster> nobody -> Alice -> Bob are "real" changes according to the code
[14:53] <gary_poster> nobody -> Alice -> nobody is a mistake and not reported, according to the code
[14:54] <bac> ok, even thought the temporary assignment to alice was a "mistake" it didn't return to the initial state
[14:54] <gary_poster> (as is Bob -> Alice -> Bob)
[14:54] <gary_poster> right
[14:54] <gary_poster> so we don't get rid of intermediate states; we get rid of undone states
[14:54] <gary_poster> here's yet another example
[14:55] <gary_poster> nobody -> Alice -> Bob -> nobody would also squelch the notifications
[14:55] <gary_poster> (or should)
[14:55] <gary_poster> because the changes were undone
[14:56] <gary_poster> this is also true of status, importance, description, and so on
[15:09] <gary_poster> bac, review when you have a moment: https://code.launchpad.net/~gary/launchpad/bug741684-3/+merge/55935 .  danilos, this is the optimization I mentioned to you yesterday, fwiw.
[15:20] <benji> Now I know what I should get Gary Jr. http://www.thinkgeek.com/interests/looflirpa/e8bb/
[15:20] <gary_poster> lol
[15:21] <gary_poster> that's awesome
[15:23] <gary_poster> I guess it makes sense that think geek would go all out for April 1, but that's still pretty imporessive
[15:24] <gary_poster> the video is great
[15:26] <gary_poster> the connection between devel and db-deve appears to be becoming very tenuous
[15:26] <gary_poster> by which I mean merges and such take a long time
[15:32] <benji> yeah, the video is a very nice parody
[15:43] <gary_poster> gmb, for my tests I think I'm just going to instantiate BugSubscriptionFilterMutes directly.  You probably are adding an API to do that, but that doesn't exist in the db branch, right?
[15:44] <gmb> gary_poster: Right; I'm doing it in a separate branch so that the DB patch can land.
[15:44] <gmb> But instantiating directly shouldn't cause problems.
[15:44] <gary_poster> great, thanks
[15:48] <gary_poster> gmb, I have a call with danilos in 12 min, then I'll ping you for discussion on UI. I'm hoping you have good ideas on what to call this thing. :-)
[15:48] <gmb> gary_poster: Far be it from me to want to shatter your hopes.
[15:48] <gary_poster> lol
[15:51] <bac> hey is that jelmer in the apple video?
[15:52] <gary_poster> heh, the first playmobil guy after the apple people?  good call
[16:00] <gary_poster> danilos, you ready?
[16:00] <danilos> gary_poster, yeah, skype-ready
[16:21] <bac> gary_poster: your branch looks good.  very dense but i don't see anything glaringly wrong.
[16:21] <bac> i am curious why you have a bare assert in your test:  assert(len(sources)==2)
[16:21] <bac> instead of using assertEqual?
[16:22] <gary_poster> bac, yeah.  I did that because it was sort of an internal test sanity thing, rather than a test.  Happy to change.
[16:23] <bac> gary_poster: i'd say comment or change since it does stand out.
[16:23] <gary_poster> ack will do thanks
[16:25] <gmb> I should get a "lazr.restful Wrangler" branch.
[16:25] <gmb> *sigh*
[16:25] <gmb> Badge.
[16:26] <gmb> And a brain.
[16:38] <gary_poster> gmb, call?
[16:39] <gmb> gary_poster: Sure. Skype or Mumble?
[16:39] <gary_poster> Skype alright?
[16:39] <gmb> Yep
[17:18]  * gary_poster lunching, back soon
[17:52] <benji> what happened to the review lanes; it's like they're zero-width
[17:54] <gary_poster> that's exciting
[17:54] <gary_poster> i suspect leankitkanban is having some sort of problem
[17:56] <gary_poster> ...which affects evert browser I have, fwiw
[18:00] <gary_poster> well...I made it mildly better
[18:00] <gary_poster> still broken
[18:00] <gary_poster> and quick jobs is unusable
[18:03] <gmb> Syntax schmyntax. Damn you, Python
[18:14] <gary_poster> benji, leankitkanban fixed it.
[18:15] <benji> yep, I just saw that; I like the resulting ginormus review lanes
[18:15] <gmb> gary_poster: In the spirit of idempotence should BugSubscriptionFilter.mute() raise an error if called on a non-team subscription (or by someone who's not a member of the team that owns a team subscription) or should it just fail quietly?
[18:15] <gary_poster> :-) I fixed them too
[18:16] <gmb> I'm leaning towards raising an error, because otherwise people calling the API might find themselves wondering what's going wrong.
[18:16] <gary_poster> gmb, I think that's not so much idempotence as value error.  I say, make it puke at us all.
[18:16] <gmb> Righto
[18:26] <gmb> gary_poster: So, I'm going to EoW shortly. Here's my more-or-less-complete-but-not-reviewed API branch: lp:~gmb/launchpad/team-subscription-opt-out-apis
[18:26] <gmb> gary_poster: The methods you're interested in are:
[18:26] <gmb> BugSubscriptionFilter.isMuteAllowed() ; .mute() and .unmute()
[18:26]  * gary_poster listens
[18:26] <gary_poster> got it
[18:26] <gary_poster> easy enough
[18:27] <gmb> All of them take a person parameter, but that's all handled by call_with(), so you should just be able to call them directly as named_posts.
[18:27] <gary_poster> gmb, should I review, too?
[18:27] <gmb> gary_poster: Urm... Actually, if you just give me ten minutes to do a quick refactor, yes, that would be cool.
[18:28] <gary_poster> ok, cool gmb, no rush here, still writing tests for my script changes
[18:36] <gmb> gary_poster: https://code.launchpad.net/~gmb/launchpad/team-subscription-opt-out-apis/+merge/55982 when you've got a moment.
[18:37] <gmb> I'm going AFK now but will check back later and set EC2 going if it's good to land.
[18:37] <gary_poster> awesome gmb!  I'll do it this afternoon.  Have a great weekend!
[18:37] <gmb> Thanks, you too.
[18:55] <benji> gary_poster: I'm trying to figure out what I need ot do for 740640; do I need to merge Danilo's branch into mine before landing?
[18:56] <gary_poster> no benji, they can be separate
[18:56] <gary_poster> IMO
[18:56] <benji> well, I already merged part of it to help avoid conflicts
[18:56] <gary_poster> should be alright then
[18:57] <gary_poster> he's already trying to land it
[18:57] <benji> oh, so I don't need to do anything?
[18:57] <gary_poster> benji, by "Danilo's branch" which one do you mean?
[18:57] <danilos> gary_poster, I was going to ask you the same :)
[18:57] <gary_poster> I thought you meant "revert lousy xss fix"
[18:57] <gary_poster> :-)
[18:57] <benji> I don't know.  He pointed me at a patch and I applied part of it.
[18:57] <gary_poster> heh
[18:57] <danilos> that one is already landed, but benji is probably inquiring about the other one I have in progress
[18:58] <danilos> benji, so, don't worry about that one, I'll merge with your changes once your branch lands
[18:58] <gary_poster> that makes sense to me.  thanks danilos
[18:58] <benji> danilos: ok, I'll assign you the "xss vulnerability in new bug subscription overlay" card
[18:58] <gary_poster> uh
[18:58] <gary_poster> why?
[18:58] <gary_poster> I think there's some branch confusion going on
[18:58] <benji> because that's the one about bug 740640
[18:59] <gary_poster> right...
[18:59] <gary_poster> but what Danilo is working on now does not affect that
[18:59] <gary_poster> it only touches the same part of code
[18:59] <gary_poster> So, Danilo had two branches
[18:59] <gary_poster> one was "Revert lousy xss fix"
[18:59] <gary_poster> that has landed already
[19:00] <gary_poster> that's kinda sorta related to 740640
[19:00] <danilos> benji, right, the part that you "patched" was minor refactoring that I needed in the heavy-on-manual-node-construction code
[19:00] <gary_poster> but really only as a clean up
[19:00] <danilos> benji, just to reduce the chances of conflicts in there, at least that was my impression of what gary wanted :)
[19:00] <gary_poster> now he is working on "Structural subscription edit/delete page should also allow..."
[19:00] <danilos> (I am not sure I am helping :))
[19:01] <gary_poster> :-)
[19:01] <gary_poster> which happens to touch on the same part of the code that you were touching on your xss branch, benji
[19:01] <benji> ok, reboot:  I need to work on the "xss vulnerability in new bug subscription overlay" card, which is in "Landing"; what do I need to do?
[19:01] <gary_poster> :-)
[19:01] <gary_poster> AFAIK, land your branch
[19:01] <gary_poster> then that card is done
[19:01] <gary_poster> do you have reason to believe otherwise
[19:02] <gary_poster> ?
[19:02] <benji> well, I don't have any idea what's going on, but that's not neccesarily evidence to the contrary
[19:02] <gary_poster> :-)
[19:02] <gary_poster> ok, let's have a quick call
[19:02] <benji> I don't /have/ to understand :)
[19:03] <gary_poster> since you are doing the work I think that would be comforting :-)
[19:03] <benji> ok; mumble or skype?
[19:03] <gary_poster> skype please
[19:04] <benji> <skype sad noise>
[19:04] <gary_poster> :-) 1 sec
[19:07] <benji> I can here you.
[19:08] <benji> /s/re/ar/
[19:08] <benji> try unplugging your headset
[19:53] <benji> gary_poster: *poof!* I appear over here.
[19:53] <gary_poster> benji hi :-)
[19:55] <benji> yep, that's it; I kept thinking that one had the downward-blue-triangle-of-lowness on it so didn't read it
[19:55] <gary_poster> yeah, the overlapping is a bit hard to read at times
[19:55] <benji> did you want to do a pre-imp call on that?
[19:56] <gary_poster> So, I suspect you will want to clarify what the card means first, if you are not already sure...yeah.  We'll have a quick one, and then I suspect you'll want one with Brad
[20:26] <benji> I like happening upon the ever-changing ~yellow logos.
[20:27] <benji> bac: I'm having trouble finding the branch that has your additions of the edit links to all the bug targets (I'm going to use it as a guide to adding "My Subscriptions" links)
[20:27] <benji> gary_poster: you'll like this; I don't even think it's an April fool's joke: http://zodb.ws/
[20:28] <bac> benji: https://code.launchpad.net/~bac/launchpad/accordion-client-2/+merge/55361
[20:28] <benji> bac: thanks
[20:36] <gary_poster> heh, I had not seen the yellow submarine.  I suspect danilos :-)
[20:40] <gary_poster> benji, that's insane. :-)
[20:41] <benji> insane and awesome
[20:41] <gary_poster> yes that too
[20:42] <bac> did y'all see web2pyramid?
[20:42] <gary_poster> no
[20:42] <bac> http://web2pyramid.pylonsproject.org/
[20:44] <gary_poster> :-)
[20:44] <benji> I can't tell if that's an April Fools joke or not.
[20:44] <gary_poster> :-P I'm saying yes
[20:48] <bac> "Blaze LaFlame"
[20:50] <bac> gary_poster: so for "quickly" undone actions, does "quickly" mean "do it before the next run of the cronjob"?
[20:51] <gary_poster> bac, no, there's a configured amount of time to wait, so it is at least as long as that amount of time, rounded up to the next cronjob
[20:52] <bac> do you know that number?
[20:52] <gary_poster> I'm guessing you should probably know what that amount of time is...trying to find out...
[20:53] <gary_poster>         interval = timedelta(
[20:53] <gary_poster>             minutes=int(config.malone.bugnotification_interval))
[20:53] <gary_poster> ...
[20:53] <gary_poster> lib/canonical/config/schema-lazr.conf:bugnotification_interval: 5
[20:53] <gary_poster> ...
[20:55] <bac> thanks, i was looking around in there but didn't see that part
[20:55] <bac> so 5 minutes plus whenever the next cronjob runs
[20:55] <gary_poster> bac, from the above, and the fact that that string is not redefined in lp-production-configd, I am pretty sure the answer is 5 min
[20:55] <gary_poster> yeah
[20:55] <bac> thanks
[20:55] <gary_poster> np
[21:21] <bac> gary_poster: this is not much but is something:  http://blog.launchpad.net/?p=2043&preview=true
[21:23] <gary_poster> bac, looks good to me.  Thank you!
[21:23] <bac> ok, if it is accurate i'll publish
[21:24] <gary_poster> I believe it is accurate, bac.  Thanks.
[21:24] <bac> done
[21:25]  * bac is no longer haunted by that task
[21:25] <gary_poster> great!
[21:25] <gary_poster> :-)