=== _thumper_ is now known as thumper === danilos is now known as danilo-food === danilo-food is now known as danilos === Guest23169 is now known as EdwinGrubbs [15:00] #startmeeting [15:00] Meeting started at 09:00. The chair is barry. [15:00] Commands Available: [TOPIC], [IDEA], [ACTION], [AGREED], [LINK], [VOTE] [15:00] hello everyone and welcome to this week's ameu reviewer's meeting. who's here today? [15:00] me [15:00] me [15:00] me [15:00] me [15:00] me [15:00] me [15:00] me [15:00] jtv sends his apologies but he does need to sleep sometime ... ;-) [15:01] me [15:01] me [15:01] adeuring: ping [15:02] whoops, me [15:02] allenap: ping [15:02] me [15:02] bac: ping [15:02] BjornT: ping [15:02] barry: I'm on holiday this week. [15:02] me [15:02] me [15:02] allenap: never mind that, you can lead the meeting :) [15:02] cprov: you? [15:02] lol [15:02] me [15:03] me [15:03] me [15:04] * barry hates irc [15:05] i'm just going to assume everyone here :) [15:05] [TOPIC] agenda [15:05] New Topic: agenda [15:05] * Roll call [15:05] * Action items [15:05] * Mentoring update [15:05] * Including js script tags conditionally [15:05] * ReST headers in doctests -- gmb [15:05] * Permission explosions -- flacoste [15:05] * Peanut gallery (anything not on the agenda) [15:05] [TOPIC] action items [15:05] New Topic: action items [15:05] * gary_poster to take importfascist and rSP() discussion to ml [15:05] barry: I will do that in the next week or we will take it off the list. [15:06] my apologies [15:06] gary_poster: no worries. thanks [15:06] * intellectronica to email list about higher JS branch limits [15:06] i did [15:06] intellectronica: yep, thanks! [15:06] [TOPIC] mentoring update [15:06] New Topic: mentoring update [15:07] any feedback from our mentors or mentats? [15:08] guess not :) [15:08] it's been going fine for me, not that that's much feedback. :) [15:08] deryck: great to hear [15:08] [TOPIC] * Including js script tags conditionally [15:08] New Topic: * Including js script tags conditionally [15:08] sorry, i forget who added this one [15:08] barry, I did, per a review you did of my branch. [15:09] deryck: right! it's been one of those weeks ;) [15:09] deryck: take it away deryck the orchestra leader! [15:09] 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. [15:10] scripts are concat'ed into launchpad.js, so be careful of this, and watch for it in reviews. [15:10] me (sorry I'm late) [15:10] deryck: can you describe the tal you used to load that conditionally? [15:10] me [15:11] barry, just a with the scripts in that block. [15:11] deryck: can it be added to the JS wiki page? [15:11] The yahoo calendar widget is not in the compressed yui file, which does require a conditional in the head-epilogue. [15:11] flacoste, sure, I can do that. [15:11] deryck: thanks [15:11] np :) [15:12] Is it possible to get that script into something that is away "on" [15:12] sinzui: can't we just add it? [15:13] 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 [15:13] sinzui: let's have a pre-impl call later [15:13] fab [15:13] cool. anything else on this topic? [15:14] [TOPIC] * ReST headers in doctests -- gmb [15:14] New Topic: * ReST headers in doctests -- gmb [15:14] Ah. [15:14] So, this came up on Monday. [15:14] First there was some confusion about whether we should use ReST or Moin style headers in doctests. [15:14] rest [15:15] 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 [15:15] but existing pages can be changed as you go, low priority [15:15] (having gone from ReST to Moin some time before) [15:15] 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 [15:15] 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. [15:15] gmb: we're trying to standardize on rest since that's basically what the python community has standardized on [15:15] well, they were [15:15] but [15:16] we didn't follow-through [15:16] the idea is that there are no tools to process Moin syntax [15:16] and we aren't really using Moin syntax at all anyway [15:16] I guess. trying to make it casual and low-pain means that people didn't notice or remember [15:16] that is, I guess we didn't follow through [15:17] the idea was to have a sphinx easy setup to browse all the doctests [15:17] I think salgado or bac have test cleanup listed among their objectives. rs=sinzui to run the script and land the branch [15:17] as a start [15:17] and then start organizing it [15:17] that's what we didn't follow-through on [15:17] that test cleanup sounds cool [15:17] I see [15:18] me [15:18] it would also be nice if we could start using rest in our wikis :) [15:18] salgado: are you late or volunteering to update all tests to ReST headers [15:18] or both! :-) [15:18] just late! [15:19] 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? [15:19] barry: We can start using rest in our wikis. [15:19] abentley: really? well, that would be cool. also in our merge proposal cover letters :) [15:20] barry: Sure, moin has supported rest for years. [15:20] barry: yeah, it's not really a priority at the moment [15:20] 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 [15:21] standardizing on what the python community uses is sufficient in itself imho [15:21] flacoste, sinzui, abentley cool. so, gmb does that answer the question? :) [15:21] especially since it means that's what we are using in the lazr packages [15:21] because of PyPi [15:21] barry: Yes, thank you. I'll update the style guid to include some details as to the whys and wherefores. [15:21] *guide [15:21] gmb: awesome, thanks [15:21] barry: Just specify #FORMAT rst at the top. [15:22] [ACTION] gmb to update style guides to clarify why we're standardizing on rest [15:22] ACTION received: gmb to update style guides to clarify why we're standardizing on rest [15:22] BTW I had a merge conflict into lazr.restful because the headers in the tests are different [15:22] abentley: rock. i will try that when i update the minutes of this meeting :) [15:22] gmb: thanks, anything else on this topic? [15:22] Nope. [15:22] That's all. [15:23] [TOPIC] * Permission explosions -- flacoste [15:23] New Topic: * Permission explosions -- flacoste [15:23] ok [15:23] this is a reminder [15:23] we should try to minimize the number of special permissions [15:23] so in reviews, everytime you see somebody define a new permission [15:24] you should ask why one of the regular one isn't used [15:24] the model is [15:24] View -> Append -> Edit -> Admin [15:24] there is also the Moderate permission which sits above Append at the level of Edit [15:24] those are our core permissions [15:25] now, if you look at permissions.zcml, you'll see that there are a lot of other special permissions [15:25] sometimes these are unvoidable, but many times they are not [15:25] for example, the ProjectReview special permission was introduced recentely [15:26] i think there is no reason why launchpad.Moderate couldn't have been used there [15:26] so as reviewer, be though on the introduction of new permission [15:26] flacoste: do we have any plans to do an audit and clean up of those special permissions? [15:26] flacoste: i'll follow up with you to clean that one up [15:27] yeah, i think we'll need to do an audit at some point and see if we can remove some of those [15:27] but starting with a lock-down will make the audit easier :-) [15:27] flacoste: cool [15:27] i'll update the reviewers checklist with this reminder [15:28] not sure if that page is still checked often though [15:28] 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? [15:28] some of that [15:28] but also, the way permissions are mapped to roles is kind of ad-hoc [15:28] (through the IAuthorization interface) [15:29] you have to inspect code to understand who get to do what [15:29] where [15:30] flacoste: which isn't really feasible when you're working out a new feature [15:30] flacoste, so, would centralizing the permissions and capabilities of each make them easier to use? [15:30] they are already kind of centralised [15:30] in one file [15:30] but that's not the way things work [15:30] permission are granted on a per-context level [15:31] that's why it's possible to not define new ones [15:31] but reuse the semantics of existing ones [15:31] for example, i think the Moderate permission is really only defined on the Question object [15:32] which means it's easy to reuse the semantic for project review [15:33] 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? [15:33] sure [15:33] flacoste: thanks! [15:34] [ACTION] flacoste to update reviewer docs and dev wiki re: permission implosion [15:34] ACTION received: flacoste to update reviewer docs and dev wiki re: permission implosion [15:34] explosion! [15:34] proliferation [15:34] whatever [15:34] eot [15:34] :) [15:34] flacoste: thanks, great topic [15:34] [TOPIC] * Peanut gallery (anything not on the agenda) [15:34] New Topic: * Peanut gallery (anything not on the agenda) [15:34] okay, the floor is open, does anybody have anything else? [15:34] i wanted to talk briefly about generating js [15:34] intellectronica: go ahead [15:35] from time to time you'll need to generate javascript code and values to embed in a page [15:35] say, when you want to initialise a widget or call a function using values you have when you render the page [15:35] two important things to remember: [15:36] 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 [15:37] 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 [15:37] that's it [15:37] intellectronica: thanks very much. i learned this lesson the hard way (and thanks for your patch :) [15:38] intellectronica, is there a specific pattern we have to follow to get the