= ReviewerMeeting20090715 = == summary == * be sure to only include your javascript files in devmode, since in production they are always included into launchpad.js, and you don't want to load them twice. deryck to add this to the js wiki page * reST headers are to be used in doctests, though existing files can be converted as you go (low priority). gmb to update style guides to clarify this decision and capture the reasons * try to reuse existing permissions rather than invent new ones. flacoste to update reviewer docs and dev wiki with details == logs == === AMEU === {{{ Jul 15 10:00:17 #startmeeting Jul 15 10:00:18 Meeting started at 09:00. The chair is barry. Jul 15 10:00:18 Commands Available: [TOPIC], [IDEA], [ACTION], [AGREED], [LINK], [VOTE] Jul 15 10:00:20 * deryck (n=deryck@samba/team/deryck) has joined #launchpad-meeting Jul 15 10:00:30 hello everyone and welcome to this week's ameu reviewer's meeting. who's here today? Jul 15 10:00:32 me Jul 15 10:00:35 me Jul 15 10:00:35 me Jul 15 10:00:37 me Jul 15 10:00:38 me Jul 15 10:00:38 me Jul 15 10:00:51 me Jul 15 10:01:00 jtv sends his apologies but he does need to sleep sometime ... ;-) Jul 15 10:01:29 me Jul 15 10:01:43 me Jul 15 10:01:54 adeuring: ping Jul 15 10:02:02 allenap: ping Jul 15 10:02:03 whoops, me Jul 15 10:02:09 bac: ping Jul 15 10:02:10 me Jul 15 10:02:18 BjornT: ping Jul 15 10:02:19 barry: I'm on holiday this week. Jul 15 10:02:34 allenap: ah! lucky you :) Jul 15 10:02:43 cprov: ping Jul 15 10:03:08 flacoste: ping Jul 15 10:03:15 gary_poster: ping Jul 15 10:03:22 gmb: ping Jul 15 10:03:41 rockstar: ping Jul 15 10:03:45 salgado: ping Jul 15 10:03:55 [TOPIC] agenda Jul 15 10:04:31 * Disconnected (). **** ENDING LOGGING AT Wed Jul 15 10:04:31 2009 **** BEGIN LOGGING AT Wed Jul 15 10:04:43 2009 Jul 15 10:04:43 * Now talking on #launchpad-meeting Jul 15 10:04:43 * Topic for #launchpad-meeting is: Launchpad Meeting Grounds | Channel logs: http://irclogs.ubuntu.com/ | Meeting logs and agenda: https://dev.launchpad.net/MeetingAgenda Jul 15 10:04:43 * Topic for #launchpad-meeting set by matsubara at Thu Apr 30 11:14:51 2009 Jul 15 10:04:43 * #launchpad-meeting :https://launchpad.net Jul 15 10:04:50 * barry hates irc Jul 15 10:04:58 i'm just going to assume everyone here :) Jul 15 10:05:04 [TOPIC] agenda Jul 15 10:05:09 New Topic: agenda Jul 15 10:05:19 * Roll call Jul 15 10:05:19 * Action items Jul 15 10:05:19 * Mentoring update Jul 15 10:05:19 * Including js script tags conditionally Jul 15 10:05:19 * ReST headers in doctests -- gmb Jul 15 10:05:19 * Permission explosions -- flacoste Jul 15 10:05:19 * Peanut gallery (anything not on the agenda) Jul 15 10:05:23 * Received a CTCP VERSION from freenode-connect Jul 15 10:05:27 [TOPIC] action items Jul 15 10:05:33 New Topic: action items Jul 15 10:05:38 * gary_poster to take importfascist and rSP() discussion to ml Jul 15 10:05:56 barry: I will do that in the next week or we will take it off the list. Jul 15 10:06:00 my apologies Jul 15 10:06:09 gary_poster: no worries. thanks Jul 15 10:06:17 * intellectronica to email list about higher JS branch limits Jul 15 10:06:42 i did Jul 15 10:06:48 intellectronica: yep, thanks! Jul 15 10:06:56 [TOPIC] mentoring update Jul 15 10:06:57 New Topic: mentoring update Jul 15 10:07:06 any feedback from our mentors or mentats? Jul 15 10:08:01 guess not :) Jul 15 10:08:04 it's been going fine for me, not that that's much feedback. :) Jul 15 10:08:22 deryck: great to hear Jul 15 10:08:30 [TOPIC] * Including js script tags conditionally Jul 15 10:08:31 New Topic: * Including js script tags conditionally Jul 15 10:08:42 sorry, i forget who added this one Jul 15 10:08:56 barry, I did, per a review you did of my branch. Jul 15 10:09:09 deryck: right! it's been one of those weeks ;) Jul 15 10:09:20 deryck: take it away deryck the orchestra leader! Jul 15 10:09:42 This is Just as a reminder to all that we should only include script tags when in devmode, so that we don't load js twice. Jul 15 10:10:01 scripts are concat'ed into launchpad.js, so be careful of this, and watch for it in reviews. Jul 15 10:10:05 * abentley (n=abentley@CPE001a7046c8f9-CM001e6b233d5a.cpe.net.cable.rogers.com) has joined #launchpad-meeting Jul 15 10:10:20 me (sorry I'm late) Jul 15 10:10:29 deryck: can you describe the tal you used to load that conditionally? Jul 15 10:10:35 me Jul 15 10:11:09 barry, just a with the scripts in that block. Jul 15 10:11:15 deryck: can it be added to the JS wiki page? Jul 15 10:11:21 The yahoo calendar widget is not in the compressed yui file, which does require a conditional in the head-epilogue. Jul 15 10:11:27 flacoste, sure, I can do that. Jul 15 10:11:45 deryck: thanks Jul 15 10:11:54 np :) Jul 15 10:12:03 Is it possible to get that script into something that is away "on" Jul 15 10:12:09 sinzui: can't we just add it? Jul 15 10:13:03 flacoste: I was tempted to do so last night. I'm not sure if the separation is historical or YUI2. I think I need a pre-imp call to understand the issue Jul 15 10:13:20 sinzui: let's have a pre-impl call later Jul 15 10:13:27 fab Jul 15 10:13:43 cool. anything else on this topic? Jul 15 10:14:07 [TOPIC] * ReST headers in doctests -- gmb Jul 15 10:14:07 New Topic: * ReST headers in doctests -- gmb Jul 15 10:14:12 Ah. Jul 15 10:14:26 So, this came up on Monday. Jul 15 10:14:47 First there was some confusion about whether we should use ReST or Moin style headers in doctests. Jul 15 10:14:54 rest Jul 15 10:15:10 Then, when bigjools and I had confirmed we should be using ReST, no one could remember why we had changed back to ReST from Moin Jul 15 10:15:15 but existing pages can be changed as you go, low priority Jul 15 10:15:18 (having gone from ReST to Moin some time before) Jul 15 10:15:36 lp-dev-util/formatdoctest -p path/to/tests/*.txt will fix many. Edwin pointed out though the script uses the headers I use from gedit doctests. we can tweak the script to use gary's headers Jul 15 10:15:41 barry: Right, but the point is that people are still confused about this, and the reasons for the change don't seem to have been communicated effectively. Jul 15 10:15:48 gmb: we're trying to standardize on rest since that's basically what the python community has standardized on Jul 15 10:15:52 well, they were Jul 15 10:15:54 but Jul 15 10:16:03 we didn't follow-through Jul 15 10:16:12 the idea is that there are no tools to process Moin syntax Jul 15 10:16:19 and we aren't really using Moin syntax at all anyway Jul 15 10:16:36 I guess. trying to make it casual and low-pain means that people didn't notice or remember Jul 15 10:16:46 that is, I guess we didn't follow through Jul 15 10:17:04 the idea was to have a sphinx easy setup to browse all the doctests Jul 15 10:17:05 I think salgado or bac have test cleanup listed among their objectives. rs=sinzui to run the script and land the branch Jul 15 10:17:06 as a start Jul 15 10:17:14 and then start organizing it Jul 15 10:17:27 that's what we didn't follow-through on Jul 15 10:17:31 that test cleanup sounds cool Jul 15 10:17:41 I see Jul 15 10:18:09 me Jul 15 10:18:26 it would also be nice if we could start using rest in our wikis :) Jul 15 10:18:35 salgado: are you late or volunteering to update all tests to ReST headers Jul 15 10:18:47 or both! :-) Jul 15 10:18:52 just late! Jul 15 10:19:08 flacoste, sinzui can we put some action items on the list for this? or is it all just so background/low priority that we won't get to it any time soon? Jul 15 10:19:23 barry: We can start using rest in our wikis. Jul 15 10:19:52 abentley: really? well, that would be cool. also in our merge proposal cover letters :) Jul 15 10:20:16 barry: Sure, moin has supported rest for years. Jul 15 10:20:26 barry: yeah, it's not really a priority at the moment Jul 15 10:20:33 barry: I can do it within the next 3 weeks. I will create a bug about it since I think we want to codify the header style in the script Jul 15 10:21:09 standardizing on what the python community uses is sufficient in itself imho Jul 15 10:21:14 flacoste, sinzui, abentley cool. so, gmb does that answer the question? :) Jul 15 10:21:23 especially since it means that's what we are using in the lazr packages Jul 15 10:21:27 because of PyPi Jul 15 10:21:42 barry: Yes, thank you. I'll update the style guid to include some details as to the whys and wherefores. Jul 15 10:21:48 *guide Jul 15 10:21:54 gmb: awesome, thanks Jul 15 10:21:58 barry: Just specify #FORMAT rst at the top. Jul 15 10:22:08 [ACTION] gmb to update style guides to clarify why we're standardizing on rest Jul 15 10:22:09 ACTION received: gmb to update style guides to clarify why we're standardizing on rest Jul 15 10:22:23 BTW I had a merge conflict into lazr.restful because the headers in the tests are different Jul 15 10:22:26 abentley: rock. i will try that when i update the minutes of this meeting :) Jul 15 10:22:45 gmb: thanks, anything else on this topic? Jul 15 10:22:53 Nope. Jul 15 10:22:55 That's all. Jul 15 10:23:12 [TOPIC] * Permission explosions -- flacoste Jul 15 10:23:13 New Topic: * Permission explosions -- flacoste Jul 15 10:23:22 ok Jul 15 10:23:31 this is a reminder Jul 15 10:23:44 we should try to minimize the number of special permissions Jul 15 10:23:59 so in reviews, everytime you see somebody define a new permission Jul 15 10:24:07 you should ask why one of the regular one isn't used Jul 15 10:24:12 the model is Jul 15 10:24:22 View -> Append -> Edit -> Admin Jul 15 10:24:41 there is also the Moderate permission which sits above Append at the level of Edit Jul 15 10:24:52 those are our core permissions Jul 15 10:25:19 now, if you look at permissions.zcml, you'll see that there are a lot of other special permissions Jul 15 10:25:38 sometimes these are unvoidable, but many times they are not Jul 15 10:25:57 for example, the ProjectReview special permission was introduced recentely Jul 15 10:26:07 i think there is no reason why launchpad.Moderate couldn't have been used there Jul 15 10:26:28 so as reviewer, be though on the introduction of new permission Jul 15 10:26:36 flacoste: do we have any plans to do an audit and clean up of those special permissions? Jul 15 10:26:51 flacoste: i'll follow up with you to clean that one up Jul 15 10:27:11 yeah, i think we'll need to do an audit at some point and see if we can remove some of those Jul 15 10:27:30 but starting with a lock-down will make the audit easier :-) Jul 15 10:27:34 flacoste: cool Jul 15 10:27:53 i'll update the reviewers checklist with this reminder Jul 15 10:28:01 not sure if that page is still checked often though Jul 15 10:28:04 flacoste: also, what is the root cause for adding new special permissions? is it because we don't (as a group) have a good understanding of how the existing permissions work? Jul 15 10:28:27 some of that Jul 15 10:28:46 but also, the way permissions are mapped to roles is kind of ad-hoc Jul 15 10:28:56 (through the IAuthorization interface) Jul 15 10:29:34 you have to inspect code to understand who get to do what Jul 15 10:29:36 where Jul 15 10:30:09 flacoste: which isn't really feasible when you're working out a new feature Jul 15 10:30:14 flacoste, so, would centralizing the permissions and capabilities of each make them easier to use? Jul 15 10:30:32 they are already kind of centralised Jul 15 10:30:33 in one file Jul 15 10:30:48 but that's not the way things work Jul 15 10:30:57 permission are granted on a per-context level Jul 15 10:31:05 that's why it's possible to not define new ones Jul 15 10:31:15 but reuse the semantics of existing ones Jul 15 10:31:40 for example, i think the Moderate permission is really only defined on the Question object Jul 15 10:32:06 which means it's easy to reuse the semantic for project review Jul 15 10:33:20 flacoste: maybe a brief overview (largely what you wrote above) would be useful in the dev wiki? could you add that when you update the reviewer docs? Jul 15 10:33:29 sure Jul 15 10:33:34 flacoste: thanks! Jul 15 10:33:59 [ACTION] flacoste to update reviewer docs and dev wiki re: permission implosion Jul 15 10:34:00 ACTION received: flacoste to update reviewer docs and dev wiki re: permission implosion Jul 15 10:34:06 explosion! Jul 15 10:34:13 proliferation Jul 15 10:34:16 whatever Jul 15 10:34:18 eot Jul 15 10:34:18 :) Jul 15 10:34:23 flacoste: thanks, great topic Jul 15 10:34:32 [TOPIC] * Peanut gallery (anything not on the agenda) Jul 15 10:34:33 New Topic: * Peanut gallery (anything not on the agenda) Jul 15 10:34:44 okay, the floor is open, does anybody have anything else? Jul 15 10:34:46 i wanted to talk briefly about generating js Jul 15 10:34:56 intellectronica: go ahead Jul 15 10:35:15 from time to time you'll need to generate javascript code and values to embed in a page Jul 15 10:35:39 say, when you want to initialise a widget or call a function using values you have when you render the page Jul 15 10:35:52 two important things to remember: Jul 15 10:36:35 1. avoid using zpt for doing that. it's clumsy and hard to maintain. do the work in the view code in python, expose it as a property and include it in the template Jul 15 10:37:20 2. always use simplejson to serialize python values into javascript code. it's so easy to do, and you have no chance of getting better result by preparing the string yourself Jul 15 10:37:32 that's it Jul 15 10:37:47 intellectronica: thanks very much. i learned this lesson the hard way (and thanks for your patch :) Jul 15 10:38:21 intellectronica, is there a specific pattern we have to follow to get the