[01:49] <wgrant> https://oops.canonical.com/oops.py/?oopsid=OOPS-493eb7067f568cde87767956e4f8ce24 is impressive
[01:50] <wgrant> 1061 repetitions of a query to check if the current user is affected by a bug
[01:51] <StevenK> It wants to be REALLY sure
[01:51] <wgrant>         # Loop over dupes.
[01:51] <wgrant>         for dupe in self.duplicates:
[01:51] <wgrant>             if dupe._getAffectedUser(user) is not None:
[01:51] <wgrant>                 dupe.markUserAffected(user, affected)
[01:52] <StevenK> Oh
[01:52] <wgrant> That seems pretty pointless...
[01:53] <wgrant> I guess it might be helpful to unaffect dupes when unaffecting the master
[03:33] <StevenK> wgrant: I've fixed the test failures in destroy-old-bugactivity, I'll be landing it shortly.
[03:35] <wgrant> StevenK: Great
[03:35] <wgrant> Now go away :)
[03:36] <StevenK> Haha
[03:39] <nigelb> what? haha.
[03:39] <StevenK> nigelb: I'm on holidays this week.
[03:39] <StevenK> So wgrant is telling me to stop caring about work from last week. :-)
[03:39] <nigelb> StevenK: Aha. yes, go away.
[03:40] <StevenK> But it hasn't landed yet!
[03:40] <nigelb> Where's a freenode staff when you need one.
[03:40] <StevenK> Oh, don't even joke about that.
[03:40] <nigelb> Waitaminute
[03:40] <StevenK> They've k-lined me twice 'by accident'
[03:40] <nigelb> I'm sure your SO can arrange that ;)
[03:41] <StevenK> Hah
[04:29] <wallyworld_> wgrant: does it make sense that when auto confirming a bug, any duplicates of that bug should be confirmed also, without the need for affected user checks against each individual dup?
[04:34] <wgrant> wallyworld_: No. In fact it's a bug (probably already reported) that duplicates get autoconfirmed at all
[04:35] <wgrant> wallyworld_: Launchpad supports autoconfirmation only provisionally and begrudgingly; don't feel like you have to go too far out of your way to make it smooth
[04:35] <wallyworld_> wgrant: ok, so if i do a bulk update for affects user, i can ditch the need for any recursive call processing
[04:35] <wgrant> Right
[04:35] <wallyworld_> what about heat?
[04:35] <wallyworld_> can dupe heat be set to master heat?
[04:35] <wgrant> No
[04:35] <wallyworld_> i may need to to a stored proc which bulk updates heat
[04:36] <wallyworld_> instead of just one bug id at a time
[04:36] <wgrant> Nah
[04:36] <wgrant> See the garbo job
[04:36] <wallyworld_> oh, ok. didn't realise there was one
[04:36] <wgrant> You can do eg. some_result_set_of_bugs.set(heat=SQL('calculate_bug_heat(Bug.id)')
[04:36] <wgrant> And it'll construct a single UPDATE
[04:37] <wallyworld_> ok, nice
[04:37] <wallyworld_> thanks
[04:37] <wgrant> Calling the function a thousand times isn't a problem, as (particularly after I last took an axe to it) it's quite fast. The problem is making a bazillion roundtrip queries.
[04:37] <wallyworld_> yes
[04:37] <wgrant> A quick fix to this also wouldn't go near the heat issue at all
[04:38] <wgrant> Since it's very unlikely that the user has clicked the affectsme button on more than a couple of dupes
[04:38] <wgrant> So it won't be triggered more than a couple of times a request
[04:38] <wgrant> But batchifying more code is always good, so why not do the comprehensive fix, I guess :)
[04:38] <wallyworld_> well, i'm lookin at ditching the recursive call and bulk updating all dupes in the tope level affectsMe all
[04:38] <wgrant> Note that it's not quite like that
[04:39] <wgrant> It sets the affectsme status of any dupes that already have an affectsme status
[04:39] <wallyworld_> sure, i'm handling that
[04:39] <wgrant> Great
[04:39] <wgrant> Just confirming
[04:39] <wallyworld_> np :-)
[04:40] <wallyworld_> but it means ditching the confirm of dupes, which you say above is ok
[04:40] <wallyworld_> and i'll do a single update for heat
[04:40] <wgrant> So yeah, I'd just find all the dupes that have a BugAffectsPerson for the user, set them, set their users_affected_count to AutoReload (or amybe not, it might mean we don't care), and then bulk update the heat
[04:40] <wallyworld_> an invalidate and flush will do the same thing?
[04:40] <wallyworld_> as setting to AutoReload
[04:40] <wgrant> Yeah, but it's excessive
[04:41] <wgrant> So it's nice to avoid it
[04:41] <wallyworld_> it's used already
[04:41] <wgrant> Yes
[04:41] <wallyworld_> so i'll see if i can ditch it maybe
[04:41] <wgrant> It's already excessive!
[04:41] <wgrant> Right
[04:41] <wallyworld_> not sure
[04:41] <wgrant> To some extent we really don't care that the dupe counts are off by one
[04:41] <wgrant> (for the current transaction)
[04:42] <wallyworld_> ok, i may see what ec2 comes back with perhaps
[04:42] <wgrant> But if we do care, then just set the affected columns to AutoReload, as it's much cheaper than invalidating the entire object
[04:42] <wallyworld_> not sure if this will help the other bug 925937
[04:42] <_mup_> Bug #925937: Does this bug affect you: Timeout error popup <timeout> <Launchpad itself:Triaged> < https://launchpad.net/bugs/925937 >
[04:42] <wallyworld_> maybe
[04:43] <wallyworld_> since auto confirm for dupes is not going to be dome now
[04:47] <wgrant> wallyworld_: No, sadly
[04:47] <wgrant> wallyworld_: That's autoconfirming the main bug
[04:47] <wallyworld_> oh well
[04:54] <nigelb> Oh. Now I realize wallyworld_ is Ian Booth.
[04:54] <nigelb> Throws me off every time I read your real name :)
[04:55] <wallyworld_> i like to be different
[04:55] <nigelb> Heh
[04:55] <wallyworld_> ianb would be such a boring nick
[04:55] <nigelb> boothi sounds more fun ;)
[04:56] <wallyworld_> there's a few other words that suit better, but they're not for a family channel
[04:56] <nigelb> hahaha
[04:57] <wallyworld_> right, off to pick up kid from school
[05:11] <spm> wallyworld_: you could go for ixb
[05:35] <wallyworld_> spm: i could, but it's too late now
[05:37] <spm> it's never too late
[05:37] <spm> you could have ixb_formally_known_as_wallyworld
[05:38] <wgrant> wallyworld's his legal name? :)
[05:38] <wallyworld_> i'm too lazy to change it
[05:48] <wgrant> Hmm
[05:48] <wgrant> SQLObjectResultSet.__bool__ irks me
[05:51] <wgrant> Er, __nonzero__
[05:51] <wgrant> That's the one
[05:51] <wgrant> Still evil
[05:58] <StevenK> SQLObject needs to be destroyed
[06:02] <nigelb> Your internet access needs to be destroyed. Until after vacations.
[06:02] <wgrant> Yep
[06:03] <StevenK> But I needs it for Steam!
[06:03] <StevenK> Anyway, I lose Internets on Wednesday
[06:04] <nigelb> You need to take a vacation on some island with poor internet connectivity. But, you already live in Australia.
[06:05] <StevenK> So yeah, mission accomplished?
[07:53] <adeuring> good morning
[08:26] <czajkowski> purple you guys were busy yesterday
[08:26] <czajkowski> *today
[08:26] <StevenK> We're always busy
[08:28] <czajkowski> my inbox says very busy :)
[12:11] <olli> gm Alice
[12:12] <olli> seems you are well informed, hadn't heard about Sam until I saw your mail
[12:16] <olli> wrong channel
[14:07] <abentley> rick_h_: On https://qastaging.launchpad.net/bzrtools/+edit I see a green flash when I change information type.  I believe that's supposed to mean that the change has been applied to our server.
[14:18] <rick_h_> abentley: looking
[14:19] <rick_h_> abentley: ah, gotcha. will file a bug/card
[14:21] <abentley> rick_h_: Cool.
[14:21] <rick_h_> do we have a tag we're using for privateproject work?
[14:22] <rick_h_> ah, see private-projects
[14:26] <rick_h_> abentley: I also looked into that bug from friday and filed that bug along side this one
[14:26] <rick_h_> where without JS you saw all of the radio buttons for all info types vs the 3 valid options
[14:27] <abentley> rick_h_: Thanks.  I experienced that bug with JS enabled, though.
[14:27] <rick_h_> abentley: hmm, well I figured there mus thave been a JS error in your local env since I didn't see it on qastaging but you mentioned you had it with js disabled
[14:28] <rick_h_> abentley: I guess if you can repeat it with JS enabled let me know and we can look if something in the JS to build the widget failed since you shouldn't see radio buttons
[14:29] <abentley> rick_h_: We should also fix JS errors that affect local dev environments.
[14:29] <rick_h_> abentley: agree, but I don't know what your JS error was which is why I'm saying if you hit it please let me know more details
[14:31] <abentley> rick_h_: Reproduced.
[14:31] <rick_h_> abentley: awesome
[14:32] <abentley> rick_h_: The console shows Error: extend failed, verify dependencies
[14:32] <rick_h_> ugh...ok so this is on a project/+edit you're getting this in your local dev env?
[14:33] <abentley> rick_h_: Yes, https://launchpad.dev/firefox/+edit
[14:33] <rick_h_> abentley: ok, loading up a clean trunk dev env to peek at
[14:33] <abentley> rick_h_: I am using firefox, btw.
[14:34] <rick_h_> abentley: ok, checking. Not seeing it in chrome
[14:34] <abentley> rick_h_: I'm seeing the radio buttons in chrome.
[14:35] <rick_h_> abentley: ok, trying to see if I can replicate. make clean/make run and such.
[14:36] <rick_h_> abentley: the error you hit is generally because there's a missing new SomeObject when creating an instance
[14:36] <rick_h_> or a missing dep in the list of requires for some module
[14:37] <abentley> rick_h_: This is on line 10 of https://launchpad.dev/+combo/?yui/yui/yui-min.js&lp/meta.js&yui/loader/loader-min.js
[14:38] <rick_h_> abentley: does your line 10 look anything like: https://pastebin.canonical.com/76544/
[14:39] <rick_h_> abentley: have you updated your feature flags locally? Are you running yui 3.5?
[14:39] <rick_h_> I wonder if it's broken for you since I used Y.View which is yui 3.5 and you might still be set in your dev env for 3.3
[14:39] <rick_h_> abentley: that would explain why it works in qastaging/production
[14:39] <abentley> rick_h_: No, it looks like https://pastebin.canonical.com/76545/
[14:40] <rick_h_> abentley: yea, I bet you're running the old YUI locally still via either lack of make clean/clean-buildout or via forced feature flag setting
[14:41] <abentley> rick_h_: One should never have to run make clean.  I can confirm I'm still running 3.3
[14:42] <rick_h_> abentley: ok, I guess that's a failing on my end then. I tend to run make clean whenever I bzr switch so didn't realize this
[14:43] <abentley> rick_h_: Yeah, I only run make clean as a last resort.
[14:43] <rick_h_> abentley: so the make commands around JS build check for the existing of the build/js/yui and build/js/lp and they existed
[14:43] <abentley> Not when I switch or anything.
[14:44] <rick_h_> and only rebuild around them missing so I guess we can look at a more robust or always rebuilding them
[14:47] <abentley> rick_h_: So I guess 3.3 is obsolete now, and we should remove support for it.
[14:48] <rick_h_> abentley: yes, it's on the JS clean up todo. SteveK talked about working on some of it, removing some of the jsbuild bits and such
[14:48] <abentley> rick_h_: Now that I've "make clean"ed, I'm seeing the JS widget, not the radio buttons.
[14:48] <rick_h_> granduating combo build up to full status and cleaning up the yui-deps.py
[14:48] <rick_h_> abentley: cool, good to hear
[15:07] <rick_h_> abentley: I'm working on trying to get InformationType to show up for new blueprints UI locally. I've enabled the feature flag, there's nothing in +configure-blueprints about adjusting the information types, but I don't get the field in the list as I do on qastaging/production.
[15:07] <rick_h_> abentley: is there another step I'm missing to enable the field?
[15:07] <abentley> rick_h_: OTP
[15:07] <rick_h_> abentley: rgr
[15:26] <sinzui> jcsackett, do you have time to hangout?
[15:30] <abentley> rick_h_: Have you enabled the blueprint-specific flag?
[15:31] <abentley> rick_h_: i.e. blueprints.information_type.enabled ?
[15:31] <rick_h_> abentley: yes
[15:31] <rick_h_> blueprints.information_type.enabled	default	1	on
[15:32] <abentley> rick_h_: Have you enabled private blueprints under +sharing?
[15:36] <rick_h_> abentley: ah I think I see. Since this new project is public and doesn't have a commercial subscription it can't immediately set a non-public blueprint?
[15:37] <abentley> rick_h_: Indirectly.  If your specification sharing policy is "Public", you can't set non-public, so you don't get the field.  Non-public policies should only be available if you have a commercial subscription.
[15:37] <rick_h_> abentley: got it
[15:37] <rick_h_> abentley: yea, had to get a commercial subscription to get the edit UI for the +sharing to change the policy
[15:38] <rick_h_> abentley: thanks
[15:38] <abentley> rick_h_: np
[15:40] <adeuring> abentley, deryck, rick_h_: sorry, I just saw another EC2 test failure that I missed earlier today; fixed now, but the new EC2 test is starting just now
[15:41] <deryck> adeuring, no worries.  thanks for the heads-up.
[15:41] <rick_h_> adeuring: cool thanks. Yea I'm just holding off until your stuff hits pqm and I'll merge/submit to ec2 EOD/tomorrow morning
[15:42] <adeuring> rick_h_: thanks. I'll ping you once my stuff lands.
[15:42] <rick_h_> adeuring: ty much
[16:01] <rick_h_> sinzui: ping
[16:02] <sinzui> hi rick_h_
[16:21] <jml> which squad is doing maintenance at the moment?
[16:22] <czajkowski> jml: purple
[16:22] <jml> czajkowski: ta
[16:23] <czajkowski> jml: why.. what have you broken :)
[16:23] <jml> czajkowski: time.
[16:24] <lifeless> \o/
[16:24] <czajkowski> lifeless: :D
[16:26] <sinzui> jml, you broke time?
[16:27] <jml> sinzui: time is out of joint.
[16:32] <rick_h_> sinzui: wanted to check on if you filed a bug for the JS inline stuff around https://bugs.launchpad.net/launchpad/+bug/1052551 The inline stuff was in the NullChoice side of the widget so wasn't sure if the bug was valid and wanted to check it out
[16:32] <_mup_> Bug #1052551: Specification sharing policy is not honored by the edit information_type widget <css> <information-type> <javascript> <private-projects> <specifications> <ui> <Launchpad itself:Triaged> < https://launchpad.net/bugs/1052551 >
[16:34] <sinzui> rick_h_, why can't we change the info type of this blueprint. We own it and the project allows public :https://blueprints.qastaging.launchpad.net/launchpad-help-moin-theme/+spec/testing-proprietary-1
[16:34] <rick_h_> sinzui: yea, there's bug in the JS/css setup in the .pt
[16:35] <rick_h_> I've got that fixed, but was looking at the comment you made about the choiceedit.js doing manual style setup on 'inline'
[16:35] <rick_h_> sinzui: https://code.launchpad.net/~rharding/launchpad/info_portlet_1052551/+merge/129706 for the .pt and setup issues I'm fixing currently
[16:35] <sinzui> ah, I reported that as a separate issue.
[16:35] <rick_h_> sinzui: right, so tring to find that separate issue atm to look at it and my search-fu is failing me
[16:36] <sinzui> rick_h_,  this is definitely separate: https://bugs.launchpad.net/launchpad/+bug/1064555
[16:36] <_mup_> Bug #1064555: choicedit assumes icons are inline and tampers with the style.display <disclosure> <information-type> <javascript> <private-projects> <Launchpad itself:Triaged> < https://launchpad.net/bugs/1064555 >
[16:36] <rick_h_> wondered if you had it handy and if you had realized the setStule stuff was in the NullChoice widget and if it still applies
[16:36] <sinzui> rick_h_, all feature bugs should be tagged private-projects, that will narrow the search
[16:36] <rick_h_> sinzui: yea, so the cause was manually adding display:inline to the .pt file
[16:36] <rick_h_> not the JS in choiceedit
[16:36] <rick_h_> ok cool, I'll reply to this one as well as I wrap things up here
[16:37] <rick_h_> sinzui: note line #47 of my diff in my MP I'm working on
[16:37] <rick_h_> sinzui: cool thanks for the link that helps
[16:38] <sinzui> rick_h_, I would exepct the choicesource bug to appear more frequently. It may affect your feature, but it definitely pre-exists a lot of feature work by about 3 years
[16:39] <rick_h_> sinzui: right, but in this case it wasn't a bug in choicesource, but in the JS manually run in specification-index.pt and boostrap html in blueprint-portlet-privacy.pt
[16:41] <sinzui> rick_h_, oh, so maybe the error I saw about manipulating style.display is actually from the template...which may mean we have dead code in choice source
[16:41] <rick_h_> sinzui: right, the code in choicesource you grepped pertains to a NullChoiceSource widget
[16:42] <rick_h_> so maybe there's still a bug there, but that's why we don't see it much as it's not used as often
[16:42] <sinzui> rick_h_, yes, I think you have fixed the real bug I experienced
[16:43] <rick_h_> sinzui: ok cool. Thanks for the link to the other bug. Want to make sure I catch all the parts here
[16:44] <sinzui> rick_h_, if you can edit, and after the edit the text "Edit" does not appear, you have fixed my use case. I will remove the tags from the other bug. I guess it is tech-debt
[16:45] <rick_h_> sinzui: yea, the only thing now is that edit always shows even when there's only one value "Public" so I'll probably fix this bug but then file a bug about hiding that all together when there's only the one choice
[16:45] <sinzui> ah
[16:46] <sinzui> rick_h_, toggleClass('hidden') was the intent then...and choice source does not do it.
[16:47] <rick_h_> sinzui: gotcha. Yea, so I'll file a new bug about that then with this as the specific use case
[16:49] <sinzui> rick_h_, so maybe the choice source should know to hide EDITICON when the length of choices are 1?
[16:50] <sinzui> How do proprietary only bugs and branch portlets solve this?
[16:51] <rick_h_> sinzui: yea, that's what I would expect.
[16:51] <rick_h_> sinzui: I'm going to check out how branches solve this. It's not jumping out at me and I want to get this fix in asap.
[16:58] <sinzui> rick_h_, This is not your problem...or at least this is not about blueprints.
[16:58] <sinzui> rick_h_, https://code.qastaging.launchpad.net/~launchpad/launchpad-help-moin-theme/moin_launchpad shows a choice of 1
[16:58] <rick_h_> sinzui: agreed which is why it'll be a new bug for now. I've got to wrap this up and move onto some more private project stuff
[16:59] <rick_h_> sinzui: ah, good to know then. Thanks
[16:59] <sinzui> okay
[17:07] <rick_h_> benji: https://code.launchpad.net/~rharding/launchpad/info_portlet_1052551/+merge/129706 for your eyeballs if you get a sec please
[17:08] <benji> rick_h_: sure
[19:00] <abentley> benji: could you please review https://code.launchpad.net/~abentley/launchpad/workitems-for-private-blueprints/+merge/129736 ?
[19:01] <benji> abentley: sure
[19:44] <abentley> benji: Thanks.
[19:44] <benji> my pleasure
[19:51] <abentley> rick_h_: Are you using my getProductPrivacyFilter for fixing bug #1063272 ?
[19:51] <_mup_> Bug #1063272: Cannot view +related-projects because of private-project <403> <private-projects> <Launchpad itself:In Progress by rharding> < https://launchpad.net/bugs/1063272 >
[19:54] <adeuring> rick_h_: my branch landed finally
[20:53] <beuno> wgrant, ping
[20:54] <beuno> wgrant, looking for a reviewer for a python-oops-tools branch: https://code.launchpad.net/~beuno/python-oops-tools/show-newest-oopses/+merge/129752
[20:59] <czajkowski> beuno: on call reviewer is benji
[21:00] <beuno> czajkowski, this may be a tad specific to throw in the general review queue
[21:19] <beuno> benji, thanks
[21:19] <beuno> benji, I'll reply in the merge proposal but the spaces after the comma are pep-8 complaints
[21:20] <benji> beuno: right, but the commas themseleves are what stood out to me
[21:21] <beuno> benji, ah, yes, there's a bunch of XXXs warning that it needs refactoring
[21:21] <beuno> didn't look into it
[21:22] <benji> beuno: I figured a code formatting tool or search/replace was used and the strange comma-after-a-single-item-list threw it off
[21:23] <beuno> right
[21:23] <beuno> no, all the crazy is hand-crafted!
[21:28]  * benji starts selling t-shirts with "all the crazy is hand-crafted!" on them.
[21:45] <wgrant> beuno: I'm happy to review that, but any Launchpad reviewer can also do it
[21:45] <wgrant> As benji suggests :)
[21:52] <beuno> wgrant, cool, thanks
[21:54] <wgrant> abentley: Do you have a branch in progress to stormify Person.specifications? I have a branch that needs it, so if not then I'll do it today.
[21:55] <abentley> wgrant: Yes, I do.
[21:55] <abentley> wgrant: ~abentley/launchpad/user-blueprints
[21:55] <wgrant> abentley: Thanks
[21:56] <wgrant> Although it's mysteriously empty
[21:56] <abentley> wgrant: I just pushed it now.
[21:56] <wgrant> Ah
[21:56] <wgrant> abentley: Is it likely to land in the next day or so?
[21:56] <abentley> wgrant: I'm just in the middle of adding unit tests for the existing behaviour.
[21:57] <wgrant> Right, it certainly needed it :/
[21:57] <abentley> wgrant: Yes, ideally it will land tomorrow.
[21:57] <wgrant> Great, thanks.
[21:58] <abentley> wgrant: What is your branch doing?
[21:58] <wgrant> abentley: Fixing the +specworkload timeouts, which needs that query to be reworded and run over multiple people
[22:00] <abentley> wgrant: Okay.  So where I'd naively put  "Specification.drafter = user.id", you
[22:00] <abentley> want to do "Specification.drafter.is_in(user_ids)" etc?
[22:00] <beuno> benji, addresed and pushed
[22:01] <wgrant> abentley: Right, I'll need to extract it out to separate function/method
[22:03] <abentley> wgrant: I should have *something* in the next couple of hours, but likely won't finish 'till tomorrow.
[22:04] <james_w> beuno, doesn't the db have the information on newest oopses?
[22:04] <beuno> james_w, I don't actually know  :)
[22:04] <wgrant> It does :)
[22:04] <beuno> wasn't sure if the oopses get processed and stored in PG as they come in
[22:04] <wgrant> I haven't actually looked at the branch yet
[22:05] <wgrant> You can find the latest with a simple Django ORM query
[22:05] <beuno> that would of been much simpler
[22:05] <james_w> benji, they do
[22:05] <james_w> beuno I mean
[22:05] <james_w> and much more efficient :-)
[22:05] <beuno> indeed
[22:05] <beuno> ok
[22:05] <beuno> so I need to change everything!
[22:06] <wgrant> Well, "everything" == "one 10 line method", but yes :)
[22:06] <james_w> well, not everything :-)
[22:06] <beuno> no, EVERYTHING
[22:06] <beuno> or not
[22:07] <beuno> test should still pass, so forced TDD!
[22:07] <beuno> but, at this stage I
[22:07] <beuno> I'll add what I was going to in my follow up branch
[22:07] <beuno> relative time since the oops and some data about it
[22:09] <wgrant> I want to add a similar thing to show the latest OOPSes for a pageid on a particular instance.
[22:09] <wgrant> But haven't got around to it yet
[22:28] <abentley> wgrant: Initial implementation is pushed.  Lots more to go.
[22:29] <wgrant> abentley: Lovely. Thanks
[23:19] <rick_h_> abentley: didn't get that far before EOD to tell yet
[23:21] <abentley> rick_h_: I expect that it will want to use it, so I was leaving it alone until the other branch lands.
[23:21] <rick_h_> abentley: abel's branch?
[23:21] <abentley> rick_h_: No, mine.
[23:21] <rick_h_> abentley: I just merge his stuff and going to get my stuff waiting on that to ec2 for the night
[23:21] <rick_h_> abentley: ah ok
[23:22] <rick_h_> abentley: thanks for the heads up. I'll take a peek then at your stuff you've got in the wings
[23:52] <wgrant> win 43
[23:53] <rick_h_> 44