=== salgado-afk is now known as salgado === mrevell is now known as mrevell-lunch === mrevell-lunch is now known as mrevell [14:48] * gmb goes to get a brew pre-meeting [15:00] #startmeeting [15:00] ha ha [15:00] hello and welcome to this week's ameu launchpad reveiwer's meeting [15:00] who's here today? [15:00] fail :) [15:00] me [15:00] me [15:00] me [15:00] me [15:00] moo [15:01] me [15:01] me [15:01] me [15:01] ME [15:02] whoops [15:02] me [15:02] allenap, danilos ping [15:02] * gmb tries to persuade a rather persistently stupid wasp to leave the office [15:02] me [15:02] me [15:02] EdwinGrubbs: welcome! [15:02] thanks [15:03] me [15:03] statik: ping [15:03] :) [15:03] me === sinzu1 is now known as sinzui [15:03] me me [15:03] == Agenda == [15:03] * Roll call [15:03] * Next meeting [15:03] * Action items [15:03] * Queue status [15:03] * Mentoring update [15:03] * Review process [15:03] next meeting week += 1? [15:03] anybody know you won't be here or will be sprinting? [15:04] sinzui and I will be sprinting [15:04] but we should be able to attend [15:04] cool, thanks [15:04] * Action items [15:05] * barry is teh suck this week [15:05] * barry drive to decision about multiline sequences [15:05] * barry to solicit ideas to better handle review scheduling and workload [15:05] not done, but i will do them this week [15:05] * gmb to add lpreview to sourcecode and hack rf-setup to link it in [15:05] It's in sourcecode. [15:05] Thanks to mthaddon [15:06] de rien [15:06] I'll get the rf-setup change reviewed and landed today. [15:06] gmb: excellent. will that link in our ~/.bazaar/plugins directory? [15:06] Yep. [15:06] fantastic [15:06] thanks! [15:07] * gmb to prod mwh again about the 800-line limit patch [15:07] I emailed him last nigh [15:07] But since he's sprinting I suspect we won't hear back until next week. [15:07] barry: Let's leave this on the agenda for next week [15:07] Lest I forget again :) [15:08] gmb: cool. will do. we'll leave the lpreview one on too, until the rf link branch lands [15:08] Sure. [15:08] gmb: thanks [15:08] * sinzui to update js style guide page with helpful resources [15:08] Not done [15:08] * sinzui has time on Thursday to do it [15:08] sinzui: we'll just continue this one then, right? [15:08] barry: didn't you took a decision about multiline sequences? [15:08] barry: yes please [15:09] sinzui: possibly relevent, there is a new douglas crockford book coming out called javascript: the good parts [15:09] flacoste: oh, you're right. i even updated the python style guide. jeebus, where is my brain? [15:09] that won't be very big then [15:09] statik: beware of crockford's advice, though. it's not always good [15:10] statik: I nice *small* book about modern and compatible ECMAScript would be nice. [15:10] yeah, I hope this one is tiny [15:11] * sinzui or flacoste to add sampledata check to lpreview or make lint [15:11] i suck [15:11] completely forgot about that [15:11] i can at least file a bug :-) [15:11] flacoste: cool, that would be great [15:12] * Queue status [15:13] queue looks pretty good to me. the only pink branch is our old favorite bazillion year old stub branch [15:13] any comments on the queue? [15:14] Can't that branch be made w-i-p? [15:14] I mean, it's ossifying there at the top of the queue.# [15:14] gmb: i tried to do that once but jamesh didn't want me to [15:14] gmb: but i will push for that again at the next asiapac [15:15] Okay. [15:15] * Mentoring update [15:15] any word from mentors or mentorees? [15:15] EdwinGrubbs: how's it going? getting some branches to review? [15:16] barry: no, I haven't reviewed anything since salgado's oncall day [15:16] EdwinGrubbs: That's a Thursday, right? [15:16] EdwinGrubbs: that's okay, i'm sure you'll get some tomorrow [15:16] of course, I haven't checked PendingReviews to see if anything is assigned to me [15:17] EdwinGrubbs: that reminds me. i've been using bac's cron script. i highly recommend it [15:17] when there's no change to my queue, it stays quiet, but i get the occasional email when there's an update to my queue. it works really well. you should all check it out [15:17] * barry thanks bac [15:18] np [15:18] * sinzui ponders a dbus message from PR [15:18] :) [15:18] bac: where is that cronscript? I just have your getreview.py script. [15:18] that would be cool [15:18] XMPP message [15:19] twitter! [15:19] eugh [15:19] EdwinGrubbs: bzr+ssh://devpad.canonical.com/code/bac/launchpad/pr_notify [15:19] sinzui: Put it through libnotify / notify-bin [15:20] bigjools: luddite [15:20] bac: is there a link to that from TipsForReviewers? [15:20] easily integrated with intellectronica's twit.py [15:20] gmb: yep [15:20] barry: no, but i'll add one [15:20] bac: thanks [15:20] statik: ? [15:20] schwuk: communication junkie [15:21] any other mentoring news? [15:21] * Review process [15:21] there's just bac's proposed item... [15:21] * Discourage use of 'hasattr' (bac) [15:22] bac: the floor is yours [15:22] hasattr is evil because it catches exceptions [15:22] i wasn't aware of the problem with hasattr until the discussion today. [15:22] * sinzui 'attr' in obj.__dict__: [15:22] so should we put that on our check list or PSG [15:22] we should define a safe_hasattr in lazr.utils and uses that instead [15:22] flacoste: +1 [15:23] sinzui: that doesn't always work, does it? [15:23] flacoste: i think people should just be trained to use getattr(foo, name, None) instead [15:23] it doesn't with decoarators [15:23] intellectronica: ^^ [15:23] intellectronica: I was being sarcastic [15:23] or any other descriptors [15:23] barry: i think if safe_hasattr(obj, 'attr'): [15:24] is easier to udnertsand [15:24] i did a quick look and we're using hasattr 24 times in our codebase [15:24] than if getattr(obj, 'attr', None) is not None [15:24] flacoste: yeah, but then i have to look up safe_hasattr() to see what it actually does ;) [15:24] barry: c.'mon :-) [15:24] otoh, if it's this instead, then i can get behind it: [15:24] missing = object() [15:25] maybe you should call it can_getattr :) [15:25] return getattr(obj, name, missing) is missing [15:25] barry: yes, that was my plan [15:25] er, is not missing [15:25] * flacoste realized that he just got himself anothe action item [15:25] Why not just catch the AttributeError explicitly ourselves, and ban hasattr? [15:25] intellectronica: maybe i_can_haz_attr() [15:25] i should just shut-up [15:25] barry: :) [15:25] allenap: the problem is that it catches all exceptions [15:26] i'd like to understand more why we're using hasattrs [15:26] maybe some of those 24 uses are bogus? [15:27] i think in many cases where we use ...attr methods we don't really have to, or could refactor the code so that we don't have to [15:27] just today salgado found one place where we used setattr without having to and fixed it [15:28] intellectronica, it was jamesh who found it, btw. :) [15:28] maybe the instruction should be more general, and include looking for ...attr in the code, check that it's really necessary, and iff it is, make sure that it's correct [15:28] intellectronica: +1 [15:29] would someone like to update TipsForReviewers to be on the lookout, and question, uses of setattr() [15:29] i will [15:29] and also update PythonStyleGuide to watch out for hasattr() because of the exception swallowing behavior [15:29] bac: mind doing both? [15:30] barry: why setattr specifically? [15:30] yes i'll do both [15:30] barry: why shouldn't both place caution about hasattr and setattr? [15:30] intellectronica, bac nope, you're right. sorry [15:31] what's the issue with setattr? [15:31] flacoste: just that we sometimes use it without having to [15:32] flacoste: and then we rely on strings, don't get lint errors, and unnecessarily complicate the code [15:32] how often does it come up? [15:32] i mean, there is a lot of things we do that we don't need to [15:32] flacoste: it came up today :) [15:32] launchpad is full of cargo cult [15:32] true [15:32] lint doesn't catch unexisiting attributes [15:33] i don't think we should call out setattr specifically [15:33] heh, true [15:34] i can go either way on that. we're all agreed about questioning and discouraging hasattr though [15:36] that's it from me. anything else not on the agenda? [15:37] a quick point [15:37] my email about cleaning PR up was not very effective [15:37] so I think we should remind people in review replies [15:38] bigjools: good idea [15:38] * bigjools removed 6 old branches from his queue just yesterday [15:38] can bac's script be adapted to send an email to offender? [15:39] sinzui: no [15:39] jamesh's would be a better candidate [15:39] I clear my queue when I start my on-call day [15:39] yeah [15:39] sinzui: that could be considered spamming :-) [15:40] you can flog them some viagra while you're at it [15:40] lol [15:40] It is spelt V|4gra [15:41] :) [15:41] i think we're done :) [15:41] #endmeeting [15:41] ha ha [15:42] thanks everyone! [15:42] #fail === salgado is now known as salgado-lunch === salgado-lunch is now known as salgado === salgado is now known as salgado-afk